• SpringBoot 整合Servlet、Filter和Listener


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

    添加如下三个组件:

    @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"));
        }
    }
    
    @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");
        }
    }
    
    @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

  • 相关阅读:
    暑 假 队 测 Round #5
    暑 假 队 测 Round #4
    暑 假 队 测 Round #3
    什么是nginx、CGI、fastCGI、php-fpm、PHP-CGI,fast-CGI 与 php-cgi又是什么关系
    Go源码各目录含义
    User space 与 Kernel space
    Shell脚本编程30分钟入门
    Tomcat7配置及其servlet调用详解
    最简单的移动端适配方案
    textarea元素只设置高可变,宽固定
  • 原文地址:https://www.cnblogs.com/ooo0/p/16135017.html
Copyright © 2020-2023  润新知