代码之家  ›  专栏  ›  技术社区  ›  Dead Programmer

相对URL和绝对URL差

  •  1
  • Dead Programmer  · 技术社区  · 15 年前

    servlet容器中相对URL和绝对URL的区别是什么?例如,如果weinf文件夹下有一个名为forum.jsp的JSP。当我想将当前请求从同一weinf文件夹下的当前jsp文件发送到jsp时,以下是正确的方法

    /JSP

    相对URL表示相对于WEINF文件夹或JSP位置。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Garis M Suero    15 年前

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

    和A 相对URL 是: /questions/3591899/relative-url-and-absolute-url-difference

    另外,A 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 仅查找此文件夹下的类和库。

        2
  •  1
  •   BalusC    15 年前

    绝对URL是包含方案(例如 http: )相对URL不包括方案,因此依赖于当前上下文。

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

    在servlet上下文中交谈时,当相对URL以 / ,它将相对于上下文根目录(即WebContent文件夹的根目录,其中 /WEB-INF 文件夹是所有JSP文件所在的位置)。

    所以当你想把请求转发给 /WEB-INF/forums.jsp ,然后您只需指定这样:

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

    但是当相对URL不以 / ,则它将相对于当前请求URL。例如,当请求URL为 http://example.com/context/servlets/servletname 使用相对URL forums.jsp ,然后是以下内容

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

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