前言
在我们开发中大多数还是已前后端分离为主了,但是有一些公司或者毕业生课设还是以SpringBoot一起部署前后端,比如jsp、html页面直接放到Springboot项目中一起部署。所以今天就将我以前碰到过的一些问题记录下,分享给大家有类似的可以参考。
问题
访问jsp页面直接下载
- 解决方案
需要我们在pom中配置jsp解析jar 以及配置合理的jar 作用域。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jsp-api</artifactId>
</dependency>
访问jsp页面404
- 第一种情况那就是你的地址确实有写错,这个需要认真看下请求路径
- 第二种情况路径对的,但是任然提示404(主要发生在main 启动方式),这个很有可能你么有将webapp 下的jsp 加载到部署的包中,这个时候需要配置pom 如下:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>false</filtering>
</resource>
<-- 下面配置加载webapp 下文件 打包到META-INF/resources jsp 寻找页面的时候可以通过META-INF/resources 找到-->
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<finalName>项目名称</finalName>
</build>
总结
后续有看源码我会及时更新一下具体的原理。大家还有疑问的可以随时私信留言,及时帮助大家一起解决问题。可能有些版本不一致的,需要具体分析。