防止未登录访问 可用过滤器Filter实现
2015-05-11 13:19
441 查看
在做开发时,遇到 防止未登录访问时需要自定义过滤器访问。在开发过成中遇到的问题有:
1.、死循环(解决办法:一定要对重定向的URL做判断)
2、过滤完之后的页面是空白显示(解决办法:忘记加doFilter了,加上doFilter之后问题可以解决)
java代码
web.xml配置文件中的代码
1.、死循环(解决办法:一定要对重定向的URL做判断)
2、过滤完之后的页面是空白显示(解决办法:忘记加doFilter了,加上doFilter之后问题可以解决)
java代码
package com.zh.util; 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; import com.zh.bean.admin.Admin; public class SessionFilter implements Filter{ @Override public void destroy() { } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { System.out.println("do!!"); HttpServletRequest request = (HttpServletRequest)arg0; HttpServletResponse response = (HttpServletResponse)arg1; String url = request.getRequestURI(); System.out.println(url); boolean b1=!url.equals("/cpShop/admin/login.jsp"); boolean b2=url.substring(url.length()-3).equals(".do"); boolean b3=!url.substring(url.length()-13).equals("loginAdmin.do"); boolean b4=!url.substring(url.length()-4).equals(".jsp"); HttpSession session = request.getSession(); Admin admin = (Admin) session.getAttribute("admin"); System.out.println(admin+" "); if(b1&&b2&&b3&&b4){ if(admin == null){ System.out.println("8888888888"); response.sendRedirect("/cpShop/admin/login.jsp"); }else{ arg2.doFilter(request, response); return; } }else{ arg2.doFilter(request, response); return; } } @Override public void init(FilterConfig arg0) throws ServletException { System.out.println("start!!"); } }
web.xml配置文件中的代码
<filter> <description>过滤器</description> <filter-name>adminFilter</filter-name> <filter-class>com.zh.util.SessionFilter</filter-class> </filter> <filter-mapping> <filter-name>adminFilter</filter-name> <url-pattern>/admin/*</url-pattern> </filter-mapping>
相关文章推荐
- servlet+jsp实现过滤器 防止用户未登录访问
- servlet+jsp实现过滤器,防止用户未登录访问
- jsp实现网站浏览过滤器(没有登录就不能访问其他网页)
- filter 过滤器用户登录并判断是否属于电脑端或者手机端访问
- 基于Cookie使用过滤器实现客户每次访问只登录一次
- 过滤器实现登录验证及拒绝直接输url访问网页
- JAVAWEB开发之Servlet Filter(过滤器)详解包括post和get编码过滤器、URL访问权限控制、自动登录。以及装饰模式的使用
- Java Servlet Filter实现Web注销登录过滤器
- javaWeb项目用过滤器filter实现登陆成功后才能访问主页面,否则直接输入主页面的地址自动跳转到登陆界面
- spring boot---WebFilter注解 实现自定义登录过滤器
- Java 利用过滤器Filter 实现登录过滤
- 【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能
- 过滤器实现登录验证及拒绝直接输URL访问网页
- 过滤器(filter)实现用户登录拦截
- 30_Filter_登录过滤器的实现
- 通过过滤器Filter来完成登录访问权限限制
- 只有登录成功后,才能访问一些页面(2种方法:1.通过判断sesssion是否为空)2.过滤器Filter
- JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤
- 过滤器实现对未登录用户访问JSP页面,进行控制。
- 利用过滤器(Filter)实现自动登录功能