JavaWeb实现用户登录的拦截
来源:互联网 发布:能量矩阵 编辑:程序博客网 时间:2024/06/05 23:01
1、在web.xml中如下配置
<filter-name>loginFilter</filter-name> <filter-class>cmcc.rsc.paweb.scan.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2、在后台代码部分添加一个继承Filter的过滤器类
package cmcc.rsc.paweb.scan;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 LoginFilter implements Filter { @Override public void destroy() { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { // 判断是否是http请求 if (!(servletRequest instanceof HttpServletRequest) || !(servletResponse instanceof HttpServletResponse)) { throw new ServletException( "OncePerRequestFilter just supports HTTP requests"); } // 获得在下面代码中要用的request,response,session对象 HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; HttpSession session = httpRequest.getSession(true); String[] strs = { "forgetPsd", "login", "logout", "static" }; // 路径中包含这些字符串的,可以不用登录直接访问 StringBuffer url = httpRequest.getRequestURL(); /** * 过滤掉根目录 */ String path = httpRequest.getContextPath(); String protAndPath = httpRequest.getServerPort() == 80 ? "" : ":" + httpRequest.getServerPort(); String basePath = httpRequest.getScheme() + "://" + httpRequest.getServerName() + protAndPath + path + "/"; if (basePath.equalsIgnoreCase(url.toString())) { filterChain.doFilter(servletRequest, servletResponse); return; } // 特殊用途的路径可以直接访问 if (strs != null && strs.length > 0) { for (String str : strs) { if (url.indexOf(str) >= 0) { filterChain.doFilter(servletRequest, servletResponse); return; } } } // 从session中获取用户信息 String loginInfo = (String) session.getAttribute("pa_uuid"); if (null != loginInfo && !"".equals(loginInfo)) { // 用户存在,可以访问此地址 filterChain.doFilter(servletRequest, servletResponse); } else { // 用户不存在,踢回登录页面// String returnUrl = httpRequest.getContextPath() + "/loginpage"; String returnUrl = "http://localhost:3000/login"; httpRequest.setCharacterEncoding("UTF-8"); httpResponse.setContentType("text/html; charset=UTF-8"); // 转码 httpResponse .getWriter() .println( "<script language=\"javascript\">alert(\"您还没有登录,请先登录!\");if(window.opener==null){window.top.location.href=\"" + returnUrl + "\";}else{window.opener.top.location.href=\"" + returnUrl + "\";window.close();}</script>"); return; } } @Override public void init(FilterConfig arg0) throws ServletException { }}
0 0
- JavaWeb实现用户登录的拦截
- springmvc 自定义拦截器实现未登录用户的拦截
- javaweb用户的自动登录模块的实现
- 配置拦截器实现对用户登录的控制
- 实现对未登录用户进行相关操作的拦截
- springmvc拦截器实现对用户登录状态的判断
- java-web实现拦截未登录用户
- Javaweb 登录注册的实现
- 登录拦截器的实现
- JavaWeb用户登录
- 用户登录拦截器
- JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应
- JavaWeb拦截器,查看用户是否登录过,未登录禁止访问页面并且跳转到登录页面
- 拦截器实现对用户是否登录及登陆超时的验证
- Struts2 拦截器实现用户登录(关键代码)
- springmvc实现方法拦截,用户未登录不能访问
- javaweb的登录验证过滤器的实现
- 对MySQL的几个错误印象
- Git 操作整理
- 能帮你管理Xcode插件的工具 Alcatraz
- java之StringUtils
- 操作系统死锁
- JavaWeb实现用户登录的拦截
- (一)一个问题引入:mysql数据库优化
- 逆向工具相关使用总结
- iOS-UItableview 分割线(自定义+原生)方法总结
- linux 回收站的路径
- ListView布局嵌套Viewpager+gridview创建无限轮播+分类
- UIView和CALayer的区别 说的比较清楚了
- HSU 2328 Corporate Identity
- 微信自动关闭内置浏览器页面,返回公众号窗口