这篇文章主要讲解了“JavaWeb相对路径如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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文件一致,一般只要是客户端解析的地址根目录都是相对服务器;而页面跳转根目录是项目路径,这个区别很重要。
最新评论