java web项目中的路径问题

相对路径 相对于当前浏览器所在的路径地址:

<a href="../emailSend.jsp">

根路径:

<a href="/ssm_email/emailSend.jsp">

绝对路径:

<a href="http://localhost:8080/ssm_email/emailSend.jsp">

相对路径:

相对路径:虚拟路径如果不以“/”开始,就是相对路径,浏览器会以当前资源所在的虚拟路径为基准对相对路径进行解析,从而生成最终的访问路径。此时如果通过转发进入其他目录,再使用相对路径访问资源就会出错。

绝对路径:

虚拟路径以“/”开始,就是绝对路径。
1)在服务器端:虚拟路径最开始的“/”表示当前Web应用的根目录。
例如:服务器端虚拟路径“/TestServlet”使用浏览器访问时,地址为
http://localhost:8989/Path

所以由服务器解析的路径,以”/”开头的都是以当前web路径为基准的。

由服务器解析的路径:

web.xml 文件中 url-pattern 中配置的URL,以“/”开头的转发操作:

request.getRequestDispatcher(“/xxx").forward(request,response);

Jsp动作标签:<jsp:forward page="/xxx">

这些最后解析的访问路径都是

http://localhost:8989/Path/xxx

2)在浏览器端:虚拟路径最开始的“/”表示当前主机地址。

例如:链接地址“/ Path/ dir/ b.html”经过浏览器解析后为:

相当于http://localhost:8989/ Path/ dir/ b.html

所以由浏览器解析的路径,以“/”开头的都是以当前的主机地址为基准的

由浏览器解析的路径

  重定向操作:response.sendRedirect("/xxx")
           所有HTML标签:<a href="/xxx">;<form action="/xxx"> ...

这些最后的访问路径都是

http://localhost:8989/xxx

所以我们可以看出,如果是浏览器解析的路径,我们必须加上项目名称才可以正确的指向资源。http://localhost:8989/Path/xxx

jsp页面中获取项目名
在由浏览器解析的地址中动态添加当前web应用根目录路径

1JSP表达式        
<%= request.getContextPath() %> = /LessonPractice040

例:
<a href="<%= request.getContextPath() %>/target.jsp">Target Page</a>

2EL表达式 
${pageContext.request.contextPath } = /LessonPractice040

例: 
<a href="${pageContext.request.contextPath }/target.jsp">Target Page</a>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值