ServletContext的getContextPath()方法:
返回web项目部署的上下文路径,一般以/开始但是不以/结束。如果项目被部署在根目录中(ROOT中),则返回""。例如项目部署在rsac目录中,那么该方法返回"/rsac"。
HttpServletResponse的sendRedirect(path)方法:
参数path可以是相对URL(chlstar09),也可以是绝对URL(http://hi.baidu.com/chlstar09,协议必须加上)
当传入的是相对URL时,容器必须将它转换成绝对路径。如果没有以/开始,容器将它转换成相对于当前请求的绝对路径。例如当前请求时http://hi.baidu.com/chlstar09/item/4a99191cdca56c7e70d5e82d,而path="77452a0766b6ff21a2332a6a",容器将其转换成http://hi.baidu.com/chlstar09/item/77452a0766b6ff21a2332a6a。如果是以/开始,容器将其转换成相对于该容器根的绝对路径。例如当前请求http://hi.baidu.com/chlstar09/item/4a99191cdca56c7e70d5e82d,而path="77452a0766b6ff21a2332a6a",容器将其转换成http://hi.baidu.com/77452a0766b6ff21a2332a6a。
ServletRequest的getRequestDispatcher(path)方法:
返回一个RequestDispatcher对象,它封装了所给路径的资源。RequestDispatcher对象可以转发一个请求,也可以将一个资源包含到一个response对象。path可以是相对的,但是它不能跳转出当前的上下文路径。如果path以/开始,它将被转换成相对于当前上下文的路径。例如当前请求为http://localhost:8080/TestWeb/TestServlet/web,path="index",转换结果为http://localhost:8080/TestWeb/TestServlet/web/index。例如当前请求为http://localhost:8080/TestWeb/TestServlet/web,path="/index",转换结果为http://localhost:8080/TestWeb/index。
ServletContext的getRequestDispatcher(path)方法:
返回一个RequestDispatcher对象,它封装了所给路径的资源。RequestDispatcher对象可以转发一个请求,也可以将一个资源包含到一个response对象。path必须要以/开始,它将被转换成相对于当前上下文的路径。