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"); } }
代码解释:
- 这里定义了 三个基本的组件,分别使用@WebServlet、@WebFilter 和@WebListener三个注解进行标记。
- 这里以 ServletRequestListener为例,但是对于其他的Listener, 例如HttpSessionI istener、ServletContextListener等也是支持的。
在项目入口类上添加@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组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!