使用SpringBoot请求参数过滤空格
程序员文章站
2022-03-12 10:53:24
目录springboot请求参数过滤空格1、参数修改spacehttpservletrequestwrapperspringboot指定执行参数,参数值包含空格问题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(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、空格过滤器
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、过滤器初始化
@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 这样设置,如下:
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下也同样适用。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
上一篇: 钵钵鸡要泡多久才入味
推荐阅读