Filter过滤器实现登录检查
2015-03-18 10:13
337 查看
主要利用filter过滤掉未经登录而直接跳转到非登录访问页面。代码而言的话并不难,只是有几点问题需要注意一下。
1.使用filter需要配置web.xml,如果是/*那么在拦截后的页面会连带jsp页面里的js和css一并拦截住。
解决办法是jsp放在jsppage这个文件下,其他css、js并列。配置的时候就/jsppage/*。
还有个办法是在dofilter里面判断在request域拿到url,进行比对,然后过滤。
2.需要设置哪些页面是你不想拦截的【假设所有的页面都放在jsppage内】。
代码见下:
LoginFilert.java
public class LoginFilter extends HttpServlet implements Filter {
public void doFilter(ServletRequest sRequest, ServletResponse sResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) sRequest;
HttpServletResponse response = (HttpServletResponse) sResponse;
HttpSession session = request.getSession();
String url = request.getServletPath();
String contextPath = request.getContextPath();
if (url.equals("")){
url += "/";
}
if ((url.startsWith("/") && !url.startsWith("/jspPage/login"))) {// 若访问后台资源
// 设置不需要过滤的页面
if (url.endsWith("about.jsp")) {
filterChain.doFilter(sRequest, sResponse);
return;
}
// 过滤到login
String admin = (String) session.getAttribute("admin_name");
if (admin == null) {// 转入管理员登陆页面
response.sendRedirect(contextPath + "/jspPage/login.jsp");
return;
}
}
filterChain.doFilter(sRequest, sResponse);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
web.xml
loginFilter
util.LoginFilter
loginFilter
/jspPage/*
相关文章推荐
- 使用filter过滤器实现对用户登录的检查,如果未登录跳转至登录页面
- PHP实现注册登录,并实现注册时动态检查用户名是否可用
- 登录检查 springMVC Interceptor拦截器实现登访问
- 在jquery mobile中页面跳转的时候,实现登录检查
- Shell脚本实现检查服务器安全状态(用户、登录IP、防火墙检查)
- 使用sharedPreferences实现密码登录和注册用户名重复检查
- Zend Framework2 - 在 Module.php中检查管理是否登录,而不是到控制器中检查 (实现方法示例)
- 页面加载后检查用户登录状态,通过ajax实现
- Filter过滤器原理和登录实现
- 登录检查 springMVC Interceptor拦截器实现登访问
- Shell脚本实现检查服务器安全状态(用户、登录IP、防火墙检查)
- Struts2自定义拦截器,实现登录检查。
- jQuery基于ajax实现页面加载后检查用户登录状态的方法
- 使用注解(Annotation)实现系统登录检查和权限控制
- Filter过滤器实现自动登录
- 使用filter过滤器实现用户登录验证
- Filter过滤器实现自动登录
- 第7篇:ui-router登录检查实现权限控制
- spring-09-如何实现登录权限检查
- Ant + checkstyle 实现代码检查