相对网址和绝对网址差异

时间:2010-08-28 18:19:42

标签: java jsp servlets

servlet容器中相对URL和绝对URL之间的区别是什么。例如,如果在webinf文件夹下有一个名为forum.jsp的jsp。当我想从当前jsp文件中调用当前请求到同一个webinf文件夹下的当前jsp文件时,是以下正确方法

/forum.jsp

relative url表示相对于web-inf文件夹或jsp位置。

2 个答案:

答案 0 :(得分:2)

Absolute URL 是:http://stackoverflow.com/questions/3591899/relative-url-and-absolute-url-difference

相对网址为:/questions/3591899/relative-url-and-absolute-url-difference

此外, relative URL 可以只是:../questions/3591899/relative-url-and-absolute-url-difference,具体取决于链接页面的位置......

如果链接页面位于./3591899/relative-url-and-absolute-url-difference文件夹

,则为questions

我建议总是使用Relative URL ...而且很难,继续尝试使用它们......


一个问题,为什么你的JSP在WEB-INF/文件夹中?

您无法访问JSP文件夹下的WEB-INF,如果您尝试访问它,服务器将会引发404 errorJ2EE仅查找此文件夹下的类和库。

答案 1 :(得分:1)

绝对URL是包含方案的URL(例如http:)。相对URL不包含该方案,因此取决于当前上下文。

如何解释相对URL有点复杂。它完全取决于使用URL的上下文。例如。在Web浏览器中,或在servlet中,甚至在本地磁盘文件系统中(java.io.File等)。

当在servlet上下文中讨论时,当相对URL以/开头时,它将相对于上下文根(即webcontent文件夹的根,/WEB-INF文件夹所在的位置和所有JSP文件都放在哪里。)

因此,当您要将请求转发给/WEB-INF/forums.jsp时,您只需指定:{/ p>

request.getRequestDispatcher("/WEB-INF/forums.jsp").forward(request, response);

但是,当相对URL不以/开头时,它将相对于当前请求URL。因此,当请求网址为http://example.com/context/servlets/servletname并且您使用相对网址forums.jsp时,则以下

request.getRequestDispatcher("forums.jsp").forward(request, response);

实际上会指向http://example.com/context/servlets/forums.jsp