最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Spring Boot教程 | 袁庭新老師帶你極速掌握Spring Boot整合Servlet三大組件

2023-11-06 18:23 作者:袁庭新  | 我要投稿

01?Servlet三大組件

不知道各位小伙伴,是否還記得Servlet、Filter、Listener三大組件的知識點?如果你忘記了,趕緊翻開你的小本本復(fù)習(xí)回顧一下吧。今天袁老師會給大家介紹如何在Spring Boot中整合Servlet三大組件,快來看看吧。

我們在進行Servlet開發(fā)時,通常首先自定義Servlet、Filter、Listener三大組件,然后在文件web.xm中進行配置。而Spring Boot使用的是內(nèi)嵌式Servlet容器,并沒有提供外部配置文件web.xml,那么Spring Boot又該如何整合Servlet的相關(guān)組件呢?其實Spring Boot給我們提供了組件注冊和路徑掃描兩種方式,來整合Servlet三大組件。

在Spring Boot中,當我們使用組件注冊方式整合內(nèi)嵌Servlet容器的Servlet、Filter、Listener三大組件時,只需將這些自定義組件通過ServletRegistrationBean、FilterRegistrationBean、ServletListenerRegistrationBean類注冊到容器中即可。

接下來我們就來看看具體的代碼實現(xiàn)吧。

02?組件注冊方式整合Servlet

1.創(chuàng)建自定義Servlet類。在chapter05項目中的com.cy.servletComponent包中,我們創(chuàng)建一個繼承了HttpServlet的類MySevlet。

2.創(chuàng)建Servlet組件配置類。在項目com.cy.config包中,我們可以創(chuàng)建一個Servlet組件配置類ServletConfig,用來對Servlet相關(guān)組件進行注冊。

3.啟動項目進行測試。項目啟動成功后,在瀏覽器上訪問http://localhost:8080/myServlet查看數(shù)據(jù)顯示。

03?使用組件注冊方式整合Filter

1.創(chuàng)建自定義Filter類。我們可以在com.cy.servletComponent包下創(chuàng)建一個類MyFilter。

2.向Servlet組件配置類注冊自定義Filter類。打開之前創(chuàng)建的Servlet組件配置類ServletConfig,將該自定義Filter類使用組件注冊方式進行注冊。

3.請求測試。項目啟動成功后,在瀏覽器上訪問http://localhost:8080/myFilter查看控制臺打印效果(這里由于我們沒有編寫對應(yīng)路徑的請求處理方法,所以瀏覽器會現(xiàn)404錯誤頁面,這里重點關(guān)注控制臺即可)。

4.控制臺會輸出如下結(jié)果:

04?使用組件注冊方式整合Listener

1.創(chuàng)建自定義Listener類。我們可以在com.cy.servletComponent包下創(chuàng)建一個類MyListener。

2.向Servlet組件配置類注冊自定義Listener類。我們可以打開之前創(chuàng)建的Servlet組件配置類ServletConfig,將該自定義Listener類使用組件注冊方式進行注冊。

需要說明的是,Servlet容器提供了很多Listener接口,例如ServletRequestListener、HttpSessionListener、ServletContextListener 等,我們在自定義Listener類時要根據(jù)自身需求選擇實現(xiàn)對應(yīng)接口即可。

3.執(zhí)行效果。完成自定義Listener組件注冊后啟動項目,項目啟動成功后查看控制臺打印效果。

單擊IDEA工具控制臺左側(cè)的[Exit]按鈕,就可以關(guān)閉當前項目。注意,如果我們直接單擊紅色按鈕會強制關(guān)閉程序,瀏覽器就無法打印關(guān)閉監(jiān)聽信息,再次查看控制臺打印效果。

將自定義的Servlet組件配置類ServletConfig全部注釋并重啟項目后,自定義的Servlet、Filter、Listener組件仍然生效。出現(xiàn)這種情況的主要原因是:嵌入式Servlet容器對Servlet、Filter、Listener組件進行了自動化識別和配置,而自定義的Servlet、Filter、Listener都繼承/實現(xiàn)了對應(yīng)的類/接口,同時自定義的Servlet、Filter、Listener組件都使用了@Component注解,這些組件會被自動掃描為Spring組件。

