ssm项目html发请求报404,Idea部署ssm web项目时出现404问题

今天在本地部署web项目时出现404的错误,使用Idea开发,找到了解决办法。

Tomcat部署配置如下:

ssm项目html发请求报404,Idea部署ssm web项目时出现404问题_第1张图片

其中deployment选择war_exploded

ssm项目html发请求报404,Idea部署ssm web项目时出现404问题_第2张图片

运行之后报错404,发现访问的链接是

http://localhost:8080/dbsys/forward/displayLogin

但是部署配置时的地址是:

http://localhost:8080/dbsys_war_exploded/

地址不一致所以导致404

d6f53b821f874138567494c61bde9ab9.png

解决办法:

把地址改成如下访问

http://localhost:8080/dbsys_war_exploded/forward/displayLogin

2.在deployment处修改ApplicationContext的名称为dbsys,就可以正常运行了:

ssm项目html发请求报404,Idea部署ssm web项目时出现404问题_第3张图片

但是根本原因最终发现是由于web.xml默认启动的中的index.jsp的内容如下:

04c2f5416e14bb26196d355479a68270.png

所以无论启动的时候默认tomcat启动的地址是什么都会跳转到这个地址请求,就导致不一致,出现404问题。

在tomcat配置过程中发现,artifact有两种分别是war以及war exploded,通过网上资料查询发现二者主要区别在于:

war:项目会打包war包再发布,war包默认会在target目录下,而且部署的服务器的webapps文件夹下,会存在配置的Application context目录,其中包含项目的webapp下的内容以及一个META-INF。如图所示:

ssm项目html发请求报404,Idea部署ssm web项目时出现404问题_第4张图片

ssm项目html发请求报404,Idea部署ssm web项目时出现404问题_第5张图片

ssm项目html发请求报404,Idea部署ssm web项目时出现404问题_第6张图片

war exploded:则不会把项目发布到配置的服务器中,也不会打一个war包,而是会把webapp下的相关文件放在项目build后的target目录下,同时包含一个META-INF,该方式可以进行热部署。

ssm项目html发请求报404,Idea部署ssm web项目时出现404问题_第7张图片

你可能感兴趣的:(ssm项目html发请求报404,Idea部署ssm web项目时出现404问题)