springmvc过滤器简单实例
来源:互联网 发布:淘宝日本人占多少股份 编辑:程序博客网 时间:2024/05/21 16:59
自定义过滤器
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) */ @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { //request.getSession().setAttribute("loginedUser", "ssss"); // 不过滤的uri String[] notFilter = new String[] { "login.jsp", "index.jsp" }; // 请求的uri String 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>
阅读全文
0 0
- springmvc过滤器简单实例
- filter过滤器简单实例
- springmvc过滤器的简单使用
- SpringMVC简单注解实例
- springmvc+oscache 简单实例
- SpringMVC 简单实例
- springMVC 简单实例
- SpringMVC 简单实例
- springmvc redis 简单实例
- SpringMVC简单入门实例
- 简单的SpringMvc实例
- SpringMVC 简单实例
- SpringMVC入门简单实例
- springMVC入门实例 springMVC简单入门
- springMVC框架(简单登录实例)
- SpringMVC 基础教程 简单入门实例
- springmvc,mybatis3简单配置实例
- springmvc整合hibernate简单实例
- 图的逆向邻接表以及遍历
- Android自定义view 画图——圆环进度条
- HTTPS证书生成原理、HTTPS安装部署细节介绍
- 微信公众号支付那些事
- 二维数组中的查找 (剑指Offer 第 1 题)
- springmvc过滤器简单实例
- 性能优化
- java内部类
- EEPROM和flash的区别 及 nor flash和nand flash
- java入门包装类-Integer
- Personal-Traning题解(一)
- 「Caffe架构+5.5万行代码+芯片每秒6万亿次浮点运算」这是AMD深度学习的开源战略
- 大家好,这是香港科技大学PyTorch四日速成教程
- 详解Android中AsyncTask的使用