gpt4 book ai didi

使用SpringBoot请求参数过滤空格

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章使用SpringBoot请求参数过滤空格由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

SpringBoot请求参数过滤空格

1、参数修改SpaceHttpServletRequestWrapper

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class SpaceHttpServletRequestWrapper extends HttpServletRequestWrapper {
     public SpaceHttpServletRequestWrapper(HttpServletRequest servletRequest) {
         super (servletRequest);
     }
     @Override
     public String[] getParameterValues(String parameter) {
         String[] values = super .getParameterValues(parameter);
         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 ;
         }
         return value.trim();
     }
}

2、空格过滤器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 = null ;
     }
}

3、过滤器初始化

?
1
2
3
4
5
6
7
8
9
10
11
12
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
     @Bean
     public FilterRegistrationBean spaceFilter() {
         FilterRegistrationBean fitler = new FilterRegistrationBean();
         fitler.setFilter( new SpaceFilter());
         fitler.addUrlPatterns( "/*" );
         fitler.setName( "SpaceFilter" );
         fitler.setDispatcherTypes(DispatcherType.REQUEST);
         return fitler;
     }
}

SpringBoot指定执行参数,参数值包含空格问题

SpringBoot启动参数可以通过 --key1=value1 这样设置,如下:

?
1
java -jar xx.jar --server.port= 9301

但是对于有空格的参数,比如 sync.email.cron=0 0 9 * * ?,如何设置?

  • 我的环境:windows

方式一(错误):

?
1
java -jar xx.jar --sync.email.cron= 0 0 9 * * ?

方式二(错误):

?
1
2
set mailCron= 0 0 9 * * ?
java -jar xx.jar --sync.email.cron=%mailCron%

方式三(错误):

?
1
2
set mailCron=` 0 0 9 * * ?`
java -jar xx.jar --sync.email.cron=%mailCron%

等同于 。

?
1
java -jar xx.jar --sync.email.cron=` 0 0 9 * * ?`

方式四(错误):

?
1
2
set mailCron= '0 0 9 * * ?'
java -jar xx.jar --sync.email.cron=%mailCron%

等同于 。

?
1
java -jar xx.jar --sync.email.cron= '0 0 9 * * ?'

方式五(正确):

?
1
2
set mailCron= "0 0 9 * * ?"
java -jar xx.jar --sync.email.cron=%mailCron%

等同于 。

?
1
java -jar xx.jar --sync.email.cron= "0 0 9 * * ?"

如上,正确的方式只有想办法将带有空格的字符串用双引号包起来,而直接设置、反引号设置、单引号设置都会将字符串分割开来,都是不正确的。Linux下也同样适用.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/u012954706/article/details/101691462 。

最后此篇关于使用SpringBoot请求参数过滤空格的文章就讲到这里了,如果你想了解更多关于使用SpringBoot请求参数过滤空格的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com