关于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%>,然后就完全的解决问题了

posted @ 2019-02-01 18:17  duduInTheHeart  阅读(816)  评论(0编辑  收藏  举报