Servlet中路徑跳轉(服務器端跳轉)JSP
- 相對路徑
經過多次試驗總結,servlet相對路徑跳轉相對於servlet配置的xml路徑(或servlet3.0注解路徑)
如下:
//XML文件
<servlet-mapping>
<servlet-name>RegServlet</servlet-name>
<url-pattern>/servlet/RegServlet</url-pattern>
</servlet-mapping>
項目目錄:

Servlet中相對路徑
request.getRequestDispatcher("../userinfo.jsp").forward(request,response);
這里的servlet路徑配置在/servlet/RegServlet下(即根目錄下的setvlet/目錄下),則 ../ 目錄則倒回到根目錄下,而userInfo.jsp同樣位於根目錄下
第二種情況:servlet3.0中的注解情況
@WebServlet("/RegServlet") //新特性 訪問地址直接配置好了
同樣的項目目錄,則在servlet中訪問則需要如下修改:
request.getRequestDispatcher("userinfo.jsp").forward(request, response); //相對路徑方式
解釋:因為系統注解的servlet配置在根目錄(‘/’意味着根目錄)下,則意味userInfo.jsp與servlet文件位於同一目錄下,可可以直接訪問。
2. 絕對路徑
絕對路徑則相對而言簡單很多,
這里注意一點,對照着上面的目錄圖,我們要理解到,服務器在解析路徑時,'src','WebRoot',這些文件夾其實都忽略了,這樣說或許不准確,但便於理解,也解釋說,則兩個目錄下的文件,都是在同一個根目錄下,
如果訪問同一個Jsp頁面,這絕對路徑的表示方式如下:
request.getRequestDispatcher("/userinfo.jsp").forward(request, response);// ‘/’表示根目錄 絕地路徑
Servlet中路徑跳轉(請求重定向跳轉)JSP
- 請求重定向( response.sendRedirect () )跳轉多用下面的方式:
response.sendRedirect(request.getContextPath()+"/userinfo.jsp"); //這里使用的是加上了上下文的絕對路徑
解釋:服務器在解析絕對路徑時,比瀏覽器解析絕對路徑時,,多了一部分,這部分就是項目名,也就是,上下文環境
或者使用相對路徑,這里的相對於與上面的相對是同一樣含義(servlet配置的訪問路徑,這里配置的是/RegSevlet),則相對路徑的表示方式為:
response.sendRedirect("userinfo.jsp"); //這里使用的是相對路徑