springmvc过滤器的简单使用
来源:互联网 发布:源码之家easck 编辑:程序博客网 时间:2024/05/23 01:11
这里用一个登陆的例子实现过滤器的简单使用
步骤:
1.编写一个类,接入接口OncePerRequestFilter
2.web.xml中配置这个类
2.接入接口
package cn.lay.web;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.filter.OncePerRequestFilter;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.io.PrintWriter;/** * Created by lay on 2017/2/17 0017. */public class FilterControl extends OncePerRequestFilter{ @Override protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException { System.out.println("进入过滤器"); String[] strs = new String[]{"login"}; boolean doFilter = true; String url = httpServletRequest.getRequestURI(); for (String str: strs) { if (url.indexOf(str) != -1){ doFilter = false; break; } } HttpSession session = httpServletRequest.getSession(); String account = (String) session.getAttribute("account"); doFilter = doFilter && account == null; if (doFilter){ // 防止乱码 httpServletResponse.setContentType("text/html;charset=UTF-8"); PrintWriter printWriter = httpServletResponse.getWriter(); String loginPage = "http://www.baidu.com"; 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>"); printWriter.print(builder.toString()); }else{ filterChain.doFilter(httpServletRequest, httpServletResponse); } }}
2.web.xml配置
<!--过滤器配置--> <filter> <filter-name>FilterControl</filter-name> <filter-class>cn.lay.web.FilterControl</filter-class> </filter> <filter-mapping> <filter-name>FilterControl</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
注意:如果项目中有配置拦截器,那么过滤器先执行,再执行拦截器。可以打印输出来测试一下。
参考链接
0 0
- springmvc过滤器的简单使用
- springmvc过滤器简单实例
- Filter过滤器的简单使用
- 过滤器的简单使用案例
- SpringMVC的简单使用
- springmvc的过滤器--Filter
- 【过滤器】(1)过滤器原理、使用方式的简单介绍
- Filter过滤器最简单的使用
- Vue2.0 过滤器的简单使用
- JAVA-EE过滤器Filter的简单使用
- Go-过滤器的简单使用(bloom)
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- springMVC注解的简单使用
- iOS开发------iOS 10 由于权限问题导致崩溃的那些坑
- JAVA 反射
- STM32之的GPIO推挽输出与开漏输出的区别
- iOS发送短信后验证码倒计时
- sss
- springmvc过滤器的简单使用
- 重载和重写
- java excel poi导入 过滤空行的方法 判断是否是空行
- 信息安全工程
- Executors
- Yii Modules Layouts调用方式
- 数据结构实验之查找一:二叉排序树
- 文章标题
- 程序猿教你学剪辑