SpringBoot項(xiàng)目中使用Jsp的正確方法
前言
在上springboot課做實(shí)驗(yàn)時,要求用springboot結(jié)合jsp做一個SpringBoot入門程序
問題重現(xiàn)
一開始想到在yml文件中配置好,jsp的前綴和后綴,應(yīng)該就可以了吧 結(jié)果被打臉了 ??555~
瀏覽器輸入訪問地址:http://localhost:8080/login 時,控制臺警告:
2022-09-02 14:31:39.808 WARN 22700 --- [nio-8080-exec-1] o.s.w.s.r.ResourceHttpRequestHandler : "Path represents URL or has "url:" prefix: [classpath:/templates/login.jsp]"
我的錯誤配置:

解決方案
SpringBoot前端使用 JSP
在Springboot項(xiàng)目內(nèi)部是不推薦用jsp的,而是推薦使用模板引擎thymeleaf,但是這仍然是我們需要掌握的一項(xiàng)技術(shù)。
1.集成思路
1、創(chuàng)建一個webapp(main目錄下)來存放jsp頁面。
2、添加Springboot工程內(nèi)嵌Tomcat對jsp解析的一個依賴(Springboot內(nèi)嵌的Tomcat是沒有關(guān)于jsp的依賴的)。
3、Springboot工程指定了jsp文件編譯的路徑META-INF/resources。 (結(jié)果看步驟7)
2.創(chuàng)建webapp文件夾
springboot工程默認(rèn)是沒webapp目錄的,它推薦使用的是resource目錄下的templates的資源
(這里需要使用模板引擎才能使用)
在 src/main 下創(chuàng)建一個 webapp 目錄,然后在該目錄下新建index.jsp 頁面
然后進(jìn)行下面的步驟:

設(shè)置完成后,webapp文件夾就會多出一個像圖中顯示出來的藍(lán)點(diǎn):

注意:如果在webapp目錄下右鍵,沒有創(chuàng)建jsp的選項(xiàng),可以在Project Structure中指定webapp為 Web Resource Directory
3、在 pom.xml 文件中配置以下依賴項(xiàng)
<!--引入Spring Boot內(nèi)嵌的Tomcat對JSP的解析包,不加解析不了jsp頁面-->
<!--如果只是使用JSP頁面,可以只添加該依賴-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--如果使用JSTL必須添加該依賴-->
<!--jstl標(biāo)簽依賴的jar包start-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency> 如果要用原生的servlet寫的話,需要加上以下依賴項(xiàng):
<!--如果要使用servlet必須添加該以下兩個依賴-->
<!-- servlet依賴的jar包-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency> 4、在 pom.xml 的 build 標(biāo)簽中要配置以下信息
SpringBoot 要求 jsp 文件必須編譯到指定的 META-INF/resources 目錄下才能訪問,否則訪問不到
其實(shí)官方已經(jīng)更建議使用模板技術(shù)
<resources>
<resource>
<!--源文件位置-->
<directory>src/main/webapp</directory>
<!--指定編譯到META-INF/resources,該目錄不能隨便寫-->
<targetPath>META-INF/resources</targetPath>
<!--指定要把哪些文件編譯進(jìn)去,**表示webapp目錄及子目錄,*.*表示所有文件-->
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources> 5、配置SpringMVC視圖解析器
我這里使用的是yml 格式的配置文件
#指定內(nèi)嵌Tomcat端口號
server:
port: 8090
servlet:
context-path: /
#配置SpringMVC視圖解析器
#其中:/ 表示目錄為src/main/webapp
spring:
mvc:
view:
prefix: /
suffix: .jsp 6、配置完以上步驟后,重啟服務(wù)器進(jìn)行訪問
瀏覽器輸入訪問地址:http://localhost:8080/login

7、運(yùn)行完后,可以在target目錄下看到編譯后文件
此時對應(yīng)的jsp文件會編譯到指定的目錄

寫在最后
- 在Springboot項(xiàng)目內(nèi)部是不推薦用jsp的,而是推薦使用模板引擎thymeleaf,或者其他的模板引擎。
- jsp一般用于ssm框架的開發(fā)屬于前后端不分離的項(xiàng)目
- 現(xiàn)在一般使用springboot + vue 做前后端分離的項(xiàng)目, springboot主要負(fù)責(zé)編寫接口和業(yè)務(wù)處理即可!
到此這篇關(guān)于SpringBoot項(xiàng)目中使用Jsp的正確方法的文章就介紹到這了,更多相關(guān)SpringBoot使用Jsp內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 學(xué)習(xí)筆記(入門篇)_java程序helloWorld
安裝配置完Java的jdk,下面就開始寫第一個java程序--hello World.用來在控制臺輸出“Hello World”,接下來詳細(xì)介紹,感興趣的朋友可以參考下2013-01-01
Java進(jìn)階之高并發(fā)核心Selector詳解
前幾篇文章介紹了Java高并發(fā)的一些基礎(chǔ)內(nèi)容,認(rèn)識了Channel,Buffer和Selector的基本用法,有了感性認(rèn)識之后,來看看Selector的底層是如何實(shí)現(xiàn)的。,需要的朋友可以參考下2021-05-05
Java面試題沖刺第二十六天--實(shí)戰(zhàn)編程
這篇文章主要為大家分享了最有價值的三道java實(shí)戰(zhàn)面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下2021-08-08
IDEA中創(chuàng)建maven項(xiàng)目webapp目錄無法識別即未被標(biāo)識的解決辦法
在學(xué)習(xí)SpringMVC課程中,基于IDEA新建maven項(xiàng)目模塊后,webapp目錄未被標(biāo)識,即沒有小藍(lán)點(diǎn)的圖標(biāo)顯示,所以本文給大家介紹了IDEA中創(chuàng)建maven項(xiàng)目webapp目錄無法識別即未被標(biāo)識的解決辦法,需要的朋友可以參考下2024-03-03
十大常見Java String問題_動力節(jié)點(diǎn)Java學(xué)院整理
本文介紹Java中關(guān)于String最常見的10個問題,需要的朋友參考下吧2017-04-04
java中List對象列表實(shí)現(xiàn)去重或取出及排序的方法
這篇文章主要介紹了關(guān)于java中List對象列表實(shí)現(xiàn)去重或取出以及排序的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
Java中RabbitMQ延遲隊(duì)列實(shí)現(xiàn)詳解
這篇文章主要介紹了Java中RabbitMQ延遲隊(duì)列實(shí)現(xiàn)詳解,消息過期后,根據(jù)routing-key的不同,又會被死信交換機(jī)路由到不同的死信隊(duì)列中,消費(fèi)者只需要監(jiān)聽對應(yīng)的死信隊(duì)列進(jìn)行消費(fèi)即可,需要的朋友可以參考下2023-09-09

