关于request.getContextPath的路径问题

本文记录了解决一个Web项目中出现的404乱码问题的过程。问题出现在从首页跳转到登录页的过程中,通过调整路径映射并正确使用getContextPath()方法,最终成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在写项目的时候,为了测试整体的流程,写了简单的界面,然后发现在首页的时候没有问题,但是在进行登录的时候,浏览器提示404,看了一下请求路径

http://localhost:8080/$%7Bpath%7D/user/toLogin

很明显中间有乱码的错误,我查看了代码,发现我controller那里的路径映射有问题,所以把乱码那部分删除了,结果是可以看到登录页面的,所以问题应该出现在这个路径上面

这里是原请求路径

<h3>
<a href="${path}/user/toLogin">点击进入登陆页面</a>
</h3>
然后这里是path的值的获取
<%
pageContext.setAttribute("path", request.getContextPath());
%>
想到这里,觉得跟这个getContextPath()有关,于是就决定看一看返回的是什么

看到结果是${path},所以知道了错误

后来查询了资料,是getContexgtPath获取全文路径的错误

用这个语句可以jiejue

<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
获取了我们想要的结果又完整的路径和端口号还有项目的上下文环境,所以大功告成了。我把项目中的${pageContext.request.contextPath}都替换成了<%=basePath%>,然后就完全的解决问题了

转载于:https://www.cnblogs.com/dudu-dubby/p/10346621.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值