以登陆为例子...............
public class LoginFilter implements Filter {
@Override public void destroy() { }@Override
public void init(FilterConfig arg0) throws ServletException { }@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {HttpServletResponse response = (HttpServletResponse) arg1;
HttpServletRequest request=(HttpServletRequest)arg0; HttpSession session = request.getSession(true); String loginName = (String) session.getAttribute("loginName");// String url=request.getRequestURI(); if(loginName==null || loginName.equals("")) { //判断获取的路径不为空且不是访问登录页面或执行登录操作时跳转 if(url!=null && !url.equals("") && ( url.indexOf("Login")<0 && url.indexOf("login")<0 )) { response.sendRedirect("login.jsp"); return ; } } //已通过验证,用户访问继续 arg2.doFilter(arg0, arg1); }}
-----------------------------------------------------------------------------------------------------------
web.xml
<!-- 拦截 -->
<filter> <filter-name>LoginFilter</filter-name> <filter-class>onlyfun.filter.LoginFilter</filter-class> </filter><!-- 配置多个映射,哪些请求执行过滤器 -->
<filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/WEB-INF/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
到此为止,主要为自己做备忘,同时方便有需要的人。呵呵!