使用Filter目的是让所有的页面都先通过一个文件处理一下。
  
  实例1:EncodingFilter.java -关于编码的Filter 
 package com.english.filter;
package com.english.filter;

 import java.io.IOException;
import java.io.IOException;

 import javax.servlet.Filter;
import javax.servlet.Filter;
 import javax.servlet.FilterChain;
import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
import javax.servlet.ServletResponse;


 public class EncodingFilter implements Filter
public class EncodingFilter implements Filter  {
{

 @Override
    @Override

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

 }
    }

 @Override
    @Override
 public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException,
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException,

 ServletException
            ServletException  {
{
 arg0.setCharacterEncoding("UTF-8");
        arg0.setCharacterEncoding("UTF-8");
 arg1.setCharacterEncoding("UTF-8");
        arg1.setCharacterEncoding("UTF-8");
 arg2.doFilter(arg0, arg1);
        arg2.doFilter(arg0, arg1);

 }
    }

 @Override
    @Override

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

 }
    }

 }
}

同时,要在web.xml中进行Filter 的配置:

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

 <url-pattern>//*</url-pattern>
    <url-pattern>//*</url-pattern>  
 </filter-mapping>
  </filter-mapping>


  实例2 SessionFilter.java -关于Session 判断的一个Filter,这个文件要过滤一些文件,而让另一些文件通过,所以加了url 的判断。
 package com.english.filter;
package com.english.filter;

 import java.io.IOException;
import java.io.IOException;

 import javax.servlet.Filter;
import javax.servlet.Filter;
 import javax.servlet.FilterChain;
import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSession;


 public class SessionFilter implements Filter
public class SessionFilter implements Filter  {
{

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

 @Override
    @Override

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

 }
    }

 @Override
    @Override
 public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException,
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException,

 ServletException
            ServletException  {
{
 HttpServletResponse resp = (HttpServletResponse) arg1;
        HttpServletResponse resp = (HttpServletResponse) arg1;
 HttpServletRequest req = (HttpServletRequest) arg0;
        HttpServletRequest req = (HttpServletRequest) arg0;
 HttpSession session = req.getSession();
        HttpSession session = req.getSession();
 String url = req.getRequestURI();
        String url = req.getRequestURI();
 boolean pass = false;
        boolean pass = false;

 for (String passUrl : passUrls)
        for (String passUrl : passUrls)  {
{

 if (url.endsWith(passUrl) || session.getAttribute("englishUser") != null)
            if (url.endsWith(passUrl) || session.getAttribute("englishUser") != null)  {
{
 pass = true;
                pass = true;
 }
            }
 }
        }

 if (pass)
        if (pass)  {
{
 chain.doFilter(arg0, arg1);
            chain.doFilter(arg0, arg1);

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

 @Override
    @Override

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

 }
    }

 }
}

posted on 2008-06-26 23:12 
BlueSunshine 阅读(218) 
评论(0)  编辑  收藏  所属分类: 
学习心得