Spring boot 整合Jsp
阿新 • • 發佈:2018-12-14
前言
上一篇介紹了Spring Boot中使用如何使用durid,這篇文章將介紹如何整合jsp進行web開發
專案結構
首先在src/main 下新建目錄:webapp/WEB-INF/view 用於存放jsp檔案,專案的靜態資源統一放在resources的static下面,初始的專案結構如下
引入依賴
<!--WEB支援--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--jsp頁面使用jstl標籤--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--內建tocat對Jsp支援的依賴,用於編譯Jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
使用內嵌的tomcat容器來執行的話只要這3個就好了,如果需要使用外部容器允許,需要額外配置,稍後會講解
配置application.properties
#jsp 檔案存放的路徑
spring.mvc.view.prefix: /WEB-INF/view/
#檔案字尾
spring.mvc.view.suffix: .jsp
編寫相應檔案
編寫jsp檔案
在view目錄下建立index.jsp
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>測試頁面</title>
</head>
<body>
${msg}
</body>
</html>
編寫Controller
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation. GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@RestController
@RequestMapping("/index")
public class MyController {
@GetMapping
public ModelAndView index(Model model){
model.addAttribute("msg","這是測試頁面");
return new ModelAndView("index");
}
}
啟動專案,訪問:localhost:8080/index
內嵌tomcat屬性配置
#使用者繪畫session過期時間,以秒為單位
server.servlet.session.timeout=36000m
# 配置預設訪問路徑,預設為/
server.servlet.context-path=/
# 配置Tomcat編碼,預設為UTF-8
server.tomcat.uri-encoding=UTF-8
# 配置最大執行緒數
server.tomcat.max-threads=1000
配置外部tomcat容器部署war包
Spring Boot專案需要部署在外部容器中的時候,Spring Boot匯出的war包如果直接在Tomcat的部署會報錯,如需執行需進行如下修改
1、啟動類繼承SpringBootServletInitializer
外部容器部署的話,就不能依賴於Application的main函數了,而是要以類似於web.xml檔案配置的方式來啟動Spring應用上下文,此時我們需要在啟動類中繼承SpringBootServletInitializer並實現configure方法:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class SpringbootJspApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringbootJspApplication.class, args);
}
/**
* 部署到tomcat需要新增如下程式碼
* @param application
* @return
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringbootJspApplication.class);
}
}
2、修改pom.xml
新增依賴
<!--因配置外部TOMCAT 而配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
修改打包方式,把jar改成war
<!--版本-->
<version>1</version>
<!--打包方式-->
<packaging>war</packaging>
如果想修改打包的名稱,需在build節點中加入
<build>
<finalName>springBootJsp</finalName>
</bulid>
新增外部tomcat並執行
啟動專案,依舊能看到頁面
專案原始碼
開源後臺管理系統:
歡迎體驗Aurora