springboot之过滤器,监听器的使用
来源:互联网 发布:苹果公司营销策略数据 编辑:程序博客网 时间:2024/06/05 11:23
我们在上一章节已经介绍了 spring boot如何注入servlet,其中就涉及到过滤器(Filter)和监听器(Listener) ,其实spring boot使用过滤器和监听器的注册方法和 Servlet 一样,本文将直接使用@WebFilter和@WebListener的方式,完成一个Filter 和一个 Listener;
使用注解
1
@ServletComponentScan
//这个就是扫描相应的Servlet包;
过滤器(Filter)文件
com.kfit.filter.MyFilter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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模式是必选属性)
*
* @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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package
com.kfit.listener;
import
javax.servlet.ServletContextEvent;
import
javax.servlet.ServletContextListener;
import
javax.servlet.annotation.WebListener;
/**
* 使用@WebListener注解,实现ServletContextListener接口
*
*
*/
@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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 注解。
启动的过程中我们会看到输出:
1
2
3
4
5
6
ServletContex初始化
过滤器初始化
服务启动后,随便访问一个页面,会看到输出:
执行过滤操作
Session 被创建
至于如何使用代码的方式注册Filter和Listener,请参考上一篇文章关键Servlet的介绍。不同的是需要使用 FilterRegistrationBean 和 ServletListenerRegistrationBean 这两个类。
阅读全文
0 0
- springboot之过滤器,监听器的使用
- Springboot监听器的使用
- springboot的监听器,拦截器与过滤器
- SpringBoot过滤器的使用
- 过滤器、监听器的功能和使用
- javaweb之过滤器监听器
- 十三、SpringBoot配置过滤器、监听器、Servlets
- Servlet的过滤器,监听器
- springboot之过滤器(filter)
- Servlet之监听器与过滤器
- 使用servlet过滤器和监听器
- 使用servlet过滤器和监听器
- 使用servlet过滤器和监听器
- 使用servlet过滤器和监听器
- 使用servlet过滤器和监听器
- 使用servlet过滤器和监听器
- 微服务,微架构[十二]springboot监听器,过滤器
- SpringBoot系列<八>过滤器filter和监听器listener配置
- servChannel.register()源码分析
- hdu 6090-Rikka with Graph
- 关于77页读写string对象编程错误
- 解决IE8 内置JSON.stringify,中文变unicode的问题
- 营销思维系列——1
- springboot之过滤器,监听器的使用
- 在VS2013环境下使用EF框架与Sqlite(一)
- Hadoop-No.15之Flume基于事件的数据收集和处理
- 通过 SQL 查询学习 Pandas 数据处理
- Android studio sdk tools 无法更新 cmake和LLDB方法
- Java-Java8
- Android 如何连续的测量蓝牙的RSSI
- Latex note
- 如何理解style中display:inline-block