SSM路径跳转404小记

当我在跳转路径时,出现了问题。

跳转的链接并没有被controller层的@RequestMapping("/xxx")对应的方法处理,并且跳转后报404的界面的路径并没有包含根路径,http://localhost:8080/index像这样,本应出现的路径应该是这样http://localhost:8080/项目根路径/index。检查了web.xml,springmvc.xml配置文件均未有问题,由于是maven项目我又做了一系列依赖重新导入的操作,确认了jar包的导入。

原本我跳转的链接是这样写的<a href="/index">index</a>

但当我去掉了 /  时,却又能正常被controller处理,但由于是相对路径不太好,就改成了

<a href="${pageContext.request.contextPath}/index">index</a>

被折磨的好几个小时,解决了也我确定了以后的书写规范,如果有人能解答我的疑问十分感谢:为什么/index的方式对应的根路径不是项目路径。

就这样。

我来自问自答了,刚查阅了资料

首先要知道什么是前台路径,什么是后台路径。

所谓前台路径,就是能被浏览器解析标签下的路径。这种前台路径的绝对路径的根不是项目路径,而是服务器的root路径,简而言之就是这样http://localhost:8080/这样的,如果想访问到当前项目还需要配置上下文路径的前缀,也就是前面我提到的这种方式:

<a href="${pageContext.request.contextPath}/index">index</a>。

那后台路径也应该能想到,不能被浏览器解析的标签下的路径,也可以理解为能被服务器解析的标签下的路径。这种后台路径的绝对路径的根路径是当前项目路径,比如

<jsp:forward page="/index"></jsp:forward>

这样也是能正常访问的。

顺嘴提一句,上下文路径并不一定是项目路径,可以修改

 总结:

如果是前台路径:${pageContext.request.contextPath}/xxx

如果是后台路径:/xxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fake-WTX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值