1. 程式人生 > 實用技巧 >5、SpringBoot整合JSP

5、SpringBoot整合JSP

步驟

  1. 建立專案
  2. 修改POM檔案,新增JSP引擎與JSTL標籤庫
  3. 建立webapp目錄
  4. 標記為web目錄
  5. 建立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 訪問即可