重定向方法sendRedirect()中的路径问题的初步了解

一、使用绝对路径
  response.sendRedirect(“绝对路径的URL地址”);
  如http://www.baidu.com,直接跳转到该地址(注意,http头不可省略)。
  也可以使用本地服务器绝对路径地址http://localhost:8080/myProject/123.mp3。
  这个是最简单的,可以访问到任何你可以访问的HTTP资源。
二、使用相对路径(这里以本地服务器地址为例)
  1、路径前面没有斜线“/”
  如response.sendRedirect(example/index.html);
  容器会根据原先请求的URL建立一个完整的路径,如原先路径是http://localhost:8080/myProject/app/index.html , 那么会直接访问到http://localhost:8080/myProject/app/example/index.html
  2、路径前面有斜线“/”
  如response.sendRedirect(/example/index.html);
  容器会根据原先请求的URL,相对于Web应用本身,建立一个完整的路径,如原先路径是http://localhost:8080/myProject/app/index.html , 那么会直接访问到http://localhost:8080/example/index.html

路径表示法是一个要了解的东西,这里有文章讲得很好:文件路径常用表示方法,点我查看

3、一些细节问题
假如一开始访问到的是http://localhost:8080/myProject/index.html , 然后该页面通过GET请求访问到对应的Servlet, 此时重定向的相对路径不是相对于Servlet而言的,而是相对于原先请求路径而言(或者说相对于用户浏览器上面显示的页面地址而言),即相对于:
http://localhost:8080/myProject/index.html 而言。

猜你喜欢

转载自blog.csdn.net/qq_47234534/article/details/107305420