首页 > 代码库 > 基于springMVC实现登录过滤器
基于springMVC实现登录过滤器
此文章是基于 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台
一. 准备工作
1. 点击此下载相关文件,并把文件放到 ims 工程对应的文件夹下
二. 相关文件介绍
1. LoginFilter.java:登录过滤器,保证每次的url访问都对session进行验证
package com.ims.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.web.filter.OncePerRequestFilter; import com.ims.common.ConfigHolder; /** * 登陆过滤器 */ public class LoginFilter extends OncePerRequestFilter{ @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { // 不拦截的url String[] notFilter = new String[] {"/login.do","/service"}; // 请求的url String url = request.getRequestURI(); boolean doFilter = chek(notFilter, url); if (doFilter) { HttpSession session = request.getSession(); Object obj = session.getAttribute(ConfigHolder.getValue("session.sys.user")); if (null == obj) { // 如果session中不存在登录者实体,则弹出框提示重新登录 PrintWriter out = response.getWriter(); String loginPage = request.getContextPath() + "/login.do"; StringBuilder builder = new StringBuilder(); builder.append("<script type=\"text/javascript\">"); builder.append("window.top.location.href=http://www.mamicode.com/‘"); builder.append(loginPage); builder.append("‘;"); builder.append("</script>"); out.print(builder.toString()); } else { filterChain.doFilter(request, response); } } else { filterChain.doFilter(request, response); } } /** * 检查是否拦截 * @param notFilter 不拦截的url * @param url 请求的url * @return false:不拦截 true:拦截 */ public boolean chek(String[] notFilter, String url) { // 图片、脚本、css、页面不进行拦截 if (url.endsWith(".css") || url.endsWith(".js") || url.endsWith(".png") || url.endsWith(".jpg") || url.endsWith(".gif") || url.endsWith(".jsp") || url.endsWith(".html")) { return false; } // 含有notFilter中的任何一个则不进行拦截 for (String s : notFilter) { if (url.indexOf(s) != -1) { return false; } } return true; } }
2. web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.4"> <filter> <filter-name>loginFilter</filter-name> <filter-class>com.ims.web.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
基于springMVC实现登录过滤器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。