SpringBoot項(xiàng)目中使用Jsp的正確方法
前言
在上springboot課做實(shí)驗(yàn)時(shí),要求用springboot結(jié)合jsp做一個(gè)SpringBoot入門程序
問題重現(xiàn)
一開始想到在yml文件中配置好,jsp的前綴和后綴,應(yīng)該就可以了吧 結(jié)果被打臉了 ??555~
瀏覽器輸入訪問地址:http://localhost:8080/login 時(shí),控制臺(tái)警告:
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]"
我的錯(cuò)誤配置:

解決方案
SpringBoot前端使用 JSP
在Springboot項(xiàng)目?jī)?nèi)部是不推薦用jsp的,而是推薦使用模板引擎thymeleaf,但是這仍然是我們需要掌握的一項(xiàng)技術(shù)。
1.集成思路
1、創(chuàng)建一個(gè)webapp(main目錄下)來存放jsp頁(yè)面。
2、添加Springboot工程內(nèi)嵌Tomcat對(duì)jsp解析的一個(gè)依賴(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)建一個(gè) webapp 目錄,然后在該目錄下新建index.jsp 頁(yè)面
然后進(jìn)行下面的步驟:

設(shè)置完成后,webapp文件夾就會(huì)多出一個(gè)像圖中顯示出來的藍(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對(duì)JSP的解析包,不加解析不了jsp頁(yè)面-->
<!--如果只是使用JSP頁(yè)面,可以只添加該依賴-->
<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必須添加該以下兩個(gè)依賴-->
<!-- 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端口號(hào)
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目錄下看到編譯后文件
此時(shí)對(duì)應(yīng)的jsp文件會(huì)編譯到指定的目錄

寫在最后
- 在Springboot項(xiàng)目?jī)?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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA面試題 簡(jiǎn)談你對(duì)synchronized關(guān)鍵字的理解
這篇文章主要介紹了JAVA面試題 請(qǐng)談?wù)勀銓?duì)Sychronized關(guān)鍵字的理解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
基于SpringBoot解決CORS跨域的問題(@CrossOrigin)
這篇文章主要介紹了基于SpringBoot解決CORS跨域的問題(@CrossOrigin),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Java正則驗(yàn)證字串符RegexValidator類使用
正則驗(yàn)證字串符是一種強(qiáng)大的工具,可以幫助程序員在處理字符串時(shí)輕松進(jìn)行復(fù)雜匹配,本文將介紹正則表達(dá)式的概念、語法和在編程中的應(yīng)用,并通過實(shí)例演示如何使用正則表達(dá)式進(jìn)行字符串匹配、替換和提取等操作2023-11-11
Java的Hibernate框架結(jié)合MySQL的入門學(xué)習(xí)教程
Java世界中的SSH三大框架是Web開發(fā)方面的人氣組合,Hibernate便是其中之一,這里我們來整理一下Java的Hibernate框架結(jié)合MySQL的入門學(xué)習(xí)教程,需要的朋友可以參考下2016-07-07
Nginx+SpringCloud Gateway搭建項(xiàng)目訪問環(huán)境
本文主要介紹了Nginx+SpringCloud Gateway搭建項(xiàng)目訪問環(huán)境,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
springboot創(chuàng)建多module項(xiàng)目的實(shí)例
這篇文章主要介紹了springboot創(chuàng)建多module項(xiàng)目的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Spring 注解編程模型相關(guān)知識(shí)詳解
這篇文章主要介紹了Spring 注解編程模型相關(guān)知識(shí)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
利用Java實(shí)現(xiàn)簡(jiǎn)單的詞法分析器實(shí)例代碼
眾所周知編譯原理中的詞法分析算是很重要的一個(gè)部分,原理比較簡(jiǎn)單,不過網(wǎng)上大部分都是用C語言或者C++來編寫,因?yàn)樽罱趯W(xué)習(xí)Java,故用Java語言實(shí)現(xiàn)了簡(jiǎn)單的詞法分析器。感興趣的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12

