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

原文地址:https://www.cnblogs.com/dudu-dubby/p/10346621.html

时间: 2024-12-10 09:55:39

关于request.getContextPath的路径问题的相关文章

request.getContextPath是为了解决相对路径的问题,可返回站点的根路径

假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1. System.out.println(request.getContextPath()); 打印结果:/news   2.System.out.println(request.getServletPath()); 打印结果:/main/list.jsp3. System.out.print

JSP之项目路径问题(${pageContext.request.contextPath},&lt;%=request.getContextPath()%&gt;以及绝对路径获取)

本随笔这是作为一个记录使用,以备后查.项目完成之后本地部署OK,本地Linux部署OK,都可以正常的访问,可是当我把它部署到服务器上面的时候,首页可以正常访问,可是当发出请求的时候却报错误了,说找不到定义的请求.我很纳闷,本地都OK为什么只有在服务器才能找不到请求.不过按照常理我还是一步一步的来开始排错. 第一步,查看项目部署成功,和部署路径无关,OK. 第二步,查看web.xml以及struts的请求配置,完全OK,没有问题. 第三步,既然部署没有问题,请求配置都OK,如果不是机器的原因那么只

使用request.getContextPath()设置Cookie路径问题

今天做项目遇到一个问题: 某个项目需要自动登录,后台实现是将用户名和密码写入到cookie.本地测试通过,但是部署在服务器上的时候遇到一个问题,就是在IE下勾选上自动登录项,当再次登录的时候获取设置的cookie的值无法取到,经过研究发现本地和服务器的区别在于服务器访问没有项目名称也就是IP+端口访问,经过仔细研究找到的解决方案. 我们后台设置cookie的时候这这样设置的     Cookie cookie = new Cookie(name, value);         cookie.s

jsp中【&lt;%=request.getContextPath()%&gt;】项目路径

1 2 "request.getContextPath()的值是        "<%=request.getContextPath()%><br/> "pageContext.request.contextPath的值是   "${pageContext.request.contextPath}<br/> 通过运行我们发现了<%=request.getContextPath()%>和${pageContext.req

request.getcontextPath() 详解

<%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径. 但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp">也行,这两个文件是在同一个目录下的.比如你要生成一个文件放在服务器上得一个目录下,可以使用request.getContextPath()

String path = request.getContextPath

<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> 这个语句是用来拼装当前网页的相对路径的. <base href="...">是用来表明当前页面的相对路

String path = request.getContextPath();这段什么用

<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>答:这样的代码是在jsp里出现的吧, 那么他的含义就是为了得到一个路径, 做动态网站时,需要提交form表单 在表单的action里面就

jsp中的request.getContextPath()

jsp中的request.getContextPath() <%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径. 但不用也可以吧,比如<a href="<%=request.getContextPath()%>/catalog.jsp">我就直接用<a href="catalog.jsp">也行啊,这两个文件是在同一个目录下的 比如你要生成一个文件放在服务器上得一个目

request获取各种路径(转)

equest.getRealPath() 这个方法已经不推荐使用了,代替方法是: request.getSession().getServletContext().getRealPath() 在servlet里用this.getServletContect().getRealPath() 在struts里用this.getServlet().getServletContext().getRealPath() 在Action里用ServletActionContext.getRequest().g