servlet容器中相对URL和绝对URL之间的区别是什么。例如,如果在webinf文件夹下有一个名为forum.jsp的jsp。当我想从当前jsp文件中调用当前请求到同一个webinf文件夹下的当前jsp文件时,是以下正确方法
/forum.jsp
relative url表示相对于web-inf文件夹或jsp位置。
答案 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 error
。 J2EE
仅查找此文件夹下的类和库。
答案 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);