SpringBoot 整合Servlet、Filter和Listener

一般情况下,使用Spring、Spring MVC这些框架之后,基本上就告别Servlet、Filter以及Listener了,但是有时在整合一些第三方框架时,可能还是不得不使用Servlet。Spring Boot中对于整合这些基本的Web组件也提供了很好的支持。

 

添加如下三个组件:

1
2
3
4
5
6
7
8
9
10
11
12
@WebServlet("/my")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
        doPost(req, resp);
    }
 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
        System.out.println("name>>>" + req.getParameter("name"));
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@WebFilter("/*")
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) {
        System.out.println("MyFilter>>>init");
    }
 
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("MyFilter>>>doFilter");
        chain.doFilter(request, response);
    }
 
    @Override
    public void destroy() {
        System.out.println("MyFilter>>>destroy");
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
@WebListener
public class MyListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("MyListener>>>requestDestroyed");
    }
 
    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("MyListener>>>requestInitialized");
    }
}

 

• 这里定义了三个基本的组件,分别使用@WebServlet、@WebFilter和@WebListener三个注解进行标记。

• 这里以ServletRequestListener为例,但是对于其他的Listener,例如HttpSessionListener、ServletContextListener等也是支持的。

 

在项目入口类上添加@ServletComponentScan注解,实现对Servlet、Filter以及Listener的扫描

 

http://127.0.0.1:8081/my?name=null

 

 

参考文章: Spring Boot+Vue全栈开发实战 - 4.10 整合Servlet、Filter和Listener

 

posted @   草木物语  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-04-12 idea mysqldump
2017-04-12 js 获取随机数 Math.random()
点击右上角即可分享
微信分享提示