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组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IntelliJ IDEA 2022.2.1最新永久激活破解教程(持续更新)

    IntelliJ IDEA 2022.2.1最新永久激活破解教程(持续更新)

    这篇文章主要介绍了IntelliJ IDEA 2022.2.1最新永久激活破解教程(持续更新),小编测试这种激活工具也适用idea2022以下所有版本,本篇教程整理的比较详细,汇总了idea各个版本的激活工具,激活方法多种多样,大家选择一种即可,感兴趣的朋友跟随小编一起看看吧
    2022-09-09
  • IDEA2022创建Maven Web项目教程(图文)

    IDEA2022创建Maven Web项目教程(图文)

    本文主要介绍了IDEA2022创建Maven Web项目教程,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • MyBatis-Plus 与Druid 数据源操作

    MyBatis-Plus 与Druid 数据源操作

    SpringBoot框架集成MyBatis-Plus和Druid数据源,简化了数据操作与监控,MyBatis-Plus作为MyBatis的增强工具,自动实现CRUD操作,减少手写SQL,提供分页、逻辑删除等功能,本文介绍MyBatis-Plus & Druid 数据源总结,感兴趣的朋友一起看看吧
    2024-09-09
  • Spring Cloud负载均衡LoadBalance及实际应用

    Spring Cloud负载均衡LoadBalance及实际应用

    负载均衡是一种将流量合理分配到多个服务器的技术,可以提高系统的可用性和性能,本文通过一个示例展示了如何使用SpringCloudLoadBalancer实现负载均衡,负载均衡的概念、实现方式以及在SpringCloud中的应用,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • 如何设计一个秒杀系统

    如何设计一个秒杀系统

    本文主要介绍了如何设计一个秒杀系统的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Spring中自定义拦截器的使用

    Spring中自定义拦截器的使用

    大家好,本篇文章主要讲的是Spring中自定义拦截器的使用,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Java基础学习笔记之数组详解

    Java基础学习笔记之数组详解

    这篇文章主要介绍了Java基础学习笔记之数组,结合实例形式详细分析了java的基本概念、定义、迭代、输出、反转、排序等常用操作技巧,需要的朋友可以参考下
    2019-08-08
  • 图文详解MyEclipse更换背景主题的方法

    图文详解MyEclipse更换背景主题的方法

    今天小编就为大家分享一篇关于MyEclipse更换背景主题的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • springboot使用@value读取配置的方法

    springboot使用@value读取配置的方法

    今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币。本文图文实例相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-10-10
  • spring NamedContextFactory实现服务隔离的示例详解

    spring NamedContextFactory实现服务隔离的示例详解

    假设我们有个场景,我们需要实现服务之间的数据隔离、配置隔离、依赖的spring bean之间隔离,大家会有什么实现思路?今天给大家介绍spring-cloud-context里面有个NamedContextFactory可以达到上面的效果,需要的朋友可以参考下
    2024-05-05

最新评论