Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动
嵌入式 & 外置 Servlet 容器的优缺点;
嵌入式 Servlet 容器:
优点:简单,便携;
缺点:默认不支持 JSP、优化定制复杂(使用定制器【ServerProperties,自定义定制器EmbeddedServletContainerCustomizer】,自己编写嵌入式容器创建工厂【EmbeddedServletContainerFactory】)
外置 Servlet 容器:在外面安装 Tomcat 程序 – 应用war
【1】创建项目并打War包
使用Spring Initializer方式创建项目, **Packaging 选择 War**有三个地方需要注意:
pom中打包方式已经为war;
对比默认为jar的项目多了ServletInitializer类;
项目结构没有src/main/webapp,且没有WEB/INF web.xml。
补全项目结构
生成 web.xml 文件
【2】IDEA 整合 外部配置的Tomcat启动项目
启动服务
创建 JSP
<h1>Hello Spring Boot JSP</h1>
重新启动服务器:http://localhost:8080/hello.jsp
hello.jsp 发送请求来到 /WEB-INF/success.jsp
hello.jsp
<h1>Hello Spring Boot JSP</h1>
<a href="hello">abc</a>
HelloController
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model){
model.addAttribute("msg","你好 Spring Boot");
return "success";
}
}
success.jsp
<h1>SUCCESS</h1>
<h1>${msg}</h1>