十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动

嵌入式 & 外置 Servlet 容器的优缺点;

嵌入式 Servlet 容器:
优点:简单,便携;
缺点:默认不支持 JSP、优化定制复杂(使用定制器【ServerProperties,自定义定制器EmbeddedServletContainerCustomizer】,自己编写嵌入式容器创建工厂【EmbeddedServletContainerFactory】)

外置 Servlet 容器:在外面安装 Tomcat 程序 – 应用war

【1】创建项目并打War包

使用Spring Initializer方式创建项目, **Packaging 选择 War**

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第1张图片

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第2张图片

有三个地方需要注意:
  
  pom中打包方式已经为war;
  对比默认为jar的项目多了ServletInitializer类(必须要有此类并且调用configure方法);
  项目结构没有src/main/webapp,且没有WEB/INF web.xml。

ServletInitializer类:

public class ServletInitializer extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(SpringBoot04WebJspApplication.class);
	}

}

补全项目结构
十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第3张图片

生成 web.xml 文件
十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第4张图片

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第5张图片

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第6张图片

【2】IDEA 整合 外部配置的Tomcat启动项目
十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第7张图片

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第8张图片

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第9张图片

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第10张图片

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第11张图片

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第12张图片

启动服务
十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第13张图片

创建 JSP

Hello Spring Boot JSP

重新启动服务器:http://localhost:8080/hello.jsp
十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第14张图片

hello.jsp 发送请求来到 /WEB-INF/success.jsp

hello.jsp

<h1>Hello Spring Boot JSPh1>

<a href="hello">abca>

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>

十四、Spring Boot 使用外置的 Servlet 容器 -- 项目打War包和外部Tomcat配置与项目启动_第15张图片

你可能感兴趣的:(Spring,Boot)