java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot整合Web组件

SpringBoot整合Servlet和Filter和Listener组件详解

作者:探索er

这篇文章主要介绍了SpringBoot整合Servlet和Filter和Listener组件详解,在整合某报表插件时就需要使用Servlet,Spring Boot中对于整合这些基本的Web组件也提供了很好的支持,需要的朋友可以参考下

整合Servlet、Filter和Listener

一般情况 下,使用Spring、Spring MVC这些框架之后,基本上就告别Servlet、Filter以及Listener了。

但是有时在整合一些第三方框架时,可能还是不得不使用Servlet, 比如在整合某报表插件时就需要使用Servlet。

Spring Boot中对于整合这些基本的Web组件也提供了很好的支持。

在一个Spring Boot Web项目中添加如下三个组件: (import javax.servlet.*; 下的类)

@WebServlet("/my")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("name>>>" + req.getParameter("name"));
    }
}
@WebFilter("/*")
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("MyFilter>>>init");
    }

    @Override
    public void destroy() {
        System.out.println("MyFilter>>>doFilter");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        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");
    }
}

代码解释:

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

@SpringBootApplication
@ServletComponentScan
public class TestspringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestspringbootApplication.class, args);
    }

}

最后,启动项目,在浏览器中输入"//localhost:8080/my?name=Michael",可以看到相关日志。

MyListener>> > requestInitialized
MyFilter>> >destroy
MyListener>>> requestDestroyed
MyListener>> > requestInitialized
MyFilter>> >destroy
MyListener>>> requestDestroyed

到此这篇关于SpringBoot整合Servlet和Filter和Listener组件详解的文章就介绍到这了,更多相关SpringBoot整合Web组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文