Spring boot添加webapp
- 新建一个springboot的web项目如下
- 进入项目结构下
- 添加一个web
- 默认位置修改放在src/main下面
- 重新修改添加web的webapp的位置
- 登陆测试下页面可以正常访问不
错误信息如下
Path with "WEB-INF" or "META-INF": [WEB-INF/jsp/login.jsp]
原因参考这个博客
网上查原因spring boot不提倡用jsp,没有内置jsp引擎需要在pom.xml中加入以下依赖就可以了。
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--一般有jstl表达式的jsp都需要,否则jstl表达式会错误,页面无法访问-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
- 再次测试下
测试依然是404,找不到页面,且没有错误信息。
- Springboot项目配置项目所在位置
- Spring boot内置tomcat启动成功访问
- 用外部的tomcat试下
- 不出意外是无法访问的,修改下
把jsp引擎改为provided
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
测试效果果然讨厌不行
- 再次修改下
一般打war包都需要修改核心启动类如下
@SpringBootApplication
public class SpringBootAddWebappApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringBootAddWebappApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(SpringBootAddWebappApplication.class, args);
}
}
再次测试下成功访问