目录
这是一个充满悲伤的整合之旅,耗费时间…近7h,可能是我太菜,不过达到了需求,也不枉费,特此记录,以免后续忘记,一条充满404的泥巴坑路被我走出来了!!!我是大哥!!谁与争”疯“!!
项目背景
来了个需求,说要在原有的springboot项目基础上,引入jsp,来作为另一个问题的解决方案。原springboot版本为2.3.1.RELEASE。
1、搭建基础web架构和创建jsp
在main下面创建webapp,为什么你的webapp包中间没有蓝点,来看下面,点击它,会出现一个弹框,在里面设置
点击+号,选中Modoules,就会有一个web
然后在选中新出来的web(有老的可以忽略上一步新建web)按照步骤选中你刚刚创建的webapp,这样子就有蓝点了
到这里为止,一个基础的架子就出来了,接下来新建controller,做一个跳转login的jsp流程
2、controller跳转jsp
写好我们的代码,到这一步基本上我们的代码阶段结束,接下来搞配置文件!!!!也就是坑最多的地方!!!
java:
记住记住是@Controller 不是@RestController 如果你真想要返回的是string类型的字符串,不拦着你
jsp:
3、配置文件相关总集
3.1 yml配置
这里的配置路径 给爷记住 和你webapp下面的放jsp路径保持一致!!!!!!
还有springboot高低版本问题导致yml配置文件不一致,低版本的话是可直接spring.view,高版本可spring.mvc.view,这个点需要注意下,我的是高版本的~
3.2 pom配置
记得spring-boot-starter-web一定一定要去掉内嵌tomcat,不然打成jar包后访问跳转jsp404!!
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--jsp整合start-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<!--jsp整合end-->
在build里面也需要配置,特别注意maven插件不能太高版本,使用1.4.2.RELEASE,可避免打jar包后访问jsp404问题。
build里面还需要配置resources,不然打jar包之后在target里面是不会生成你的jsp相关文件,不配置你不404,小爷就倒立洗头!!
<resources>
<!-- 打包时将jsp文件拷贝到META-INF目录下-->
<resource>
<!-- 指定resources插件处理哪个目录下的资源文件 -->
<directory>src/main/webapp</directory>
<!--注意此次必须要放在此目录下才能被访问到-->
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
打包后可自行检查是否生成
到这里基本没啥大毛病,但是如果是第一次springboot整合jsp,如果直接IDEA运行去访问还是可能会有404问题出现,这个时候再对IDEA进行配置
3.3 IDEA启动项目配置
点击运行旁边的Edit Config…
找到Working directory,选中$MODULE_WORKING_DIR$
如果没有出现下拉框选择,自己输入,然后再点击应用,OK
保存好之后,在maven里面clean一下,再返回看就有下拉选项了,遇见没有下拉不要慌,就硬填进去,多重启IDEA刷新刷新缓存~ 然后就好了鸭~
4、结果展示
4.1 IDEA启动项目运行访问jsp
4.2 启动jar,访问jsp
记住一定要clean之后打包好再启动,不要残留上一次的测试jar包,不然鬼知道上次留有啥奇葩问题会回显404,至少我是忘记了,然后又重温了一次404…
5、结束语
如果遇到404,请重新检查自己的配置,一般问题都是配置上出错,请细心细心再细心,over~ thanks~
就先说到这
\color{#008B8B}{ 就先说到这}
就先说到这
在下
A
p
o
l
l
o
\color{#008B8B}{在下Apollo}
在下Apollo
一个爱分享
J
a
v
a
、生活的小人物,
\color{#008B8B}{一个爱分享Java、生活的小人物,}
一个爱分享Java、生活的小人物,
咱们来日方长,有缘江湖再见,告辞!
\color{#008B8B}{咱们来日方长,有缘江湖再见,告辞!}
咱们来日方长,有缘江湖再见,告辞!