使用SpringBoot請(qǐng)求參數(shù)過(guò)濾空格
SpringBoot請(qǐng)求參數(shù)過(guò)濾空格
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、空格過(guò)濾器
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、過(guò)濾器初始化
@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ù)值包含空格問(wèn)題
SpringBoot啟動(dòng)參數(shù)可以通過(guò) --key1=value1 這樣設(shè)置,如下:
java -jar xx.jar --server.port=9301
但是對(duì)于有空格的參數(shù),比如 sync.email.cron=0 0 9 * * ?,如何設(shè)置?
- 我的環(huán)境:windows
方式一(錯(cuò)誤):
java -jar xx.jar --sync.email.cron=0 0 9 * * ?
方式二(錯(cuò)誤):
set mailCron=0 0 9 * * ? java -jar xx.jar --sync.email.cron=%mailCron%
方式三(錯(cuò)誤):
set mailCron=`0 0 9 * * ?` java -jar xx.jar --sync.email.cron=%mailCron%
等同于
java -jar xx.jar --sync.email.cron=`0 0 9 * * ?`
方式四(錯(cuò)誤):
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 * * ?"
如上,正確的方式只有想辦法將帶有空格的字符串用雙引號(hào)包起來(lái),而直接設(shè)置、反引號(hào)設(shè)置、單引號(hào)設(shè)置都會(huì)將字符串分割開(kāi)來(lái),都是不正確的。Linux下也同樣適用。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
RabbitMQ交換機(jī)使用場(chǎng)景和消息可靠性總結(jié)分析
這篇文章主要為大家介紹了RabbitMQ交換機(jī)使用場(chǎng)景和消息可靠性總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Mybatis批量插入數(shù)據(jù)的兩種方式總結(jié)與對(duì)比
批量插入功能是我們?nèi)粘9ぷ髦斜容^常見(jiàn)的業(yè)務(wù)功能之一,下面這篇文章主要給大家介紹了關(guān)于Mybatis批量插入數(shù)據(jù)的兩種方式總結(jié)與對(duì)比的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Java讀取resources目錄下文件路徑的九種代碼示例教程
在Java開(kāi)發(fā)中經(jīng)常需要讀取項(xiàng)目中resources目錄下的文件或獲取資源路徑,這篇文章主要給大家介紹了關(guān)于Java讀取resources目錄下文件路徑的九種代碼示例教程,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07hashtable桶數(shù)通常會(huì)取一個(gè)素?cái)?shù)分析
這篇文章主要介紹了hashtable桶數(shù)通常會(huì)取一個(gè)素?cái)?shù)分析的相關(guān)資料,需要的朋友可以參考下2016-12-12解決spring-data-jpa mysql建表編碼問(wèn)題
這篇文章主要介紹了解決spring-data-jpa mysql建表編碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java多線(xiàn)程之線(xiàn)程安全問(wèn)題詳情
這篇文章主要介紹了Java多線(xiàn)程之線(xiàn)程安全問(wèn)題詳情,線(xiàn)程安全問(wèn)題是指因多線(xiàn)程搶占式執(zhí)行而導(dǎo)致程序出現(xiàn)bug的問(wèn)題。內(nèi)容介紹詳細(xì)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容2022-06-06