隨筆-42  評論-42  文章-0  trackbacks-0
            使用Filter目的是讓所有的頁面都先通過一個文件處理一下。
            
            實例1:EncodingFilter.java -關(guān)于編碼的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 -關(guān)于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 閱讀(209) 評論(0)  編輯  收藏 所屬分類: 學(xué)習(xí)心得
          主站蜘蛛池模板: 汤阴县| 彝良县| 平邑县| 永泰县| 固始县| 新建县| 托里县| 柏乡县| 三亚市| 海兴县| 河间市| 福清市| 涟源市| 衡东县| 浠水县| 绥江县| 平塘县| 诏安县| 临清市| 上林县| 兴业县| 潮安县| 舟山市| 台南县| 股票| 乌鲁木齐县| 双桥区| 邻水| 长葛市| 顺昌县| 图木舒克市| 嘉义县| 临海市| 玉门市| 大新县| 大厂| 无为县| 金溪县| 江津市| 麟游县| 喀喇|