Java CharacterEncodingFilter案例詳解
一、什么是CharacterEncodingFilter
官方解釋如下
是spring內(nèi)置過濾器的一種,用來指定請求或者響應(yīng)的編碼格式。在web開發(fā)中經(jīng)常被從來使用
二、CharacterEncodingFilter的用法
在web.xml中的配置
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
其中encoding用來指定編碼格式,forceEncoding表示是否強(qiáng)制response的編碼格式也是encoding格式
三、CharacterEncodingFilter 原理
服務(wù)器啟動的時候就會創(chuàng)建Filter,將init-param中的參數(shù)加載,注入到CharacterEncodingFilter 類中,瀏覽器每次發(fā)送請求都會經(jīng)過這個過濾器,然后調(diào)用doFilterInternal
CharacterEncodingFilter 類圖
可以看到CharacterEncodingFilter繼承OncePerRequestFilter,OncePerRequestFilter是個抽象類,其中的抽象方法doFilterInternal被CharacterEncodingFilter實(shí)現(xiàn),同時OncePerRequestFilter實(shí)現(xiàn)了doFilter方法,調(diào)用了doFilterInternal方法。
doFilterInternal方法
@Override protected void doFilterInternal( HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) { request.setCharacterEncoding(this.encoding); if (this.forceEncoding) { response.setCharacterEncoding(this.encoding); } } filterChain.doFilter(request, response); }
到此這篇關(guān)于Java CharacterEncodingFilter案例詳解的文章就介紹到這了,更多相關(guān)Java CharacterEncodingFilter內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在SpringBoot項(xiàng)目中實(shí)現(xiàn)給所有請求加固定前綴
這篇文章主要介紹了在SpringBoot項(xiàng)目中實(shí)現(xiàn)給所有請求加固定前綴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02一篇文章教你如何用多種迭代寫法實(shí)現(xiàn)二叉樹遍歷
這篇文章主要介紹了C語言實(shí)現(xiàn)二叉樹遍歷的迭代算法,包括二叉樹的中序遍歷、先序遍歷及后序遍歷等,是非常經(jīng)典的算法,需要的朋友可以參考下2021-08-08詳解Spring學(xué)習(xí)總結(jié)——Spring實(shí)現(xiàn)AOP的多種方式
這篇文章主要介紹了詳解Spring學(xué)習(xí)總結(jié)——Spring實(shí)現(xiàn)AOP的多種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01JAVA發(fā)送HTTP請求的多種方式詳細(xì)總結(jié)
目前做項(xiàng)目中有一個需求是這樣的,需要通過Java發(fā)送url請求,查看該url是否有效,這時我們可以通過獲取狀態(tài)碼來判斷,下面這篇文章主要給大家介紹了關(guān)于JAVA發(fā)送HTTP請求的多種方式總結(jié)的相關(guān)資料,需要的朋友可以參考下2023-01-01基于IDEA 的遠(yuǎn)程調(diào)試 Weblogic的操作過程
這篇文章主要介紹了基于IDEA 的遠(yuǎn)程調(diào)試 Weblogic的操作過程,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09java用arraycopy實(shí)現(xiàn)多擊事件
這篇文章主要介紹了java用arraycopy實(shí)現(xiàn)多擊事件的多種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11