Spring Boot (Web 篇):整合Servlet
說在前面
Servlet簡介:https://blog.csdn.net/Soinice/article/details/82745918
當使用Spring-Boot時,嵌入式Servlet容器通過掃描註解的方式註冊Servlet、Filter和Servlet規範的所有監聽器(如HttpSessionListener監聽器)
Spring boot 的主 Servlet 為 DispatcherServlet,其預設的url-pattern為“/”。也許我們在應用中還需要定義更多的Servlet,該如何使用SpringBoot來完成呢?
在spring boot中新增自己的Servlet有兩種方法,程式碼註冊Servlet和註解自動註冊(Filter和Listener也是如此)。
一、程式碼註冊通過ServletRegistrationBean 獲得控制。
也可以通過實現 ServletContextInitializer 介面直接註冊。
二、在 SpringBootApplication 上使用@ServletComponentScan註解後,Servlet可以直接通過 @WebServlet 註解自動註冊,無需其他程式碼。
在pom.xml加入相關依賴
當然,通過idea 建立預設spring boot web 專案,會預設含有這個屬性
1)通過ServletRegistrationBean進行程式碼註冊
編寫 Servlet
註冊 Servlet
將 Servelt 註冊成 Bean。在上文建立的 WebMvcConfig類中新增如下程式碼:
注意urlMappings,後面需要 “/”
頁面訪問
2)通過註解@ServletComponentScan進行程式碼註冊
編寫 Servlet
在Servlet類添加註解@WebServlet(servlet請求地址,類似1)中urlMappings)
註冊 Servlet
將 Servelt 進行元件掃描。在應用啟動SpringBootDemoApplication類中添加註解@ServletComponentScan:
頁面訪問
總結
web開發使用Controller基本能解決大部分的需求,但是有時候我們也需要使用Servlet,因為相對於攔截和監聽來說,有時候原生的還是比較好用的。
原始碼下載
[相關示例完整程式碼]請獲取 相關分支哦:feature-20180910-web