含义
当前位置:首页 > 其他范文 > 含义 > 列表页

绝对路径的含义

小草范文网  发布于:2016-11-30  分类: 含义 手机版

篇一:相对路径与绝对路径的概念

必须先告诉各位相对路径与绝对路径的概念,因为在接下来我们必须运用这个概念引用存在于同一个Web服务器下的文件或者网页,下面将先为这两种路径做个简单的介绍。

相对路径-以引用文件之网页所在位置为参考基础,而建立出的目录路径。因此,当保存于不同目录的网页引用同一个文件时,所使用的路径将不相同,故称之为相对。

绝对路径-以Web站点根目录为参考基础的目录路径。之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的。

其实绝对路径与相对路径的不同处,只在于描述目录路径时,所采用的参考点不同。由于对网站上所有文件而言,根目录这个参考点对所有文件都是一样的,因此,运用以根目录为参考点的路径描述方式才会被称之为绝对路径。

以下为建立路径所使用的几个特殊符号,及其所代表的意义。

"."--代表目前所在的目录。

".."--代表上一层目录。

"/"--代表根目录。

假若要在Ref.htm文件中引用BeRef.gif文件时,其相对路径如下:

./SubDir2/BeRef.gif

上面的引用路径中,"."代表目前的目录(Dir1),所以"./SubDir2"代表目前目录下的SubDir2。其实,也可以省略"./"直接用下这个方式引用。

SubDir2/BeRef.gif

若使用绝对路径以根目录为参考点引用该文件时,引用路径如下:

/Dir1/SubDir2/BeRef.gif

引用BeRef.gif文件的相对路径又是如何呢?

假若要在Ref.htm文件中引用BeRef.gif文件时其相对路径如下:

../SubDir2/BeRef.gif

上面的引用路径中,".."代表上一层目录,所以,/Dir2"代表上一层目录下的Dir2子目录。若使用绝对路径引用时,则引用路径如下:

/Dir2/BeRer.gif

我们再举一个比较复杂的例子,来比较一下相对路径与绝对路径的使用。假设在读者所建立之Web站点中,拥有如下图的目录路径。

我们用以一个表格来说明在上图的情况下,某文件引用另一文件时,所应使用的相对路径与绝对路径。

上表中比较需要说明的是"../../"所代表的意义。

".."代表上一层目录,而"../../"所代表的是上一层目录的上一层目录。所以,从上表中可以看出,如果引用的文件存在于目前目录的子目录中,或者存在于上一层目录的 另一个子目录中,运用相对路径是比较方便的。如果不是时,则干脆利用绝对路径,还比较省事。从上表中,亦可以看出,当被引用的是同一个文件时,引用文件所使用的绝对路径是一样的。

篇二:servlet中的相对路径和绝对路径

servlet中,所有路径的配置都要用绝对路径。

什么是绝对路径,就是以“/”开头的路径(开发中就这样理解)。

实际开发中,“/”所代表的含义不同,但主要分以下两种情况:

1.servlet内部配置路径

servlet内部的含义就是:在客户端看不到,全是在(应用)后台处理的部分(简单说,就是除了JSP以外的所有地方)。包含以下2点:

a. web.xml中servlet 配置的路径

<servlet>

<servlet-name>helloWorld</servlet-name>

<servlet-class>

com.bill99.li.servlet.(本文来自:wwW.xIAocAofaNwEn.com 小 草范 文 网:绝对路径的含义)HelloWorldServlet

</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>helloWorld</servlet-name>

<url-pattern>/test1/helloWorld</url-pattern>

</servlet-mapping>

我们配置的这个“ /test1/helloWorld”,前面必须加“/” ---- 该“/”代表我们应用的名称。比如我们的应用名是“test”,那访问我们应有的地址就是: http:// 192.168.XX.XX:8080/test ,说白了就是代表项目的名称。

“ /test1/helloWorld”代表的路径就是http://

192.168.XX.XX:8080/test/test1/helloWorld

b.forward转发的路径(注意:不包含redirect重定向)

做完后台业务逻辑处理后,需要做页面的跳转,比如:

req.getRequestDispatcher("/pages/succ.jsp").forward(req, resp);

这时候跳转的页面"/pages/succ.jsp"也必须添加“/”,它代表的含义也一样,是我们应用的名称。

总结

在应用内部,“/”代表的就是应用的名称!!!

2.页面配置的路径

页面是指什么 ------ 肯定是指我们的JSP页面,而JSP页面是服务端解析的,对我们而言是下载到客户端,让浏览器解析为HTML展示出来的页面。 比如,我们的应用url是:http:// 192.168.XX.XX:8080/test

那站点的路径就是:http:// 192.168.XX.XX:8080/--- 很明显 test 是应用名

对客户端的浏览器而言,它认识的只有站点,也就是说,我们的jsp页面,“/”代表的是站点名。

