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表示是否強制response的編碼格式也是encoding格式
三、CharacterEncodingFilter 原理
服務(wù)器啟動的時候就會創(chuàng)建Filter,將init-param中的參數(shù)加載,注入到CharacterEncodingFilter 類中,瀏覽器每次發(fā)送請求都會經(jīng)過這個過濾器,然后調(diào)用doFilterInternal
CharacterEncodingFilter 類圖

可以看到CharacterEncodingFilter繼承OncePerRequestFilter,OncePerRequestFilter是個抽象類,其中的抽象方法doFilterInternal被CharacterEncodingFilter實現(xiàn),同時OncePerRequestFilter實現(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àn)給所有請求加固定前綴
這篇文章主要介紹了在SpringBoot項目中實現(xiàn)給所有請求加固定前綴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
詳解Spring學(xué)習(xí)總結(jié)——Spring實現(xiàn)AOP的多種方式
這篇文章主要介紹了詳解Spring學(xué)習(xí)總結(jié)——Spring實現(xiàn)AOP的多種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
JAVA發(fā)送HTTP請求的多種方式詳細總結(jié)
目前做項目中有一個需求是這樣的,需要通過Java發(fā)送url請求,查看該url是否有效,這時我們可以通過獲取狀態(tài)碼來判斷,下面這篇文章主要給大家介紹了關(guān)于JAVA發(fā)送HTTP請求的多種方式總結(jié)的相關(guān)資料,需要的朋友可以參考下2023-01-01
基于IDEA 的遠程調(diào)試 Weblogic的操作過程
這篇文章主要介紹了基于IDEA 的遠程調(diào)試 Weblogic的操作過程,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下2021-09-09

