先说说怎么切换默认的容器:
springboot默认的容器有tomcat(默认使用)、jetty(用于长连接例如聊天)、Undertow(处理并发较强不过不支持jsp)如果要在其中切换,只要两步即可:1.在pom文件中干掉原来的,2.写上自己的 例如要换掉tomcat:
首先要用<exclusions>标签包裹住原有的tomcat
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
然后写入jetty的即可:
<dependency>
<artifactId>spring-boot-starter-jetty</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
就是这样简单。
springboot默认支持的是jar包正因如此不支持jsp文件而我们开发中又会大量使用jsp文件,这怎么办呢?
1.首先要想支持jsp就要改成war包,可用项目初始化器建立项目时候选择war包,也可在pom文件里改:
<groupId>com.guigu</groupId>
<artifactId>spring-boot-jsp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
packaging为war包即可。
2.改写文件目录并创立xml文件:
顺着箭头的方式点击会出现一个弹窗:
点击ok即可,然后再点击+号就可以加web.xml文件:
之后会弹出一个框让你写web.xml存放路径,一般写为:\src\main\webapp\WEB-INF\web.xml
点击ok之后点击apply再点击ok即可。
3.配置外部tomcat与idea配置tomcat一样不做过多赘述,注意配置完之后看pom文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
scop为provided即可。
接下来启动,项目访问会报错404因为,你没有jsp页面所以要写一个:
我这里在web-inf下面又写了个sucess页面用于跳转测试。如果要访问suceess页面需要在配置文件里加去除前后缀的设置:
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp
然后就是controller:
@Controller
public class Hello {
@GetMapping("abc")
public String say(Model model){
model.addAttribute("msg","abc");
return "sucess";
}
}
hello.jsp页面里写一个跳转链接:
<a href="abc">abc</a>
点击即可跳转。