java編碼過濾器


1.java編碼過濾器的作用:

  java過濾器能夠對目標資源的請求和響應進行截取,過濾信息執行的優先級高於servlet。

2.java過濾器的使用:

  (1)編寫一個普通的java類,實現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 EcodeFilter implements Filter {
    // 定義編碼方式 默認為空
    private String encoding =null;
    public void destroy() {
    }
    // 自動調用過濾方法 doFilter
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        // 如果編碼不為空就過濾請求中的數據
        if (encoding != null) {
            // 設置request字符編碼
            request.setCharacterEncoding(encoding);
            // 設置response字符編碼
            response.setContentType("text/html;charset=" + encoding);
        }
        // 傳遞給下一個過濾器或者下一個servlet/jsp 
        chain.doFilter(request, response);
    }
    public void init(FilterConfig config) throws ServletException {
        //將web.xml中的過濾器的配置編碼取出來賦值給  encoding
        encoding=config.getInitParameter("encoding");
    }
}

  

  (2)在web.xm中配置過濾器

<!-- 編碼過濾器,針對所有的地址都過濾 -->
    <filter>
        <filter-name>encodefilter  過濾器名稱</filter-name>
        <filter-class>com.bw.shop.util.EcodeFilter  過濾器的完全限定名</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodefilter  過濾器名稱</filter-name>
        <url-pattern>/*  需要過濾的頁面地址</url-pattern>
    </filter-mapping>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM