Idea2023版两种创建web项目对比,第二种手动加框架支持的因为输出的out目录下没有xml和jsp文件目录。一直状态 404 - 真崩溃了

注意本篇是记录关于web项目的两种创建方式,通过Maven创建和创建普通项目之后加web框架支持,第二种方式遇到的很多排错问题,但是最终还是没成功。

两天在学springMVC的时候,因为回顾Servlet。

所以我去创建web项目,然后启动Tomcat运行起来。

环境:IDea 2023

1、Maven  3.5.3

2、Tomcat 9

一、两种创建web项目方式;

首先对比一下两种方式的项目结构:

1、目录位置不一样

2、web.xml和pom.xml信息不一致:

3.pom

方式一:通过Maven创建

1、创建目录

2、成功创建之后目录如下:

其中没有Java目录

手动添加之后,下图就是Maven创建成功的web项目,其中webapp中间有个小蓝点说明被识别成了web项目:没有的话在pom文件中重新加载一下,不然检查自己的Maven仓库的设置是否是自己下载的路径,idea会默认是C盘下的路径;

3、分析下结构

module中有这个web识别记号,spring会有一个绿色的叶子

facets下有web.xml和web资源路径,手动加框架其实也是加这个,Maven只是自动帮我们补上了。

artifacts下:注意输出路径Maven自动放在target下,这里还有lib目录,输出时候会把这些lib包输出。

4、部署Tomcat,启动

点击deployment;

其实war 和exploded都可以,只是后者是热部署的概念,想了解区别的可以自己去学习一下。

点击apply就完成部署了。

5、运行Tomcat,默认打开index.jsp初始页面。

想改的话再web.xml中改。注意这里的路径因为我们没有改,

默认路径:该application context里就行;

所以我们可以看到通过Maven创建的web项目可以正常跑起来;

输出目录如下,而且在Tomcat的目录下也有这个

方式二:创建普通项目之后加web框架支持

接下来我们看第二种方式;

1、新建一个普通的Java项目,添加web支持

2、成功后,目录如下:

其中xml是新的4.0

3、分析结构:

项目结构中也全部被识别成web项目;

有下面不同,我们接着看

4、部署Tomcat,启动

5、遇到问题

404经典来了,估计是没有找到jsp文件目录;

查看输出目录没有xml也没有jsp文件

一开始我以为是没有添加lib,然后在加了lib目录,添加了lib依赖

重新编译:还是报错

但是发现lib被识别进来了

其实看了很多大佬的文章:

maven的web项目默认的web root是在src\main\webapp。

然后我又修改pom中,设置自己的web路径

    <packaging>war</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <!--指定web.xml文件的位置-->
                    <webXml>web\WEB-INF\web.xml</webXml>
                    <!--指定jsp等文件所在位置-->
                    <warSourceDirectory>web</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>

再编译:还是不行

二、终极测试排查

maven的web项目默认的web root是在src\main\webapp。

没办法了只好把web目录移动到src下,不过要修改modules里面那些路径

甚至把输出路径都全改了,加了一个war;

加了打包方式也只多一个war包

真的醉了,就在我放弃之后

第二次我重启打开idea,居然又成功了,服啦。

总结:自己的看法,欢迎各位大佬指正,maven的web项目默认的web root是在src\main\webapp。不然识别不到其他文件,输出路径改不改应该没关系,文件目录结构应该要如下结构才能输出xml和其他文件,所以我觉得用Maven构建非常方便又不容易出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值