新四季網

spring boot和jsp的區別(SpringBoot整合JSP作為視圖輸出)

2023-10-08 21:20:17 2

springboot內部對jsp的支持並不是特別理想,而springboot推薦的視圖是Thymeleaf,對於java開發人員來說還是大多數人員喜歡使用JSP,接下來我們來講解下springboot是如何支持jsp的。

本章目標

整合springboot web項目支持jsp作為視圖輸出。

開始構建項目

我們使用IntelliJ IDEA 工具來構建項目,首先我們需要創建一個springboot項目,如下圖1所示.

圖1

點擊Next後輸入一些項目的基本參數(包名,工程名,打包形式,maven形式構建等),如下圖2所示:

圖2

點擊Next後選擇我們預先加入到工程的springboot內置的jar包組件,我們這裡選擇一個web組件。如下圖3所示:

圖3

點擊Next輸入項目名稱後店家Finish既可以完成了項目的構建。新構建的項目目錄結構如下圖4所示:

圖3

可以看到上圖中比我們lessonOne項目中多出來了一個類文件,servletInitlalizer,打開該類我們不難發現它繼承了SpringBootServletInitializer這個父類,而SpringBootServletInitializer這個類是springboot提供的web程序初始化的入口,當我們使用外部容器(後期文章講解使用外部tomcat如何運行項目)運行項目時會自動加載並且裝配。

實現了SpringBootServletInitializer的子類需要重寫一個configure方法,方法內自動根據LessontwoApplication.class的類型創建一個SpringApplicationBuilder交付給springboot框架來完成初始化運行配置。

配置springboot支持jsp

我們打開pom.xml(maven配置文件)可以看到我們之前構建項目時已經添加了web模塊,而springboot給我們自動添加了spring-boot-starter-tomcat配置引入。springboot內部集成了tomcat組件,這裡我們就不需要重複引入tomcat組件。

JSP maven

我們先來添加jsp的maven支持,如下圖4所示:

圖4

Servlet maven

我們還需要引入jsp對servlet容器的支持,如下圖5所示:

圖5

jstl maven

除了上面的jsp,servlet支持以外,如果你還需要在jsp頁面使用jstl標籤來處理界面邏輯,那麼需要引入jstl maven,如下圖6所示:

圖6

初嘗試運行項目

上面配置就是我們本章需要的全部配置,那麼我們先來嘗試運行下項目是否已經可以正常運行。這裡項目運行也可以使用IntelliJ IDEA工具提供的組件來完成,如下圖7所示,:

(注意:如果你已經開啟了另外一個spring boot項目請先關閉,因為springboot內置的埠號都是8080這樣會引起衝突)

圖7

點擊綠色三角號即可開始運行項目,我們先來嘗試下點擊後看看控制臺輸入的日誌信息。可以看到項目已經正常運行了,右上角的綠色三角號也變成了重啟的按鈕,如下圖8所示:

圖8

項目運行如圖9所示:

圖9

可以看到項目已經正常運行,但是我們現在還沒有配置,創建JSP文件,我們接下來開始配置,創建JSP。

配置視圖

基本配置

如果是使用過eclipse工具的人肯定知道jsp文件之前是在/webapp/WEB-INF/jsp目錄下,那麼我們也沿用eclipse的風格。

1. 在main目錄下創建webapp文件夾

2. 在webapp下創建jsp文件夾如下圖10所示:

3. 修改application.properties文件讓springmvc支持視圖的跳轉目錄指向為/main/webapp/jsp,配置如下圖11所示:

圖11

圖11

創建index.jsp

我們在webapps/jsp目錄下創建一個index.jsp用於測試我們的配置是否已經支持了jsp,新建jsp文件如下圖12所示:

圖12

創建IndexController

上面工作我們已經完成了jsp的所有配置,那麼接下來我們需要配置springmvc的控制器,我們新建indexController如下圖13所示:

圖13

可以看到上圖我們在IndexController配置文件內添加了index方法配置了@RequestMapping註解來描述index方法是一個可以被springmvc管理的請求視圖。我們的index方法返回值這裡是"index"。

為什麼我們返回"index",還記得上述步驟中配置的application.properties文件的springmvc請求前綴以及後綴,那麼當我們訪問/index時springmvc就會去找/webapp/WEB-INF/jsp/index.jsp文件。

重啟項目

重啟項目我們嘗試訪問127.0.0.1:8080/index,可以看到如下圖14的效果,證明已經完成了springboot與jsp的整合:

圖14

總結

上述便是我們本章的全部內容,本章主要是講解了springboot集成jsp作為渲染視圖,結合springmvc來轉發請求。

本號已開設如下專題,歡迎長按以下二維碼,查看相關專題!

【mysql優化專題】【HTTP協議】

【架構技術專題】【多線程/池專題】

【dubbo專題】【dubbo源碼專題】

【JVM調優專題】【HTTP協議專題】

【設計模式專題】【高並發專題】

【架構技術專題】【netty專題】

【數據結構專題】【redis專題】

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了