使用SpringBoot請求參數(shù)過濾空格
SpringBoot請求參數(shù)過濾空格
1、參數(shù)修改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指定執(zhí)行參數(shù),參數(shù)值包含空格問題
SpringBoot啟動參數(shù)可以通過 --key1=value1 這樣設(shè)置,如下:
java -jar xx.jar --server.port=9301
但是對于有空格的參數(shù),比如 sync.email.cron=0 0 9 * * ?,如何設(shè)置?
- 我的環(huán)境: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 * * ?"
如上,正確的方式只有想辦法將帶有空格的字符串用雙引號包起來,而直接設(shè)置、反引號設(shè)置、單引號設(shè)置都會將字符串分割開來,都是不正確的。Linux下也同樣適用。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
RabbitMQ交換機使用場景和消息可靠性總結(jié)分析
這篇文章主要為大家介紹了RabbitMQ交換機使用場景和消息可靠性總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01Mybatis批量插入數(shù)據(jù)的兩種方式總結(jié)與對比
批量插入功能是我們?nèi)粘9ぷ髦斜容^常見的業(yè)務(wù)功能之一,下面這篇文章主要給大家介紹了關(guān)于Mybatis批量插入數(shù)據(jù)的兩種方式總結(jié)與對比的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-01-01Java讀取resources目錄下文件路徑的九種代碼示例教程
在Java開發(fā)中經(jīng)常需要讀取項目中resources目錄下的文件或獲取資源路徑,這篇文章主要給大家介紹了關(guān)于Java讀取resources目錄下文件路徑的九種代碼示例教程,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-07-07hashtable桶數(shù)通常會取一個素數(shù)分析
這篇文章主要介紹了hashtable桶數(shù)通常會取一個素數(shù)分析的相關(guān)資料,需要的朋友可以參考下2016-12-12