代码:

package com.uniquedu.filter;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 org.springframework.web.filter.OncePerRequestFilter;/*** 登录过滤* */
public class UserSessionFilter extends OncePerRequestFilter {@Overrideprotected void doFilterInternal(HttpServletRequest request,HttpServletResponse response, FilterChain filterChain)throws ServletException, IOException {// 不拦截的urlString[] notFilter = new String[] {"/index.jsp","selectExiteUser"};// 请求的urlString url = request.getRequestURI();if(url.indexOf("UniqueduHome") != -1){boolean doFilter = chek(notFilter,url);if(doFilter){Object obj = request.getSession().getAttribute("userSession");if(null==obj){// 如果session中不存在登录者实体,则弹出框提示重新登录PrintWriter out = response.getWriter();String loginPage = request.getContextPath()+"/index.jsp";StringBuilder builder = new StringBuilder();builder.append("<script type=\"text/javascript\">");builder.append("window.top.location.href='");builder.append(loginPage);builder.append("';");builder.append("</script>");out.print(builder.toString());}else {filterChain.doFilter(request, response);}}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){//url以css和js结尾的不进行拦截if(url.endsWith(".css") || url.endsWith(".js")){return false;}//含有notFilter中的任何一个则不进行拦截for (String s : notFilter) {if (url.indexOf(s) != -1) {return false;}}return true;}}

web.xml中配置:

 <!-- start 添加拦截器 --><filter><filter-name>UserSessionFilter</filter-name><filter-class>com.uniquedu.filter.UserSessionFilter</filter-class></filter><filter-mapping><filter-name>UserSessionFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--  end 添加拦截器 -->

参考: http://blog.csdn.net/geloin/article/details/7445441

Spring MVC过滤器 登陆过滤相关推荐

  1. Spring MVC过滤器-登录过滤

    以下代码是继承OncePerRequestFilter实现登录过滤的代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  2. Spring MVC过滤器-HiddenHttpMethodFilter

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) from:Spring MVC过滤器-HiddenHttpMethodFilter_Blake Luo-CSD ...

  3. Spring MVC过滤器-HttpPutFormContentFilter

    在Spring MVC过滤器-HiddenHttpMethodFilter中我们提到,jsp或者说html中的form的method值只能为post或get,我们可以通过HiddenHttpMetho ...

  4. spring mvc 过滤器

    1.什么是过滤器 a. 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改.判断等,把不符合规则的请求在中途拦截或修改.也可以对响应进行过滤,拦截 ...

  5. Spring MVC过滤器-超类

    Spring的web包中中有很多过滤器,这些过滤器位于org.springframework.web.filter并且理所当然地实现了javax.servlet.Filter,不过实现的方式有以下几类 ...

  6. Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)

    Spring的字符集过滤通过用于处理项目中的乱码问题,该过滤器位于org.springframework.web.filter包中,指向类CharacterEncodingFilter,Charact ...

  7. Spring MVC过滤器-委派过滤器代理(DelegatingFilterProxy)

    org.springframework.web.filter中有一个特殊的类--DelegatingFilterProxy,该类其实并不能说是一个过滤器,它的原型是FilterToBeanProxy, ...

  8. Spring MVC过滤器-超类 GenericFilterBean

    GenericFilterBean 抽象类GenericFilterBean实现了javax.servlet.Filter.org.springframework.beans.factory.Bean ...

  9. Spring MVC过滤器-RequestContextFilter

    在Spring中可以使用很多种方式来实现request的转发,将页面提交的request转发到Controller中,而实现这一功能的原理即是设置LocaleContextHolder和Request ...

最新文章

  1. 【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )
  2. python处理数据库_python操作数据库
  3. Docker中未指定挂载点容器间volume卷的数据共享
  4. 11计算机,11-计算机科学与技术
  5. java生成16位随机数_java中如何产生一个16位数字组成的随机字符串?谢谢各位了...
  6. python中的shutil模块
  7. 五分钟实现网站安全 创新工场“安全宝”吸引大量用户
  8. stm32F4的ADC+DMA+Timer,实现2MHz连续采样。1LSB分辨率,极低噪声。
  9. 使用awk进行文本处理
  10. 个人晋升演讲ppt_晋升面试ppt自我展示演讲稿
  11. 为什么webview中网页字体大小跟样式设置的不同?
  12. 计算机二级C语言辅导考试买啥书,在大学想考计算机二级,请问自学的话需要买什么辅导书,要买好几本是吗?...
  13. 基于访客的网络(VBN)
  14. 【2022牛客多校5 A题 Don‘t Starve】DP
  15. bcdedit编辑启动项 禁用数字签名
  16. win10注册ocx控件的步骤(包含错误处理方法0x80040200)
  17. 什么是Python中的套接字编程?
  18. 苹果电脑MACbook Air快捷键大全
  19. Matlab axis函数应用简介
  20. Android Style和自定义属性

热门文章

  1. docker创建nginx容器
  2. 数据结构与算法的思考与历程
  3. CSS实现立体字效果
  4. SpringBoot @Configuration 详解
  5. mongodb 面试题
  6. 嫁给程序员是一种什么体验
  7. CSS伪元素BEFORE、AFTER妙用:制作时尚焦点图相框
  8. 我的世界做服务器的指令什么作用,我的世界服务器什么指令可以重启服务器 | 手游网游页游攻略大全...
  9. 2023年五个WhatsApp防止封号攻略看这里!
  10. c++中为什么要用引用?