項目名稱:036-springboot-war
1.創建一個新的Module
2.在pom.xml文件中配置內嵌Tomcat對jsp的解析包
<!--SpringBoot項目內嵌tomcat對jsp的解析包-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
3.在pom.xml文件中配置jsp文件解析目錄
<!--
SpringBoot要求jsp文件必須編譯到指定的META-INF/resources目錄下,否則不能訪問
-->
<resources>
<resource>
<!--源文件位置-->
<directory>src/main/webapp</directory>
<!--指定編譯到META-INF/resources目錄下,該目錄不能隨便編寫-->
<targetPath>META-INF/resources</targetPath>
<!--指定包含文件-->
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
4.創建webapp并指定為web資源文件夾
5.在application.properties配置文件中配置內嵌Tomcat端口號及上下文根和jsp的前后綴
#設置內嵌Tomcat端口號
server.port=9090
#設置應用的上下文根
server.servlet.context-path=/036-springboot-war
#設置jsp的前/后綴
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
6.創建IndexController提供方法分別返回字符串及跳轉頁面
package com.abc.springboot.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
/**
* ClassName:IndexController
* Package:com.abc.springboot.web
* Description:
*/
@Controller
public class IndexController {
@GetMapping(value = "/springboot/index")
public String index(HttpServletRequest request, Model model) {
model.addAttribute("data","Hello SpringBoot JSP");
return "index";
}
@GetMapping(value = "/springboot/data")
public @ResponseBody Object data() {
return "SpringBoot Data ";
}
}
7.在src/main/webapp目錄下創建index.jsp
8.瀏覽器輸入地址訪問測試
1.程序入口類需擴展繼承 SpringBootServletInitializer類并覆蓋configure方法
@SpringBootApplication
public class Application extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
//參數為當前Spring Boot啟動類Application.class
return builder.sources(Application.class);
}
}
2.在 pom.xml中添加(修改)打包方式為war
<packaging>war</packaging>
3.在 pom.xml中配置springboot打包的插件(默認自動加)
<!--SpringBoot 的打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
4.在pom.xml中配置將配置文件編譯到類路徑
<!--mybatis的mapper.xml-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<!--src/main/resources下的所有配置文件編譯到classes下面去-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<!--源文件位置-->
<directory>src/main/webapp</directory>
<!--編譯到META-INF/resources,該目錄不能隨便寫-->
<targetPath>META-INF/resources</targetPath>
<includes>
<!--要把哪些文件編譯過去,**表示webapp目錄及子目錄,*.*表示所有-->
<include>**/*.*</include>
</includes>
</resource>
5.在pom.xml的build標簽下通過finalName指定打war包的名字
<!--指定打war包的名字-->
<finalName>036-springboot-war</finalName>
6.通過Maven package命令打war包到target目錄下
1.將target目錄下生成的war包拷貝到tomcat的webapps目錄,并啟動tomcat
2.通過瀏覽器訪問