1. 程式人生 > >Spring Boot (Web 篇):整合Servlet

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