绝对路径与相对路径问题

Posted

tags:

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

一、现象与概念

1. 问题

在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时,则会出现路径混乱问题。

 

2. 绝对路径概念

相对于contextPath(当前Web应用的上下文)的路径。

解决方案:超链接用绝对路径而不是相对路径。若/代表的是站点的根目录,在其前面加上contextPath。

<a href="<%= request.getContextPath() %>/TestServlet">To B</a>

 

二、JavaWeb开发中的‘/‘含义总结

1. 当前Web应用的根路径

‘/‘代表http://localhost:8080/contextPath/    :由Servlet来处理的地址

1)转发:request.getRequestDispatcher("/path/b.jsp").forword(request, response);

2)web.xml文件中映射Servlet访问路径

<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/TestServlet</url-pattern>
</servlet-mapping>

3)各种定制标签中的‘/‘。

 

2. Web站点的根路径

‘/‘代表http://localhost:8080/    :由浏览器来处理的地址

1)超链接:<a href="/TestServlet">To B</a>

2)form标签中的action:<form action="/b.jsp">

3)重定向:response.sendRedirect("/b.jsp");

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

c# wpf 相对路径问题

HTML相对路径与绝对路径~~~~~~遇到的问题..为啥会这样?

什么叫相对路径?

java里绝对路径和相对路径的区别是啥?

相对路径与绝对路径的含义

绝对路径和相对路径的区别?