使用SpringBoot请求参数过滤空格

网友投稿 790 2022-12-18

使用SpringBoot请求参数过滤空格

使用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小时内删除侵权内容。

上一篇:教你使用IDEA搭建spring源码阅读环境的详细步骤
下一篇:解决springboot的findOne方法没有合适的参数使用问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~