SpringBoot項目中使用Jsp的正確方法
前言
在上springboot課做實驗時,要求用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項目內(nèi)部是不推薦用jsp的,而是推薦使用模板引擎thymeleaf,但是這仍然是我們需要掌握的一項技術(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)點:
注意:如果在webapp目錄下右鍵,沒有創(chuàng)建jsp的選項,可以在Project Structure中指定webapp為 Web Resource Directory
3、在 pom.xml 文件中配置以下依賴項
<!--引入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寫的話,需要加上以下依賴項:
<!--如果要使用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 目錄下才能訪問,否則訪問不到
其實官方已經(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、運行完后,可以在target目錄下看到編譯后文件
此時對應(yīng)的jsp文件會編譯到指定的目錄
寫在最后
- 在Springboot項目內(nèi)部是不推薦用jsp的,而是推薦使用模板引擎thymeleaf,或者其他的模板引擎。
- jsp一般用于ssm框架的開發(fā)屬于前后端不分離的項目
- 現(xiàn)在一般使用springboot + vue 做前后端分離的項目, springboot主要負(fù)責(zé)編寫接口和業(yè)務(wù)處理即可!
到此這篇關(guān)于SpringBoot項目中使用Jsp的正確方法的文章就介紹到這了,更多相關(guān)SpringBoot使用Jsp內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA面試題 簡談你對synchronized關(guān)鍵字的理解
這篇文章主要介紹了JAVA面試題 請談?wù)勀銓ychronized關(guān)鍵字的理解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07基于SpringBoot解決CORS跨域的問題(@CrossOrigin)
這篇文章主要介紹了基于SpringBoot解決CORS跨域的問題(@CrossOrigin),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01Java的Hibernate框架結(jié)合MySQL的入門學(xué)習(xí)教程
Java世界中的SSH三大框架是Web開發(fā)方面的人氣組合,Hibernate便是其中之一,這里我們來整理一下Java的Hibernate框架結(jié)合MySQL的入門學(xué)習(xí)教程,需要的朋友可以參考下2016-07-07Nginx+SpringCloud Gateway搭建項目訪問環(huán)境
本文主要介紹了Nginx+SpringCloud Gateway搭建項目訪問環(huán)境,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08springboot創(chuàng)建多module項目的實例
這篇文章主要介紹了springboot創(chuàng)建多module項目的實例代碼,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02