使用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 阅读(198)
评论(0) 编辑 收藏 所属分类:
学习心得