踩坑最多的springboot详细整合jsp,springboot+jsp运行启动404、打jar包后访问404

22 篇文章 0 订阅
6 篇文章 0 订阅

在这里插入图片描述

这是一个充满悲伤的整合之旅,耗费时间…近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}{咱们来日方长,有缘江湖再见,告辞!} 咱们来日方长,有缘江湖再见,告辞!
在这里插入图片描述

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值