日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

發(fā)布時(shí)間:2025/5/22 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 过滤器实例——字符编码Filter 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

  首先創(chuàng)建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程序啟動(dòng)時(shí)初始化Filter,通過FilterConfig對(duì)象從web.xml文件獲取初始化參數(shù)值characterEncoding
=arg0.getInitParameter("characterEncoding");enabled="true".equalsIgnoreCase(arg0.getInitParameter("enabled".trim()));}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {//當(dāng)初始化的參數(shù)為啟用狀態(tài)時(shí),對(duì)request對(duì)象和response對(duì)象進(jìn)行編碼設(shè)置if(enabled||characterEncoding!=null){arg0.setCharacterEncoding(characterEncoding);arg1.setCharacterEncoding(characterEncoding);}arg2.doFilter(arg0, arg1);}@Overridepublic void destroy() {
    //web程序關(guān)閉時(shí),銷毀Filter時(shí)將資源對(duì)象置為空characterEncoding
=null;} }

  然后在web.xml中進(jìn)行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>//所有頁面訪問前都要進(jìn)行過濾 </filter-mapping>

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

?

  

轉(zhuǎn)載于:https://www.cnblogs.com/2017Crown/p/7157766.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。