1. 程式人生 > >jsp實用過濾器寫法

jsp實用過濾器寫法

tdi odi color 編碼 xml文件 encoding 調用 imp quest

使用過濾器來給servlet設置編碼

public class CharacterEncodingFilter implements Filter{

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) throws IOException, ServletException {
        
// TODO Auto-generated method stub HttpServletRequest request=(HttpServletRequest)arg0; request.setCharacterEncoding("utf-8"); arg2.doFilter(arg0, arg1); } @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub
} }

同時要在XML文件加入下面的內容使其有效

<filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>com.smn.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
        <filter-name>CharacterEncodingFilter</
filter-name> <url-pattern>*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
  • <dispatcher>指定過濾器所攔截的資源被 Servlet 容器調用的方式,可以是REQUEST,INCLUDE,FORWARDERROR之一,默認REQUEST。用戶可以設置多個<dispatcher>子元素用來指定 Filter 對資源的多種調用方式進行攔截。
  • <dispatcher>子元素可以設置的值及其意義
  • REQUEST:當用戶直接訪問頁面時,Web容器將會調用過濾器。如果目標資源是通過RequestDispatcher的include()或forward()方法訪問時,那麽該過濾器就不會被調用。
  • INCLUDE:如果目標資源是通過RequestDispatcher的include()方法訪問時,那麽該過濾器將被調用。除此之外,該過濾器不會被調用。
  • FORWARD:如果目標資源是通過RequestDispatcher的forward()方法訪問時,那麽該過濾器將被調用,除此之外,該過濾器不會被調用。
  • ERROR:如果目標資源是通過聲明式異常處理機制調用時,那麽該過濾器將被調用。除此之外,過濾器不會被調用。

jsp實用過濾器寫法