springboot的Interceptor、Filter、Listener及注册
springboot拦截器:
public class Interceptor implements HandlerInterceptor{private Logger logger = LoggerFactory.getLogger(Interceptor.class);public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {// TODO Auto-generated method stub }public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throws Exception {// TODO Auto-generated method stub }public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {String flag = null;flag = request.getParameter("auth");if(StringUtils.isEmpty(flag) || !flag.equals("php")){/*logger.error("error-auth:{}", flag);response.getWriter().append("error-auth");return false;*/} else {logger.info("通过校验!");return true;}return true;} }
spring boot过滤器:
/** 如果是一个过滤器,在MyFilter类上加上@WebFilter(filterName = "myFilter",urlPatterns = {"/*"}) ,入口类加上@ServletComponentScan即可*/ public class MyFilter implements Filter{@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {System.out.println(request.getParameter("name"));HttpServletRequest hrequest = (HttpServletRequest)request;HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper((HttpServletResponse) response);if(hrequest.getRequestURI().indexOf("/index") != -1 ||hrequest.getRequestURI().indexOf("/asd") != -1 ||hrequest.getRequestURI().indexOf("/online") != -1 ||hrequest.getRequestURI().indexOf("/login") != -1) {chain.doFilter(request, response);}else { // wrapper.sendRedirect("/login"); chain.doFilter(request, response);}}@Overridepublic void destroy() {} }
springboot监听器:
/*** @date: 2019/4/1* @description: ServletRequestListener、 HttpSessionListener 、ServletContextListener ......* 可直接在MyListener类上使用@WebListener注解,入口类加上@ServletComponentScan即可*/ public class MyListener implements HttpSessionListener {private Logger logger = LoggerFactory.getLogger(this.getClass());//用户this.getClass(), 粘贴不容易出错public static int online = 0;@Overridepublic void sessionCreated(HttpSessionEvent se) {online ++;logger.info("online在线人数为:" + online);}@Overridepublic void sessionDestroyed(HttpSessionEvent se) {} }
向spring注册拦截器、过滤器、监听器:
@Configuration public class MyWebAppConfigurer implements WebMvcConfigurer {// @Bean/* public HandlerInterceptor getMyInterceptor(){return new Interceptor();}*//*** 注册拦截器* @param registry*/@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new Interceptor()).addPathPatterns("/**"); // super.addInterceptors(registry); }/*** 注册监听器* @return*/@SuppressWarnings({ "rawtypes", "unchecked" })@Beanpublic ServletListenerRegistrationBean listenerRegist() {ServletListenerRegistrationBean srb = new ServletListenerRegistrationBean();srb.setListener(new MyListener());System.out.println("listener");return srb;}/*** 注册过滤器* @return*/@SuppressWarnings({ "rawtypes", "unchecked" })@Beanpublic FilterRegistrationBean filterRegist() {FilterRegistrationBean frBean = new FilterRegistrationBean();frBean.setFilter(new MyFilter()); // frBean.setOrder(1);//多个过滤器时指定过滤器的执行顺序frBean.addUrlPatterns("/*");System.out.println("filter");return frBean;}/*@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/zxc/foo").setViewName("foo");}*/}
转载于:https://www.cnblogs.com/heqiyoujing/p/11106824.html
springboot的Interceptor、Filter、Listener及注册相关推荐
- SpringBoot的Web开发入门案例5—注册Servlets, Filter, Listener
SpringBoot的Web开发入门案例5-注册Servlets, Filter, Listener 注册Servlet 创建MyServlet类 package com.blu.conf;impor ...
- springmvc整合redis_111 SpringBoot整合Servlet JSP Filter Listener
1. SpringBoot介绍 (1) 什么是Spring Boot? (2) Spring Boot有哪些特点? Spring Boot 设计目的是用来简化新 Spring 应用的初始搭建以及开发过 ...
- servlet/filter/listener/interceptor区别与联系
2019独角兽企业重金招聘Python工程师标准>>> servlet/filter/listener/interceptor区别与联系 博客分类: java 由于最近两个月工作比较 ...
- Spring Boot整合Servlet,Filter,Listener,访问静态资源
目录 Spring Boot整合Servlet(两种方式) 第一种方式(通过注解扫描方式完成Servlet组件的注册): 第二种方式(通过方法完成Servlet组件的注册) Springboot整合F ...
- servlet,filter,listener区别
时间的朋友 随笔 - 2314, 文章 - 3, 评论 - 101, 引用 - 0 servlet/filter/listener/interceptor区别与联系 一.概念: 1.servlet:s ...
- SpringBoot mybatis Interceptor分页实现
环境准备 什么是拦截器 为什么要这样写 具体实现 什么是拦截器 SpringBoot mybatis interceptor拦截器是你在执行SQL语句之前对执行的SQL语句进行修改 分页的原理是通过拦 ...
- 玩转 SpringBoot 2 快速整合 Listener
前言 本文主要介绍如何在SpringBoot 2 中使用 Listener 的快速搭建教程,阅读前需要你必须了解 Listener 的基础使用以及如何搭建 SpringBoot 项目. 快速演示操作 ...
- JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx
JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx 1. MVC ...
- JavaWeb-Servlet+Filter+Listener+Session
JavaWeb 一.Servlet Servlet 是 JavaEE 规范之一.规范就是接口. Servlet 是 JavaWeb三大组件之一.三大组件分别是:Servlet程序.Filter过滤器. ...
- JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下)
JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下) Reference 转载于:https://www.cnblogs.com/Jeremy2001 ...
最新文章
- 死磕Java并发:J.U.C之Condition
- IDEA mybatis 在service无法使用@Autowired , could not autowire
- c语言构造插值多项式,拉格朗日多项式插值(C语言).docx
- C# Socket编程(3)编码和解码
- 二进制蚁群算法【源码实现】
- Span元素的 width属性 无效果原因及解决方案
- excel排名_Excel案例:比赛中,如何实时显示排名
- [转][SVN] Hook scripts的使用方法
- scrapy shell 用法(慢慢更新...)
- 地市级地铁数据管理信息系统解决方案
- stm32程序flash下载和sram运行
- 以太网未识别的网络win10_Win10以太网未识别的网络怎么办
- php活动倒计时代码,JavaScript实现活动倒计时效果的代码分享
- tree | 分类回归树模型
- linux启用dcb步骤,Linux内核DCB子系统
- 怎么批量删除 Word、PDF、PPT 以及 Excel 文档中的空白页?
- 信号处理中的低通、高通和带通滤波器
- 宝塔linux开启缓存,宝塔面板缓存在哪里
- 教程:如何利用Google AIY做一个自动撵猫神器?
- (解决)虚拟机黑屏,界面显示:/dev/sda1: clean, xxxxx/yyyyyy files, aaaaaa/bbbbbbb blocks....
热门文章
- c语言闰年题目程序,浙大版《C语言程序设计(第3版)》题目集 练习3-5 输出闰年...
- mysql 命令查看sql文件大小_用SQL命令查看Mysql数据库大小
- python散点图数据怎么输入_python 散点图添加标签
- 以太坊 ERC EIP是什么
- latex 图片缩小指定比例
- 10个python数据可视化库_这10个python数据可视化库,通吃任何领域
- Leetcode之回文数
- js获取后端传过来的数据
- java super.参数,Java super和this的对比及使用
- Commons Collections4 简单使用