探索小游戏引流的有效策略与未来发展趋势
776
2022-12-18
使用SpringBoot请求参数过滤空格
目录SpringBoot请求参数过滤空格1、参数修改SpaceHttpServletRequestWrapper2、空格过滤器3、过滤器初始化SpringBoot指定执行参数,参数值包含空格问题方式一(错误):方式二(错误):方式三(错误):方式四(错误):方式五(正确):
SpringBoot请求参数过滤空格
1、参数修改SpaceHttpServletRequestWrapper
public class SpaceHttpServletRequestWrapper extends HttpServletRequestWrapper {
public SpaceHttpServletRequestWrapper(HttpServletRequest servletRequest) {
super(servletRequest);
}
@Override
public String[] getParameterValues(String parameter) {
String[] values = super.getParameterValues(parameterdRgsyOUltc);
if (values == null) {
return new String[0];
}
int count = values.length;
String[] encodedValues = new String[count];
for (int i = 0; i < count; i++) {
encodedValues[i] = values[i].trim();
}
return encodedValues;
}
@Override
public String getParameter(String parameter) {
String value = super.getParameter(parameter);
if (value == null) {
return null;
}
http:// return value.trim();
}
}
2、空格过滤器
public class SpaceFilter implements Filter {
private FilterConfig filterConfig;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws
IOException, ServletException {
filterChain.doFilter(new SpaceHttpServletRequestWrapper(
(HttpServletRequest) servletRequest), servletResponse);
}
@Override
public void destroy() {
this.filterConfig dRgsyOUltc= null;
}
}
3、过滤器初始化
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
@Bean
public FilterRegistrathttp://ionBean spaceFilter() {
FilterRegistrationBean fitler = new FilterRegistrationBean();
fitler.setFilter(new SpaceFilter());
fitler.addUrlPatterns("/*");
fitler.setName("SpaceFilter");
fitler.setDispatcherTypes(DispatcherType.REQUEST);
return fitler;
}
}
SpringBoot指定执行参数,参数值包含空格问题
SpringBoot启动参数可以通过 --key1=value1 这样设置,如下:
java -jar xx.jar --server.port=9301
但是对于有空格的参数,比如 sync.email.cron=0 0 9 * * ?,如何设置?
我的环境:windows
方式一(错误):
java -jar xx.jar --sync.email.cron=0 0 9 * * ?
方式二(错误):
set mailCron=0 0 9 * * ?
java -jar xx.jar --sync.email.cron=%mailCron%
方式三(错误):
set mailCron=`0 0 9 * * ?`
java -jar xx.jar --sync.email.cron=%mailCron%
等同于
java -jar xx.jar --sync.email.cron=`0 0 9 * * ?`
方式四(错误):
set mailCron='0 0 9 * * ?'
java -jar xx.jar --sync.email.cron=%mailCron%
等同于
java -jar xx.jar --sync.email.cron='0 0 9 * * ?'
方式五(正确):
set mailCron="0 0 9 * * ?"
java -jar xx.jar --sync.email.cron=%mailCron%
等同于
java -jar xx.jar --sync.email.cron="0 0 9 * * ?"
如上,正确的方式只有想办法将带有空格的字符串用双引号包起来,而直接设置、反引号设置、单引号设置都会将字符串分割开来,都是不正确的。linux下也同样适用。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~