14.Spring Boot监听器、过滤器、拦截器

目录


1. Spring Boot基本介绍及Eclipse插件安装(STS)

2. Spring Boot基本使用(Thymeleaf模板、国际化)

3. Spring Boot使用Thymeleaf模板引擎

4. Thymeleaf标签详细

5. Spring Boot自动配置

6. Spring Boot配置文件(yml、properties)

7. Spring Boot集成常用配置参数

8. Spring Boot常用注解及JPA注解

9. Spring Boot事务

10. Spring Boot热部署

11. Spring Boot中使用JSP

12. Spirng Boot自定义错误页面

13. Spring Boot防止表单重复提交实现方式

14. Spring Boot监听器、过滤器、拦截器

15. Spring Boot单元测试(Service、Mock、Feign、Http Rest API)

16. Spring Boot多线程基本使用

17. Spring Boot加载指定YML文件


Spring Boot监听器、过滤器、拦截器

  • 目录
  • Spring Boot监听器、过滤器、拦截器
    • 启动类中增加注解
    • 监听器
    • 过滤器
    • 拦截器
    • 1.实现拦截器接口(HandlerInterceptor)
    • 2.实现WebMvcConfigurer接口,在addInterceptors()中添加拦截器


Spring Boot监听器、过滤器、拦截器

启动类中增加注解

在SpringBootApplication启动类上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码

@WebFilter过滤器参数:

参数 描述
filterName 过滤器名字
urlPatterns 过滤器的范围,拦截规则,支持正则
initParams 过滤器初始化参数

监听器

监听器也叫Listener,是Servlet的监听器,可以用于监听Web应用中某些对象;信息的创建、销毁、增加、修改、删除等动作的发生,然后做出相应的响应处理。当范围对象的状态发生变化时,服务器自动调用监听器对象中的方法,常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等

监听器:listener是servlet规范中定义的一种特殊类。用于监听servletContext、HttpSession和servletRequest等域对象的创建和销毁事件。监听域对象的属性发生修改的事件。用于在事件发生前、发生后做一些必要的处理
1.统计在线人数和在线用户
2.系统启动时加载初始化信息
3.统计网站访问量
4.记录用户访问路径

1.创建监听器(实现HttpSessionListener接口)
2.实现WebMvcConfigurer接口,在listenerRegist()添加监听器

@Bean
public ServletListenerRegistrationBean listenerRegist() {
	ServletListenerRegistrationBean srb = new ServletListenerRegistrationBean();
	srb.setListener(new MyHttpSessionListener());
	System.out.println("listener");
	return srb;
}

过滤器

过滤器:Filter是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。

例如:实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理

1.实现Filter接口创建过滤器
2.实现WebMvcConfigurer接口,在filterRegist()添加过滤器

@Bean
public FilterRegistrationBean filterRegist() {
	FilterRegistrationBean frBean = new FilterRegistrationBean();
	frBean.setFilter(new MyFilter());
	frBean.addUrlPatterns("/*");
	System.out.println("filter");
	return frBean;
}

拦截器

拦截器:Interceptor 在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作

比如日志、安全等。一般拦截器方法都是通过动态代理的方式实现。可以通过它来进行权限验证,或者判断用户是否登陆,或者是像12306判断当前时间是否是购票时间

1.实现拦截器接口(HandlerInterceptor)

或者继承HandlerInterceptorAdapter创建一个拦截器

public class Interceptor implements HandlerInterceptor {
}

2.实现WebMvcConfigurer接口,在addInterceptors()中添加拦截器

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
	
	@Autowired
	private Interceptor handlerInterceptor; 
	
	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(handlerInterceptor);
	}
}

你可能感兴趣的:(Spring,Boot,spring,boot,servlet,java)