日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

过滤器实例——字符编码Filter

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 过滤器实例——字符编码Filter 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  字符編碼過濾器是一種快速解決Tomcat服務器中request和response亂碼問題的解決方案。一般程序中要解決request、resopnse傳中文參數亂碼問題時一般通過在取參數前對request進行setCharacterEncoding("UTF-8")編碼設置,這種方法需要在每個要使用的頁面中都進行編碼設置,用起來十分麻煩。字符編碼過濾器通過在每個頁面訪問前執行Filter進行自動編碼設置,只需要編寫一個Filter頁面并將Filter在web.xml中配置到需要的頁面(本文設置到全部頁面)即可。

  首先創建CharacterEncodingFilter類,繼承自javax.servlet.Filter。

package filter;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;public class CharacterEncodingFilter implements Filter {private String characterEncoding;private boolean enabled;@Overridepublic void init(FilterConfig arg0) throws ServletException {
  //web程序啟動時初始化Filter,通過FilterConfig對象從web.xml文件獲取初始化參數值characterEncoding
=arg0.getInitParameter("characterEncoding");enabled="true".equalsIgnoreCase(arg0.getInitParameter("enabled".trim()));}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {//當初始化的參數為啟用狀態時,對request對象和response對象進行編碼設置if(enabled||characterEncoding!=null){arg0.setCharacterEncoding(characterEncoding);arg1.setCharacterEncoding(characterEncoding);}arg2.doFilter(arg0, arg1);}@Overridepublic void destroy() {
    //web程序關閉時,銷毀Filter時將資源對象置為空characterEncoding
=null;} }

  然后在web.xml中進行Filter配置即可。

<filter><filter-name>characterEncodingFilter</filter-name><filter-class>filter.CharacterEncodingFilter</filter-class><init-param><param-name>characterEncoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>enabled</param-name><param-value>true</param-value></init-param> </filter> <filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern>//所有頁面訪問前都要進行過濾 </filter-mapping>

?  接下來就可以在使用request和response中直接傳遞和獲取中文參數,不必每次使用之前都進行配置了。

?

  

轉載于:https://www.cnblogs.com/2017Crown/p/7157766.html

總結

以上是生活随笔為你收集整理的过滤器实例——字符编码Filter的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。