Spring MVC过滤器 登陆过滤
代码:
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过滤器 登陆过滤相关推荐
- 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 ...
- Spring MVC过滤器-HiddenHttpMethodFilter
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) from:Spring MVC过滤器-HiddenHttpMethodFilter_Blake Luo-CSD ...
- Spring MVC过滤器-HttpPutFormContentFilter
在Spring MVC过滤器-HiddenHttpMethodFilter中我们提到,jsp或者说html中的form的method值只能为post或get,我们可以通过HiddenHttpMetho ...
- spring mvc 过滤器
1.什么是过滤器 a. 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改.判断等,把不符合规则的请求在中途拦截或修改.也可以对响应进行过滤,拦截 ...
- Spring MVC过滤器-超类
Spring的web包中中有很多过滤器,这些过滤器位于org.springframework.web.filter并且理所当然地实现了javax.servlet.Filter,不过实现的方式有以下几类 ...
- Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)
Spring的字符集过滤通过用于处理项目中的乱码问题,该过滤器位于org.springframework.web.filter包中,指向类CharacterEncodingFilter,Charact ...
- Spring MVC过滤器-委派过滤器代理(DelegatingFilterProxy)
org.springframework.web.filter中有一个特殊的类--DelegatingFilterProxy,该类其实并不能说是一个过滤器,它的原型是FilterToBeanProxy, ...
- Spring MVC过滤器-超类 GenericFilterBean
GenericFilterBean 抽象类GenericFilterBean实现了javax.servlet.Filter.org.springframework.beans.factory.Bean ...
- Spring MVC过滤器-RequestContextFilter
在Spring中可以使用很多种方式来实现request的转发,将页面提交的request转发到Controller中,而实现这一功能的原理即是设置LocaleContextHolder和Request ...
最新文章
- 【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )
- python处理数据库_python操作数据库
- Docker中未指定挂载点容器间volume卷的数据共享
- 11计算机,11-计算机科学与技术
- java生成16位随机数_java中如何产生一个16位数字组成的随机字符串?谢谢各位了...
- python中的shutil模块
- 五分钟实现网站安全 创新工场“安全宝”吸引大量用户
- stm32F4的ADC+DMA+Timer,实现2MHz连续采样。1LSB分辨率,极低噪声。
- 使用awk进行文本处理
- 个人晋升演讲ppt_晋升面试ppt自我展示演讲稿
- 为什么webview中网页字体大小跟样式设置的不同?
- 计算机二级C语言辅导考试买啥书,在大学想考计算机二级,请问自学的话需要买什么辅导书,要买好几本是吗?...
- 基于访客的网络(VBN)
- 【2022牛客多校5 A题 Don‘t Starve】DP
- bcdedit编辑启动项 禁用数字签名
- win10注册ocx控件的步骤(包含错误处理方法0x80040200)
- 什么是Python中的套接字编程?
- 苹果电脑MACbook Air快捷键大全
- Matlab axis函数应用简介
- Android Style和自定义属性