使用ServletRegistrationBean、FilterRegistrationBean、ServletListenerRegistrationBean組件組裝配置的根本目的是對一些請求路徑和參數(shù)進行初始化設(shè)置和組裝。假設(shè)沒有組件注冊類,那么自定義Servlet雖然生效,但無法確定是哪個訪問路徑生效。自定義的Filter會對所有的請求都進行過濾,不會出現(xiàn)選擇性過濾的情況。而自定義的Listener則沒有太大影響,因為定制該組件基本不需要設(shè)置什么參數(shù)。

05?路徑掃描整合Servlet三大組件

在Spring Boot中,使用路徑掃描的方式整合內(nèi)嵌式Servlet 容器的Seviet Fiter 、Lste三大組件時,首先需要在自定義組件上分別添加WebSevle. @WebFiter和Weblistene注解進行聲明,并配置相關(guān)注解屬性,然后在項目主程序啟動類上使用@SerletComponentScan 注解開啟組件掃描即可。

5.1?使用路徑掃描方式整合

為了簡化操作,在上小節(jié)自定義組件的基礎(chǔ)上,我們使用路徑掃描的方式來實現(xiàn)Servlet容器的Servlet、Filter、Listener三大組件的整合。

為了避免與之前編寫的使用組件注冊的方式相互干擾,先將之前自定義的Servlet組件配置類ServletConfig全部注釋掉,同時注釋掉自定義Servlet、Filter、Listener三大組件類上的@Component注解。

注釋掉自定義MyServlet組件類上的@Component注解,在MyServlet組件中使用@WebServlet注解聲明并配置相關(guān)屬性。

注釋掉自定義MyListener組件類上的@Component注解,在MyListener組件中使用@WebListener注解聲明并配置相關(guān)屬性。

使用相關(guān)注解配置好自定義三大組件后,需在項目主程序啟動類上添加@ServletComponentScan注解,開啟基于注解方式的Servlet組件掃描支持。

5.2?效果測試

啟動項目,項目啟動成功后查看控制臺打印效果。

然后我們在瀏覽器上訪問http://localhost:8080/annotationServlet進行測試。

接著在瀏覽器上訪問http://localhost:8080/annotationMyFilter查看控制臺打印效果。

單擊IDEA工具控制臺左側(cè)的[Exit]按鈕關(guān)閉當前項目,再次查看控制臺打印效果。

06?回顧總結(jié)

關(guān)于Spring Boot整合Servlet三大組件,袁老師就給大家分享完了。首先,袁老師給大家介紹了SpringBoot框架整合Servlet、Filter和Listener三大核心組件;然后介紹了通過SpringBoot路徑掃描整合Servlet三大組件的實現(xiàn)方式;最后我們通過功能測試驗證是否整合成功。

關(guān)于Spring Boot整合Servlet三大組件的內(nèi)容,袁老師就給大家介紹到這里了,你學(xué)會了嗎?關(guān)注「袁庭新」,干貨天天都不斷!


Spring Boot教程 | 袁庭新老師帶你極速掌握Spring Boot整合Servlet三大組件的評論 (共 條)

分享到微博請遵守國家法律
读书| 旌德县| 蓬溪县| 平舆县| 兴仁县| 宁国市| 龙口市| 满城县| 连城县| 房产| 建宁县| 佳木斯市| 温泉县| 乐业县| 运城市| 赣州市| 工布江达县| 福建省| 南华县| 伊宁县| 瑞金市| 河北区| 亳州市| 高州市| 赣州市| 元朗区| 攀枝花市| 汉寿县| 固阳县| 丽水市| 榆社县| 夏邑县| 白沙| 宁晋县| 漾濞| 肇州县| 平昌县| 湘潭县| 邢台县| 南城县| 唐山市|