SpringBoot 注册Servlet三大组件【Servlet、Filter、Listener】

由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件。 注册三大组件,class MyServlet()/class MyListener/ class MyFilter 需要自己亲自编写!!

1. class MyServlet

1package com.szs.springboot04.servlet; 2 3import javax.servlet.ServletException; 4import javax.servlet.http.HttpServlet; 5import javax.servlet.http.HttpServletRequest; 6import javax.servlet.http.HttpServletResponse; 7import java.io.IOException; 8 9public class MyServlet extends HttpServlet { 10 11 @Override 12 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 13 doPost(req, resp); 14 } 15 16 @Override 17 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 18 resp.getWriter().print("Hello MyServlet!!!"); 19 } 20}

ServletRegistrationBean 注册

1@Configuration 2public class MyServerConfig { 3 /** 4 * 注册三大组件 5 */ 6 @Bean 7 public ServletRegistrationBean myServlet(){ 8 ServletRegistrationBean registrationBean = 9 new ServletRegistrationBean(new MyServlet(),"/myServlet"); 10 registrationBean.setLoadOnStartup(1); 11 return registrationBean; 12 }

效果展示


2.class MyFilter implements Filter

1import javax.servlet.*; 2import java.io.IOException; 3 4public class MyFilter implements Filter { 5 public MyFilter() { 6 super(); 7 } 8 9 @Override 10 public void init(FilterConfig filterConfig) throws ServletException { 11 System.out.println("myFilter正在初始化..."); 12 } 13 14 @Override 15 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 16 System.out.println("MyFilter 正在Process..."); 17 filterChain.doFilter(servletRequest, servletResponse); 18 } 19 20 @Override 21 public void destroy() { 22 23 } 24}

FilterRegistrationBean 注册

1@Configuration 2public class MyServerConfig { 3 @Bean 4 public FilterRegistrationBean myFilter(){ 5 FilterRegistrationBean registrationBean = new FilterRegistrationBean(); 6 registrationBean.setFilter(new MyFilter()); 7 registrationBean.setUrlPatterns(Arrays.asList("/hello","/myServlet")); 8 return registrationBean; 9 }


3.class MyListener implements ServletContextListener

1public class MyListener implements ServletContextListener { 2 @Override 3 public void contextInitialized(ServletContextEvent servletContextEvent) { 4 System.out.println("contextInitialized ...web应用启动"); 5 } 6 7 @Override 8 public void contextDestroyed(ServletContextEvent servletContextEvent) { 9 System.out.println("contextDestroyed... web项目已经销毁"); 10 } 11}

ServletListenerRegistrationBean myListener()

1@Configuration 2public class MyServerConfig { 3@Bean 4public ServletListenerRegistrationBean myListener(){ 5 return new ServletListenerRegistrationBean<>(new MyListener()); 6 } 7

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

SpringBoot连接常见设置

SpringBoot集成了Servlet容器,因此我们可以方便的启动一个容器,并访问其中的接口。那么如何控制Servlet容器中的线程池呢?可以通过如下配置进行控制server:tomcat:appcectcount:1minspacethreads:1maxthreads:

Spring Boot使用笔记

1\. boot将自动把bean类型为Servlet,Filter,listener等servlet规范中的类型,向boot内嵌的web容器注册,需要控制filter、servlet的初始化和参数等,可以使用FilterRegistrationBean和ServletRegistrationBean,来自文档https://docs.spring.i

JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet

一、Servlet的传统配置方式  在JavaWeb开发中,每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示:1<servlet2<servletnameActionServlet</servletname3<servletcla

SpringBoot 注册Servlet三大组件【Servlet、Filter、Listener】 - HelloWorld