SpringBoot-使用外部容器

版权声明:来一来,看一看,有钱的捧个人场,没钱的你不得捧个人场 https://blog.csdn.net/wait_for_eva/article/details/82940779

必要

之前说了几个servlet容器:

  • tomcat
  • jetty
  • undertow

但是,还仅仅是一个细节的差别,并未放到更大的层面。

或许,一个更早的疑问,更能说明问题:为什么我们配置tomcat那么复杂,SpringBoot中却这么简单?

1. 嵌入式

小巧,方便快捷,只是引入了容器的必要环境(jar);

webjar类似,打包环境,能够直接调用。****

但是,不可能打的全的,最大特征就是不支持jsp.

2. 非嵌入式

全生态,全功能,全体验。

只是有那么一点点大,有那么一点点重。

比如说,你需要一只猴子,它会给你个五指山?

太大了,太重了,附加的赠品实在用不上啊。

war项目创建

1. 打包方式

在这里插入图片描述

2. pom修改

  • 打包
	<!-- pom修改打包方式也可以-->
    <groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
  • 容器
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
            <!-- 记得是外部提供的容器  -->
			<scope>provided</scope>
		</dependency>

provided:声明使用外部容器

3. web.xml生成

在这里插入图片描述

在这里插入图片描述

  • applay/ok:不确定一下,就死活不创建
  • src\main\webapp:默认创建位置就在工程目录下,需要指定一下
    在这里插入图片描述

外部容器配置

1. 引入外部容器

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. 发布项目选定

在这里插入图片描述
在这里插入图片描述

用Spring-Boot自己暴露的会好一点

jsp前后缀配置

  • 起因

当前面的配置完成之后,就可以直接访问jsp了,但是在Spring-Boot项目中,或许你得这样写:

@Controller
public class MyController {
    @RequestMapping("/hello")
    public String hello(){
        return "/WEB_INF/hello.jsp";
    }
}

恩…,没毛病,jsp就是要放在这下面的。不过,的确是有点操蛋。

  • 办法
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp

这样配置,它就会自动帮我们拼接前后缀了

然后这样写就方便多了

@Controller
public class MyController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}
  • 参数传递
@Controller
public class MyController {
    @RequestMapping("/hello")
    public String hello(Model model){
        model.addAttribute("msg", "message");
        return "hello";
    }
}

jsp页面就可以通过el表达式进行取值了

<span>${msg}</span>

猜你喜欢

转载自blog.csdn.net/wait_for_eva/article/details/82940779