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

 更新时间:2024年01月08日 11:07:09   作者:探索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组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • AbstractQueuedSynchronizer内部类Node使用讲解

    AbstractQueuedSynchronizer内部类Node使用讲解

    这篇文章主要为大家介绍了AbstractQueuedSynchronizer内部类Node使用讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 浅谈一下Java中集合的迭代方式

    浅谈一下Java中集合的迭代方式

    这篇文章主要介绍了浅谈一下Java中集合的迭代方式,可以帮助我们学习,理解函数式编程,需要的朋友可以参考下
    2023-04-04
  • Java线程状态转换关系实例解析

    Java线程状态转换关系实例解析

    这篇文章主要介绍了Java线程状态转换关系实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • MyBatis中如何接收String类型的参数实现

    MyBatis中如何接收String类型的参数实现

    这篇文章主要介绍了MyBatis中如何接收String类型的参数实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • SpringBoot详解整合Spring Cache实现Redis缓存流程

    SpringBoot详解整合Spring Cache实现Redis缓存流程

    这篇文章主要介绍了SpringBoot整合Spring Cache实现Redis缓存方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • java面试题解LeetCode27二叉树的镜像实例

    java面试题解LeetCode27二叉树的镜像实例

    这篇文章主要为大家介绍了java面试题解LeetCode27二叉树的镜像实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • MyBatis-Puls插入或修改时某些字段自动填充操作示例

    MyBatis-Puls插入或修改时某些字段自动填充操作示例

    这篇文章主要为大家介绍了MyBatis-Puls插入或修改时某些字段自动填充操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Java的常用包

    Java的常用包

    本文主要对Java的常用包进行一一介绍。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 解决idea spring boot 修改html等不重启即时生效的问题

    解决idea spring boot 修改html等不重启即时生效的问题

    这篇文章主要介绍了解决idea spring boot 修改html等不重启即时生效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Spring Boot 读取静态资源文件的方法

    Spring Boot 读取静态资源文件的方法

    本篇文章主要介绍了Spring Boot 读取静态资源文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论