springboot配置嵌入式servlet容器的方法
配置嵌入式Servlet容器
springboot默認(rèn)tomcat為嵌入式servlet容器,所以不用在配置tomcat。
1.如何定制修改servlet容器?
1.在applicatio.properties里修改和server有關(guān)的配置(推薦)
如:
server.tomcat server.tomcat.connection-timeout= 連接超時(shí)時(shí)間 server.tomcat.uri-encoding=UTF-8 修改編碼
server.servlet.XXX 通用servlet容器設(shè)置
server.tomcatXXX 一般是Tomcat的設(shè)置
2.通過(guò)代碼的方式修改配置
-編寫(xiě)一個(gè)配置類(lèi) @Configuration 注解即可
-在里面添加一個(gè)ConfigurableServletWebServerFactory定制器
@Bean public ConfigurableServletWebServerFactory configurableServletWebServerFactory(){ TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();//這里是一個(gè)工廠 factory.setPort(8088);//修改端口號(hào) //factory.setContextPath("/lanqiao518"); return factory; }
-返回定制器,并注入到容器中 @Bean ,這個(gè)時(shí)候就配置好了
3.注冊(cè)Servlet三大組件(servlet、Listener【監(jiān)聽(tīng)器】,Filter【過(guò)濾器】)
首先要自己寫(xiě)一個(gè)類(lèi),分別實(shí)現(xiàn)三大組件自己的接口然后才能添加進(jìn)容器中
這里以servlet為例:
Servlet:
public class MyServlet extends HttpServlet {//寫(xiě)好servlet下一步給他添加進(jìn)容器中 @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 { resp.setContentType("text/html;charset=utf-8"); resp.setCharacterEncoding("utf-8"); resp.getWriter().write("hello 你好"); } }
listener:
public class Mylistener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("項(xiàng)目啟動(dòng)了————————————————————————"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("項(xiàng)目關(guān)閉了————————————————————————"); } }
Filter:
public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("MyFilter攔截了----------------------"); filterChain.doFilter(servletRequest,servletResponse);//然后放行 } @Override public void destroy() { } }
1.將自己寫(xiě)的servlet注入容器:
@Configuration public class MyServletConfig { //將自己寫(xiě)的servlet添加進(jìn)容器 @Bean public ServletRegistrationBean myServlet(){ ServletRegistrationBean registrationBean=new ServletRegistrationBean(new MyServlet(),"/my");//將自己寫(xiě)的servlet添加進(jìn)來(lái),并給一個(gè)訪(fǎng)問(wèn)路徑 return registrationBean; } }
2.將自己寫(xiě)的Linstener注入容器
@Bean public ServletListenerRegistrationBean myListener() { ServletListenerRegistrationBean listenerRegistrationBean = new ServletListenerRegistrationBean(new Mylistener());//傳一個(gè)自己寫(xiě)的監(jiān)聽(tīng)器即可 return listenerRegistrationBean; }
3.將自己寫(xiě)的Filter注入容器
@Bean public FilterRegistrationBean myFilter(){ FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(new MyFilter(),myServlet());//傳一個(gè)自己寫(xiě)的Filter 和你要攔截的servlet 可以是多個(gè) return filterRegistrationBean; }
注意:注入時(shí)的名稱(chēng)和自己編寫(xiě)的類(lèi)名一致
到此這篇關(guān)于springboot配置嵌入式servlet容器的方法的文章就介紹到這了,更多相關(guān)springboot嵌入式servlet容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)任務(wù)超時(shí)處理方法
任務(wù)超時(shí)處理是比較常見(jiàn)的需求,Java中對(duì)超時(shí)任務(wù)的處理有兩種方式,在文中給大家詳細(xì)介紹,本文重點(diǎn)給大家介紹Java實(shí)現(xiàn)任務(wù)超時(shí)處理方法,需要的朋友可以參考下2019-06-06SpringBoot+Ant Design Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出功能方式
這篇文章主要介紹了SpringBoot+Ant Design Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出功能方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01java實(shí)現(xiàn)求兩個(gè)字符串最長(zhǎng)公共子串的方法
這篇文章主要介紹了java實(shí)現(xiàn)求兩個(gè)字符串最長(zhǎng)公共子串的方法,是一道華為OJ上的一道題目,涉及Java針對(duì)字符串的遍歷、轉(zhuǎn)換及流程控制等技巧,需要的朋友可以參考下2015-12-12Bean實(shí)例化之前修改BeanDefinition示例詳解
這篇文章主要為大家介紹了Bean實(shí)例化之前修改BeanDefinition示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12Java_異常類(lèi)(錯(cuò)誤和異常,兩者的區(qū)別介紹)
下面小編就為大家?guī)?lái)一篇Java_異常類(lèi)(錯(cuò)誤和異常,兩者的區(qū)別介紹) 。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09Java單線(xiàn)程ThreadLocal串值問(wèn)題解決方案
這篇文章主要介紹了Java單線(xiàn)程ThreadLocal串值問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Mybatis日志參數(shù)快速替換占位符工具的詳細(xì)步驟
這篇文章主要介紹了Mybatis日志參數(shù)快速替換占位符工具的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08SpringBoot項(xiàng)目打成War布署在Tomcat的詳細(xì)步驟
這篇文章主要介紹了SpringBoot項(xiàng)目打成War布署在Tomcat,本文分步驟結(jié)合圖文實(shí)例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03Mybatis關(guān)聯(lián)查詢(xún)之一對(duì)多和多對(duì)一XML配置詳解
這篇文章主要介紹了Mybatis關(guān)聯(lián)查詢(xún)之一對(duì)多和多對(duì)一XML配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10