自定义过滤器


package com.ssm.student.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;/*** @className SessionFilter* @deprecated 登录过滤器* @author pengfei.xiong* @date 2017年10月8日*/
public class SessionFilter extends OncePerRequestFilter{/** (non-Javadoc)* * @see* org.springframework.web.filter.OncePerRequestFilter#doFilterInternal(* javax.servlet.http.HttpServletRequest,* javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain)*/@Overrideprotected void doFilterInternal(HttpServletRequest request,HttpServletResponse response, FilterChain filterChain)throws ServletException, IOException {//request.getSession().setAttribute("loginedUser", "ssss");// 不过滤的uriString[] notFilter = new String[] { "login.jsp", "index.jsp" };// 请求的uriString uri = request.getRequestURI();// uri中包含background时才进行过滤if (uri.indexOf("do") != -1) {// 是否过滤boolean doFilter = true;for (String s : notFilter) {if (uri.indexOf(s) != -1) {// 如果uri中包含不过滤的uri,则不进行过滤doFilter = false;break;}}if (doFilter) {// 执行过滤// 从session中获取登录者实体Object obj = request.getSession().getAttribute("loginedUser");if (null == obj) {// 如果session中不存在登录者实体,则弹出框提示重新登录// 设置request和response的字符集,防止乱码request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");response.setContentType("text/html");PrintWriter out = response.getWriter();String loginPage = "login-old.jsp";StringBuilder builder = new StringBuilder();builder.append("<script type=\"text/javascript\">");builder.append("alert('网页过期,请重新登录');");builder.append("window.top.location.href='");builder.append(loginPage);builder.append("';");builder.append("</script>");out.print(builder.toString());} else {// 如果session中存在登录者实体,则继续filterChain.doFilter(request, response);}} else {// 如果不执行过滤,则继续filterChain.doFilter(request, response);}} else {// 如果uri中不包含background,则继续filterChain.doFilter(request, response);}}//在web.xml中配置..
}

web.xml配置过滤器

<!-- 自定义过滤器 --><filter><filter-name>sessionFilter</filter-name><filter-class>com.ssm.student.filter.SessionFilter</filter-class></filter><filter-mapping><filter-name>sessionFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

转载于:https://www.cnblogs.com/xpf1009/p/9227315.html

springmvc过滤器简单实例相关推荐

  1. springMVC简单实例

    springMVC简单实例 参考: 使用springMVC实现简单的登录例子 - Admol - 博客园 https://www.cnblogs.com/admol/articles/4199546. ...

  2. SpringMVC——过滤器

    SpringMVC--过滤器实现和理解 一.先提出几个问题 ?过滤器是什么? ?过滤器是如何实现的? ?过滤器和拦截器的区别? ?过滤器的核心原理是什么(阅读源码)? 之前我学东西总是不够深入,现在决 ...

  3. ActiveMQ简单介绍+简单实例

    本文出自:http://www.open-open.com/lib/view/open1388994166156.html 1. JMS基本概念      JMS(Java Message Servi ...

  4. java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码

    jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...

  5. js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称

    1,列举对象属性的名称 <script language="javascript"> var obj=new Object(); obj.a="您好,我是田洪 ...

  6. 关于webservice的异步调用简单实例

    于webservice的异步调用简单实例 无论在任何情况下,被调用方的代码无论是被异步调用还是同步调用的情况下,被调用方的代码都是一样的, 下面,我们就以异步调用一个webservice 为例作说明. ...

  7. (三)AJAX基本介绍和简单实例03

    (三)AJAX基本介绍和简单实例03-----Ajax与数据库的动态应用 前台显示界面: 选择所有客户之后: 选择其中一个客户---杜森: Demo03.html代码 <html> < ...

  8. protobuf和socket通信简单实例

    protobuf和socket通信简单实例   protobuf是 Google 公司内部的混合语言数据标准,可以用来定义通信的协议,由于其有序列化和反序列化的操作,减小了存储或通信的数据量,从而达到 ...

  9. 转载 jsonrpc环境搭建和简单实例

    jsonrpc环境搭建和简单实例 一.环境准备 下载需要的jar包和js文件,下载地址:https://yunpan.cn/cxvbm9DhK9tDq  访问密码 6a50 二.新建一个web工程,j ...

最新文章

  1. Spring Cloud(六)服务网关 zuul 快速入门
  2. Spring Boot Dubbo 应用启停源码分析
  3. Python基础之:Python中的异常和错误
  4. Xamarin中国峰会2019
  5. 基于AliOS Things玩转智能语音
  6. 软件项目成员的业绩考核
  7. Linux内核分析——进程的描述和进程的创建
  8. js脚本实现自由复制百度文库文字
  9. 离散时间傅里叶变换Matlab实现
  10. 为什么Flutter是跨平台开发的终极之选,android完整项目源码
  11. Python系列之Django(ORM)
  12. 网络安全从入门到精通的学习资源汇总
  13. 怎样设计才能让文字排版更好看(一)
  14. 正则表达式 语法详解
  15. 第四次作业 个人学习总结 霍兰德- 职业兴趣测评
  16. Golang项目 Go Build时报错
  17. 【视频】什么是Bootstrap自抽样及应用R语言线性回归预测置信区间实例|数据分享
  18. 神经网络epoch和batch的粗浅理解
  19. jsp计算机网络学习网站
  20. 前端开发【短信分享】——H5调起短信,发送指定内容到指定号码

热门文章

  1. mongodb之配置
  2. jQuery(function(){...})与(function($){...})(jQuery)的“兄弟”情结
  3. android中控制ListView宽度和高度
  4. Log4j配置文件解读和模板页收藏
  5. SSL:Ubuntu证书配置
  6. Code Complete-13/7/29
  7. SSIS的文件系统任务实例(zz)
  8. Python的Linux的入门,学习摘要。
  9. LP Wizard 10.5破解步骤
  10. asp子窗口读取父窗口数据_算法与数据结构基础 - 数组(Array)