隨筆-42  評論-42  文章-0  trackbacks-0
            使用Filter目的是讓所有的頁面都先通過一個文件處理一下。
            
            實例1:EncodingFilter.java -關于編碼的Filter

          package com.english.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 EncodingFilter implements Filter {

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

              }


              @Override
              
          public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException,
                      ServletException 
          {
                  arg0.setCharacterEncoding(
          "UTF-8");
                  arg1.setCharacterEncoding(
          "UTF-8");
                  arg2.doFilter(arg0, arg1);

              }


              @Override
              
          public void init(FilterConfig arg0) throws ServletException {
                  
          // TODO Auto-generated method stub

              }


          }


          同時,要在web.xml中進行Filter 的配置:

           
          <filter>
                
          <filter-name>encodingFilter</filter-name>
                
          <filter-class>com.english.filter.EncodingFilter</filter-class>
            
          </filter>
            
          <filter-mapping>
                
          <filter-name>encodingFilter</filter-name>
              
          <url-pattern>/*</url-pattern>  
            </filter-mapping>


            實例2 SessionFilter.java -關于Session 判斷的一個Filter,這個文件要過濾一些文件,而讓另一些文件通過,所以加了url 的判斷。

          package com.english.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;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import javax.servlet.http.HttpSession;

          public class SessionFilter implements Filter {
              
          private static String[] passUrls = "login.view""login.do""logout.do""index.do""index.view",
                      
          "register.view""register.do"".jpg"".js""testId.do"".css" }
          ;

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

              }


              @Override
              
          public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException,
                      ServletException 
          {
                  HttpServletResponse resp 
          = (HttpServletResponse) arg1;
                  HttpServletRequest req 
          = (HttpServletRequest) arg0;
                  HttpSession session 
          = req.getSession();
                  String url 
          = req.getRequestURI();
                  
          boolean pass = false;
                  
          for (String passUrl : passUrls) {
                      
          if (url.endsWith(passUrl) || session.getAttribute("englishUser"!= null{
                          pass 
          = true;
                      }

                  }

                  
          if (pass) {
                      chain.doFilter(arg0, arg1);
                  }
           else {
                      req.getRequestDispatcher(
          "/login.view").forward(arg0, arg1);
                  }

              }


              @Override
              
          public void init(FilterConfig arg0) throws ServletException {
                  
          // TODO Auto-generated method stub

              }


          }

          posted on 2008-06-26 23:12 BlueSunshine 閱讀(214) 評論(0)  編輯  收藏 所屬分類: 學習心得
          主站蜘蛛池模板: 新巴尔虎左旗| 尚志市| 武汉市| 汉中市| 海阳市| 慈利县| 孟连| 巧家县| 南平市| 贡山| 准格尔旗| 顺昌县| 恩施市| 竹北市| 贡觉县| 磴口县| 桐庐县| 黄冈市| 杭州市| 揭西县| 大余县| 同江市| 曲阜市| 泰安市| 姜堰市| 交城县| 子长县| 汝州市| 英超| 北川| 荔波县| 芦溪县| 杂多县| 宁乡县| 南陵县| 从化市| 门头沟区| 鹿邑县| 河源市| 泸水县| 拜城县|