SpringBoot中默认内置了Servlet容器,Tomcat。SpringBoot默认是以jar包的方式启动内置的Servlet容器,没有web.xml文件。所以只能通过自定义servlet配置。使用ServletRegistrationBean、FilterRegistrationBean、ServletListenerRegistrationBean来实现servle的三大组件。

CustomServletConfig

@Configuration
public class CustomServletConfig {//注册servlet@Beanpublic ServletRegistrationBean myServlet(){ServletRegistrationBean<Myservlet> registrationBean = new ServletRegistrationBean<>();registrationBean.setServlet(new Myservlet());registrationBean.addUrlMappings("/myServlet");return  registrationBean;}//注册Filter@Beanpublic FilterRegistrationBean myFilter(){System.out.println("CustomServletConfig.myFilter");FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>();registrationBean.setFilter(new MyFilter());registrationBean.addUrlPatterns("/showLogin","/test1");return registrationBean;}@Beanpublic ServletListenerRegistrationBean myListener(){ServletListenerRegistrationBean<MyListener> servletListenerRegistrationBean = new ServletListenerRegistrationBean<>();servletListenerRegistrationBean.setListener(new MyListener());return  servletListenerRegistrationBean;}
}

Myservlet

public class Myservlet extends HttpServlet {@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("Myservlet.doGet");doPost(req,resp);}@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("Myservlet.doPost");}
}

MyListener

public class MyListener  implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {System.out.println("MyListener.contextInitialized");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {System.out.println("MyListener.contextDestroyed");}
}

MyFilter

public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {System.out.println("MyFilter.doFilter");filterChain.doFilter(servletRequest,servletResponse);}@Overridepublic void destroy() {}
}

MyListener

public class MyListener  implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {System.out.println("MyListener.contextInitialized");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {System.out.println("MyListener.contextDestroyed");}
}

转载于:https://www.cnblogs.com/lilihai/p/10177660.html

SpringBoot中注册Servlet三大组件相关推荐

  1. Spring Boot注册Servlet三大组件(Servlet, Filter, Listener)

    Spring Boot默认使用的Tomcat的Servlet容器,这个容器我们可以自己替换,比如替换成支持JSP的Servlet容器,这个容器已经帮我们注册好了一个Servlet(Dispatcher ...

  2. Spring Boot怎么样注册Servlet三大组件[Servlet、Filter、Listener]

    前言 由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件. 注册三大组件用以下方式 一.ServletRegis ...

  3. Spring Boot之注册servlet三大组件

    由于Spring Boot默认是以jar包的形式启动嵌入式的Servlet容器来启动Spring Boot的web应用是,没有web.xml配置文件 注册三大组件用以下方式 ServletRegist ...

  4. spring boot没有web.xml,如何向嵌入式的servlet容器中注册servlet组件

    1. Spring boot默认使用Tomcat作为嵌入式的servlet容器,只要引入spring-boot-starter-web依赖,就会默认用Tomcat作为servlet容器. 2. Spr ...

  5. Spring Boot基础学习笔记12:组件注册整合Servlet三大组件

    文章目录 零.学习目标 一.整合Servlet三大组件概述 (一)组件注册整合Servlet三大组件 (二)路径扫描整合Servlet三大组件 二.创建Spring Boot项目 - Integrat ...

  6. Spring Boot基础学习笔记13:路径扫描整合Servlet三大组件

    文章目录 零.学习目标 一.创建Spring Boot项目 - IntegrateThreeComponents02 二.使用路径扫描方式整合Servlet三大组件 (一)创建MyServlet类 ( ...

  7. Spring Boot Web应用程序中注册 Servlet 的方法实例

    Spring Boot Web应用程序中注册 Servlet 的方法实例 本文实例工程源代码:https://github.com/KotlinSpringBoot/demo1_add_servlet ...

  8. @EnableAspectJAutoProxy||AOP原理:【看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?】

    AOP原理:[看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?] @EnableAspectJAutoProxy是什么? * AOP原理:[看给容器中注册了什么组件,这个组件什么 ...

  9. 【小家Spring】SpringBoot中使用Servlet、Filter、Listener三大组件的三种方式以及原理剖析

    每篇一句 要么就安逸的穷,要么就拼命的干 前提概要 web开发使用Controller基本能解决大部分的需求,但是有时候我们也需要使用Servlet,因为相对于拦截和监听来说,有时候原生的还是比较好用 ...

最新文章

  1. .Net下的签名与混淆
  2. 【渝粤题库】国家开放大学2021春2517社区工作题目
  3. 谁说菜鸟不会数据分析--读书笔记
  4. idea中Terminal显示不全或不显示问题的解决办法
  5. [导入]在asp.net中实现观察者模式,或有更好的方法(续)
  6. 手机web禁止微信调整字体
  7. python 图表_python可视化入图表|贵州茅台净利润分析
  8. 小米路由器r3gv2/r4a Lean的OpenWrt固件
  9. Python chardet模块
  10. 敌兵布阵(HDU - 1166)(线段树的点更新-区间查询)
  11. Ipad IOS 蓝牙键盘快捷键
  12. setoolkit进行钓鱼攻击
  13. Tensorboard无法显示图像
  14. AVD Android虚拟设备root教程
  15. dbca 命令行静默方式创建Oracle RAC
  16. Cross_entropy和softmax
  17. python pygame 游戏实践: 俄罗斯方块(Tetris Game)第一步
  18. eclipse 解决 java.lang.NoClassDefFoundError: ilog/concert/IloException
  19. 好听的名字 - 收藏给宝宝起名字用
  20. Webpack4 配置TS Loader

热门文章

  1. Abp vnext Web应用程序开发教程 6 —— 作者:领域层
  2. 优麒麟 20.04 LTS 版本发布,UKUI3.0 灵动转身
  3. java 守护进程 linux_Java实现Linux下服务器程序的双守护进程
  4. vue用html做报表,Vue配置生成无限分割的表格,可快速实现任意复杂报表
  5. matlab检查错误 函数,检查代码中的错误和警告
  6. eigrp配置实验_EIGRP负载均衡的实现
  7. select下拉框怎么去掉空白_行业词库:网站长尾关键词优化怎么做呢?
  8. 机器学习算法平台alink_机器学习-逻辑回归算法
  9. JavaEE编码规范
  10. java布尔类型的调用_【Java学习笔记之八】JavaBean中布尔类型使用注意事项