SpringBoot整合Servlet和Filter和Listener组件详解
整合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组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
AbstractQueuedSynchronizer内部类Node使用讲解
这篇文章主要为大家介绍了AbstractQueuedSynchronizer内部类Node使用讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-07-07SpringBoot详解整合Spring Cache实现Redis缓存流程
这篇文章主要介绍了SpringBoot整合Spring Cache实现Redis缓存方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-07-07MyBatis-Puls插入或修改时某些字段自动填充操作示例
这篇文章主要为大家介绍了MyBatis-Puls插入或修改时某些字段自动填充操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-12-12解决idea spring boot 修改html等不重启即时生效的问题
这篇文章主要介绍了解决idea spring boot 修改html等不重启即时生效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02
最新评论