javaweb中相对路径的使用


javaweb中无论是在JSP页面中 java类中配置文件中都有对资源的引用。
都涉及到相对路径,相对路径的概念这里不在赘述。

我们说其实在一个web项目里用到相对路径的地方无非就是上面几种情况。
所以下面我们就说说,怎么在JAVAWEB中正确的使用相对路径
一、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标签已经能达到上述的目的了。

其他标签相对路径使用和上述一致,希望读者自己动手验证下。

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

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

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

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

 

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

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

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

相对路径的规则和在上述的HTML页面规则一致。

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

两者的区别:

(1)原理上:重定向是客户端请求,服务器返回重定向操作,客户端执行,

页面跳转是服务器内部页面或者servlet之间的跳转。

(2)使用上:两者的根目录不同,重定向的根目录是服务器地址这点和html文件一致,一般只要是

客户端解析的地址根目录都是相对服务器;而页面跳转根目录是项目路径,这个区别很重要。

 

 

在java类中对资源的引用

//这个以后补充

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM