关于request.getContextPath的路径问题

Posted dudu-dubby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于request.getContextPath的路径问题相关的知识,希望对你有一定的参考价值。

今天在写项目的时候,为了测试整体的流程,写了简单的界面,然后发现在首页的时候没有问题,但是在进行登录的时候,浏览器提示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%>,然后就完全的解决问题了









以上是关于关于request.getContextPath的路径问题的主要内容,如果未能解决你的问题,请参考以下文章

关于request.getContextPath的路径问题

关于JS引用路径的记录

getServletContext.getContextPath()和request.getContextPath()可能不同吗?

关于form的action路径填写

jsp中的request.getContextPath()

request.getcontextPath() 详解