隨筆-42  評(píng)論-42  文章-0  trackbacks-0
            使用Filter目的是讓所有的頁面都先通過一個(gè)文件處理一下。
            
            實(shí)例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

              }


          }


          同時(shí),要在web.xml中進(jìn)行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>


            實(shí)例2 SessionFilter.java -關(guān)于Session 判斷的一個(gè)Filter,這個(gè)文件要過濾一些文件,而讓另一些文件通過,所以加了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) 評(píng)論(0)  編輯  收藏 所屬分類: 學(xué)習(xí)心得
          主站蜘蛛池模板: 元朗区| 嵊州市| 建平县| 渭源县| 安顺市| 南京市| 霸州市| 德阳市| 玉龙| 安福县| 安义县| 马关县| 江安县| 恩平市| 新宁县| 汝州市| 溧水县| 南京市| 德州市| 宁海县| 南投市| 曲靖市| 滕州市| 开化县| 金秀| 英山县| 砀山县| 凉山| 荆州市| 丰台区| 融水| 定远县| 重庆市| 大连市| 永顺县| 文化| 尚义县| 大石桥市| 文登市| 通许县| 胶州市|