专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 JavaWeb相对路径的使用

JavaWeb相对路径的使用

更新时间:2022-03-17 11:02:54 来源:动力节点 浏览951次

javaweb中相对路径的使用javaweb中无论是在JSP页面中 java类中配置文件中都有对资源的引用。

都涉及到相对路径,相对路径的概念这里不在赘述。

我们说其实在一个web项目里用到相对路径的地方无非就是上面几种情况。

所以下面我们就说说,怎么在JAVAWEB中正确的使用相对路径

1.jsp或者html页面中的相对路径

在jsp或者html页面中有很对标签涉及到标签的引用

比如img,a,form,script,link等

这些标签的资源我们一般都会使用相对路径,而且这些资源都是在客户端进行解析的。下面我们就用实际的例子去探究下怎么在jsp或者html中正确使用相对路径

这是文件的目录结构,我们在path.jsp写上<a href="pathHtml.html">jsp点我</a>这个标签我们在pathHtml.html中写上<a href="path.jsp">html点我</a>这个标签。运行WEB项目。

首先来到pathHtml.html页面,点击链接,结果如下:

正确的跳到了指定的页面,接着点击途中的链接,结果如下:

跳到了项目目录下的pathHtml.html,当然这个页面是不存在的。为什么同样的相对路径指定格式,在JSP和HTML中的结果相差这么大,我们知道相对路径最终还是要转换为绝对路径使用的,转换成绝对路径就必须知道相对路径的基准。所以我们看到上面的结果首先想到的是在默认的HTML页面和JSP页面中相对路径的基准是不一样的。 在HTML中base标签用来知道相对路径的基准,在jsp中自动给我们加了一个base标签并且指定基准是项目路径,所以我们无论在哪级目录中写的相对路径都是基于项目路径的。而默认的HTML页面没有base标签,此时相对路径就是相对当前页面的路径。故得到上面的测试结果。

所以我们为了防止出错一般在JSP页面中使用相对路径前都加上request.getContextPath(),让基准始终是项目路径,当然jsp页面中默认的base标签已经能达到上述的目的了。其他标签相对路径使用和上述一致,希望读者自己动手验证下。

2.在java类中使用相对路径

在java类中包括各种servlet中使用相对路径一般有两种情况.

(1)servlet中的页面跳转指定页面的相对路径

(2)类中对资源的引用,即文件的读写

我们分别对这两种情况探讨一下怎么能正确的在JAVA类中使用相对路径

我们知道在servlet中页面跳转有两种方式,页间跳转和重定向。

重定向的相对路径一定是相对于当前servlet的虚拟路径的,这点的使用上可以把servelt看着一个html页面在其中使用,相对路径的规则和在上述的HTML页面规则一致。

页面跳转相对路径也是相对当前sevlet.

两者的区别:

(1)原理上:重定向是客户端请求,服务器返回重定向操作,客户端执行,页面跳转是服务器内部页面或者servlet之间的跳转。

(2)使用上:两者的根目录不同,重定向的根目录是服务器地址这点和html文件一致,一般只要是客户端解析的地址根目录都是相对服务器;而页面跳转根目录是项目路径,这个区别很重要。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>