日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發(fā)布時間:2025/4/16 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot注册Servlet三大组件(Servlet, Filter, Listener) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spring Boot默認使用的Tomcat的Servlet容器,這個容器我們可以自己替換,比如替換成支持JSP的Servlet容器,這個容器已經(jīng)幫我們注冊好了一個Servlet(DispatcherServlet),并且使用DispatcherServletAutoConfiguration幫我們設置好了DispatcherServlet。那么有的時候我們希望使用我們自己的Servlet。這個時候應該這么辦呢?Spring Boot也給我們提供了方法,直接看代碼:

package com.chester;import java.util.Arrays;import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean;@SpringBootConfiguration public class ServletConfiguration {//注冊setvlet@Beanpublic ServletRegistrationBean createBookServlet(){//參數(shù)為我們自己的Servlet實現(xiàn)和攔截的路徑ServletRegistrationBean servlet = new ServletRegistrationBean(new Myervlet(),"/myServlet");return servlet;}//注冊Filter@Beanpublic FilterRegistrationBean createFilterRegistrationBean(){FilterRegistrationBean filter = new FilterRegistrationBean();//參數(shù)為我們自己的過濾器,下面一個為設置過濾的路徑filter.setFilter(new MyFilter());filter.setUrlPatterns(Arrays.asList("/hello","/myServlet"));return filter;}//注冊Listener@Beanpublic ServletListenerRegistrationBean<StartupListener> createServletListenerRegistrationBean(){//注冊我們自己的監(jiān)聽器ServletListenerRegistrationBean<StartupListener> listener =new ServletListenerRegistrationBean<>(new MyListener());return listener;} }

這三大組件就是我們原生的Servlet三大組件,下面我給出這三大組件的示例,讀者可以根據(jù)業(yè)務自行修改:

MyServlet實現(xiàn)

package com.chester;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class MyServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write("Hi Springboot Servlet!!!!");}}

MyFilter實現(xiàn):

package com.chesterimport java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest;public class MyFilter implements Filter {public void init(FilterConfig config) throws ServletException {}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest req =(HttpServletRequest)request;System.out.println("spring boot web filter " + req.getRequestURI());chain.doFilter(request, response);}public void destroy() {} }

MyListener實現(xiàn):

package com.chester;import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;public class MyListener implements ServletContextListener {public void contextInitialized(ServletContextEvent event) {System.out.println("=================");System.out.println("application is started");}public void contextDestroyed(ServletContextEvent event) {System.out.println("=================");System.out.println("application is destroyed");}}

總結(jié)

以上是生活随笔為你收集整理的Spring Boot注册Servlet三大组件(Servlet, Filter, Listener)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。