import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;
/**
 *
 * @author Dory Doo
 */
public class EncodingFillter implements Filter
{
   protected FilterConfig filterConfig;
   private String targetEncoding="gb2312";
   /**
    *åˆå§‹åŒ–过滤器åƒä¸€èˆ¬çš„Servlet一æ ?它也å¯ä»¥èŽ·å¾—åˆå§‹åŒ–傿•?br />   */
   public void init(FilterConfig config)throws ServletException
   {
       this.filterConfig=config;
       this.targetEncoding=config.getInitParameter("encoding");
   }
   /**
    *˜q›è¡Œ˜q‡æ×o处ç†åQŒæœ€æœ€è¦çš„地方ž®±æ˜¯˜q™é‡Œäº?br />   */
   public void doFilter(ServletRequest srequest,ServletResponse sresponse,FilterChain chain)
   throws IOException,ServletException
   {
       System.out.println("使用以下æ–ÒŽ(gu¨©)³•˜q›è¡Œ¾~–ç :encoding="+targetEncoding);
      Â
       HttpServletRequest request=(HttpServletRequest)srequest;
       request.setCharacterEncoding(targetEncoding);
       //æŠŠå¤„ç†æƒå‘é€åˆ°ä¸‹ä¸€ä¸?br />       chain.doFilter(srequest,sresponse);
   }
  Â
   public void setFilterConfig(final FilterConfig filterConfig)
   {
       this.filterConfig=filterConfig;
   }
   //销æ¯è¿‡æ»¤å™¨
   public void destroy()
   {
       this.filterConfig=null;
   }
}
ç„¶åŽåœ¨web.xmlä¸é…¾|®æˆ‘们的应用.
 <web-app>
     .................
       <!--Filter Config-->
      <filter>
           <filter-name>cncoding</filter-name>
           <filter-class>dorydoo.util.EncodingFilter</filter-class>
           <init-param>
               <param-name>encoding</param-name>
               <param-value>gb2312</param-value>
           </init-param>
       </filter> Â
       <filter-mapping>
           <filter-name>encoding</filter-name>
           <servlet-name>action</servlet-name>
       </filter-mapping>Â
       <filter-mapping>
           <filter-name>encoding</filter-name>
           <url-pattern>/*</url-pattern>
       </filter-mapping>
     ........
 </web-app>
在æ¥çœ‹ä¸€ç”¨æˆ·è®¤è¯çš„过滤器(SignonFilter)
package dorydoo.util;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;
import javax.servlet.http.HttpSession;
/**
 *
 * @author DuYang
 */
public class SignonFilter implements Filter
{
   protected FilterConfig filterConfig;
   String LOGIN_PAGE="login.jsp";
   /**
    *åˆå§‹åŒ–过滤器åƒä¸€èˆ¬çš„Servlet一æ ?它也å¯ä»¥èŽ·å¾—åˆå§‹åŒ–傿•?br />   */
   public void init(FilterConfig config)throws ServletException
   {
       this.filterConfig=config;
   }
   /**
    *˜q›è¡Œ˜q‡æ×o处ç†åQŒæœ€æœ€è¦çš„地方ž®±æ˜¯˜q™é‡Œäº?br />   */
   public void doFilter(final ServletRequest req,final ServletResponse res,FilterChain chain)
   throws IOException,ServletException
   {   Â
       HttpServletRequest hreq=(HttpServletRequest)req;
       HttpServletResponse hres=(HttpServletResponse)res;
       HttpSession session=hreq.getSession();
       String isLogin="";
       try
       {
           isLogin=(String)session.getAttribute("isLogin");
           if(isLogin.equals("true"))
           {
               System.out.println("在SignonFilterä¸éªŒè¯é€šè¿‡");
               //验è¯é€šè¿‡¾l§ç®‹å¤„ç†
               chain.doFilter(req,res);
           }
           else
           {
               //验è¯ä¸æˆåŠŸé‡æ–°ç™»å½?br />               hres.sendRedirect(LOGIN_PAGE);
               System.out.println("被SignonFilteræ‹¦æˆªä¸€ä¸ªäØ“è®¤è¯çš„请æ±?);
           }
       }
       catch(Exception e)
       {
           e.printStackTrace();
       }
   }
  Â
   public void setFilterConfig(final FilterConfig filterConfig)
   {
       this.filterConfig=filterConfig;
   }
   //销æ¯è¿‡æ»¤å™¨
   public void destroy()
   {
       this.filterConfig=null;
   }
}
在SignonFilterçš„doFilter()æ–ÒŽ(gu¨©)³•ä¸?首先通过isLogin=(String)session.getAttribute("isLogin");åˆ¤æ–æ˜¯å¦ç™Õd½•用户,å¦‚æžœä¸æ˜¯åˆ™è¿”回到l(f¨¡)ogin™åµé¢.é…ç½®web.xmlæ–‡äšgž®±å’Œä¸Šé¢çš„基本上没什么差åˆ?