所以在“/”后需要添加上我们应用的名称才能正确的访问到。(也容易理解,一个tomcat下可以部署多个应用,就相当于一个站点多个应用,怎么区别不同的应用呢,当然是不同应用名啦-----这个需要和上面的servlet内部配置路径区分理解一下啊,因为servlet本身就部署在服务端,在站点内部了,内部处理肯定知道它是站点下的哪个应用内,但对于外部而言,只知道一个站点IP。) 页面主要表现有以下3个地方:

a. form的action路径配置

页面举例:

<form action=" /test /test1/helloWorld" method="post">

解析:

应用名是test,/ 代表站点的url http:// 192.168.XX.XX:8080/,所以/test代表 http:// 192.168.XX.XX:8080/test

而/test1/helloWorld代表servlet在web.xml中配置的访问路径,所有上面的action可以正确的访问。

但是在真正的应用中,我们经常这样写:

<form action="${pageContext.request.contextPath}/test1/helloWorld" method="post">

${pageContext.request.contextPath} 的效果就是"/应用名" ,这里等于 /test 一样的效果,不解释啦。

b. 页面资源引用

同样,只要是页面中引入的东西(常常需要引入CSS,JS,图片等),都要如此写,比如

<script type="text/javascript"

src="${pageContext.request.contextPath}/pages/event/js/addevent.js"></script>

c. jsp/servlet的重定向 redirect

首先必须理解重定向的概念:重定向其实向服务器发送了2次请求,第一次把请求url告诉给服务器,服务器看到这个请求的状态码,马上明白该url是需要浏览器来重新去请求的url,于是呢把该url显示在浏览器的地址栏内,再次向服务器请求(第二次了吧),服务器响应,然后返回。

很明显,只要和页面打交道的,“/”都代表站点名,需要在后面添加应用名以区分是哪个应用的请求。所有。。。。不解释也明白了吧!

总结:

所有涉及前端页面的地方,“/”代表的是站点名,需要我们在“/”加上应用名以明确应用服务!!

=========================================================

基本上可以总结为两点:

a. servlet中所有访问路径都要用绝对路径“/”开头

b. 页面中“/”表示站点路径(在客户端展现出来,只知道它的站点路径,所有需要“/”后追加应用名来区分属于站点下的哪个应用),其他地方的“/”表示应用路径(在服务端的应用程序内调用,肯定是相对于应用的路径啦)

有人要怀疑:如果全是 绝对路径 ,那 相对路径 呢,其实,相对这个概念的确是相对的,但对于应用开发来说,简单理解就是木有以 “/” 开头的路径配置就是相对的。

而用相对路径是不安全的,很容易出现404错误。

篇三:JavaWeb 项目中的绝对路径和相对路径

JavaWeb 项目中的绝对路径和相对路径

最近在做JavaWeb项目,总是出现各种的路径错误,而且发现不同情况下 / 所代表的含义不同,导致在调试路径上浪费了大量时间。

在JavaWeb项目中尽量使用绝对路径 因为使用绝对路径是绝对不会出错的,而使用相对路径可能会出现错误。

首先 说下在JavaWeb项目中的绝对路径和相对路径的含义

绝对路径: 相对于当前Web应用根路径的路径 也就是任何路径都必须要带上contextPath =http://localhost:8080/WebProject/

相对路径: 相对于当前目录的路径为相对路径 通常直接用/ 来表示

因为使用相对路径 中的 / 在JavaWeb中的含义在不同的情况下含义不同,所以使用相对路径时可能会出现问题

下面就分析 / 在JavaWeb含义

JavaWeb项目中 / 的不同含义

JavaWeb项目中的 / 可能表示如下含义

当前Web应用的根路径(也就是绝对路径)http://localhost:8080/WebProject/ 有以下情况

> 请求转发时

request.getRequestDispatcher("/message/a.jsp").forward(request,response); > web.xml 文件中映射Servlet 访问路径 <servlet-mapping>

<servlet-name>UserServlet</servlet-name>

<url-pattern>/UserServlet</url-pattern> </servlet-mapping> > 各种定制标签中的 / 当前Web站点的根路径http://localhost:8080/

有以下情况

> 超链接

<a href=""></a> > 表单中的action <form action="" method="post"></form> > 请求重定向的时候 response.sendRedirect("");

综合上述情况,我们应该在web项目开发中使用绝对路径也就是应该带上contextPath 而contextPath可以由request.getContextPath 或者 application.getContextPath 来获取

所以当遇到超链接 表单中的action 或者 请求重定向的时候,应该在其前面加上contextPath 而不能直接使用相对路径 /

为了保险起见,大家对项目中出现任何的访问路径,比如css 或者js代码的调用的路径都可以使用绝对路径来防止出现问题

本文已影响