5、SpringBoot整合JSP
步驟
- 建立專案
- 修改POM檔案,新增JSP引擎與JSTL標籤庫
- 建立webapp目錄
- 標記為web目錄
- 建立jsp
注意:在springboot專案中是不推薦使用jsp作為檢視層技術的
JSP是在tomcat裡面編譯、執行的;
以往的web專案是將專案部署的tomcat容器當中,tomcat負責將JSP編譯成servlet並將其執行,而負責處理這個過程的句式jsp引擎;
雖然SpringBoot中內嵌了一個tomcat容器,但是卻沒jsp引擎,所以SpringBoot內嵌的tomcat是不能處理jsp的;
所以如果想在SpringBoot專案中使用jsp就必須要新增jsp引擎的相關依賴;
所以如果想在SpringBoot專案中使用jsp就必須要新增jsp引擎的相關依賴,如下:
<!--新增jsp引擎,SpringBoot內建的tomcat中沒有此依賴--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!--新增jstl座標依賴--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency>
JSP檔案存放位置
新增好相關依賴後應該考慮jsp應該存放在什麼樣的目錄下:jsp頁面應該存放於“webapp”的目錄下WEB-INF;
webapp目錄應該存放於main目錄下,並與java,resources目錄同一級別的位置
標記webapp,使該目錄支援web技術
選中webapp後點擊圖片中紅色框的部分
選擇Modules
選擇對應的專案名,然後選擇web,然後點選Web Resource Directories下的“+” 號,指定webapp為路徑
指定webapp為支援web技術的目錄之後,該目錄的圖示會增加一個點
這個時候右鍵就有建立jsp頁面的快捷方式了
建立一個jsp頁面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>hello!</h1>
</body>
</html>
WEB-INF目錄是受保護的不能直接訪問,可以通過controller進行訪問;
通過檢視解析器跳轉到jsp頁面;
web啟動器包含了Spring Mvc的元件(檢視解析器)
所以直接配置檢視解析器的配置即可
字首不用指定webapp
spring.mvc.view.prefix=/WEB_INF/
spring.mvc.view.suffix=.jsp
編寫controller
/**
* 頁面跳轉的controller
*/
@Controller
public class PageController {
/**
* 頁面跳轉
*/
@GetMapping("/{page}")
public String showPage(@PathVariable String page){
return page;
}
}
通過url:localhost:8080/index 訪問
如果該專案是一個聚合專案則通過 localhost:8080/index訪問會發生404
則需要多一些配置:點選Edit Configurations
選擇對應的專案選擇%Module_WORKING_DIR%
通過url:localhost:8080/index 訪問即可