Java web servlet 拦截器 以登陆为例子

以登陆为例子...............

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>

到此为止,主要为自己做备忘,同时方便有需要的人。呵呵!

原文地址:https://www.cnblogs.com/xiexy/p/3979166.html