(21)Spring Boot过滤器、监听器【从零开始学Spring Boot】
来源:互联网 发布:淘宝怎么一键铺货 编辑:程序博客网 时间:2024/04/30 00:50
上一篇文章已经对定义Servlet 的方法进行了说明,过滤器(Filter)和监听器(Listener)的注册方法和Servlet 一样,不清楚的可以查看下上一篇文章(20): 本文将直接使用@WebFilter和@WebListener的方式,完成一个Filter 和一个 Listener;使用注解
@ServletComponentScan//这个就是扫描相应的Servlet包;
过滤器(Filter)文件
com.kfit.filter.MyFilter.java
package com.kfit.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
*
* 使用注解标注过滤器
* @WebFilter将一个实现了javax.servlet.Filter接口的类定义为过滤器
* 属性filterName声明过滤器的名称,可选
* 属性urlPatterns指定要过滤的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)
* @author Angel(QQ:412887952)
* @version v.0.1
*/
@WebFilter(filterName="myFilter",urlPatterns="/*")
publicclass MyFilter implements Filter{
@Override
publicvoid init(FilterConfig config) throws ServletException {
System.out.println("过滤器初始化");
}
@Override
publicvoid doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("执行过滤操作");
chain.doFilter(request, response);
}
@Override
publicvoid destroy() {
System.out.println("过滤器销毁");
}
}
ServletContext监听器(Listener)文件
com.kfit.listener.MyServletContextListener:
package com.kfit.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
* 使用@WebListener注解,实现ServletContextListener接口
*
* @author Angel(QQ:412887952)
* @version v.0.1
*/
@WebListener
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("ServletContex销毁");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("ServletContex初始化");
}
}
ServletContext监听器(Listener)文件(HttpSessionListener)
MyHttpSessionListener.java
package com.kfit.listener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
* 监听Session的创建与销毁
*
*/
@WebListener
publicclassMyHttpSessionListenerimplementsHttpSessionListener {
@Override
publicvoid sessionCreated(HttpSessionEvent se) {
System.out.println("Session 被创建");
}
@Override
publicvoid sessionDestroyed(HttpSessionEvent se) {
System.out.println("ServletContex初始化");
}
}
注意不要忘记在 SpringBootSampleApplication.java 上添加 @ServletComponentScan 注解。
启动的过程中我们会看到输出:
ServletContex初始化
过滤器初始化
服务启动后,随便访问一个页面,会看到输出:
执行过滤操作
Session
被创建
为什么无法看到session的过程:http://zhidao.baidu.com/link?url=EP-wlLvKpo8zI5NaIZrESzCdivq3Xg8VgOWQOvfpSLl3opTgvESerpo4wsG6tOs_dm6cQQMF_kQ6THNjNzr2Nq
至于如何使用代码的方式注册Filter和Listener,请参考上一篇文章关键Servlet的介绍。不同的是需要使用FilterRegistrationBean 和 ServletListenerRegistrationBean 这两个类。
- (21)Spring Boot过滤器、监听器【从零开始学Spring Boot】
- 21. Spring Boot过滤器、监听器【从零开始学Spring Boot】
- 21. Spring Boot过滤器、监听器【从零开始学Spring Boot】
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- Spring Boot 过滤器、监听器
- 从零开始学Spring Boot
- 从零开始学spring-boot(1)-Hello spring boot!
- (3)Spring Boot热部署【从零开始学Spring Boot】
- (6)Spring Boot datasource - mysql【从零开始学Spring Boot】
- (3)Spring Boot热部署【从零开始学Spring Boot】
- struts2拦截器实现权限控制
- 直接插入排序和冒泡排序有什么区别 直接插入排序和冒泡排序有哪些不同
- tomcat设置管理员在远程(不同)机器上访问管理页面
- ES 优化
- Binder工作机制详解(应用层)
- (21)Spring Boot过滤器、监听器【从零开始学Spring Boot】
- 【Inno Setup】修改安装分割线前面的文字并自定义风格(颜色、字体大小等等)
- 典型的网络接口安全机制,AES和RSA混合加密
- shadertoy-star
- [Linux命令]--ls
- Android开发者的混淆使用手册
- iOS常用的第三方及实例
- jdk环境配置
- RocketMQ 入门使用详解