Request.getContextPath() 即代表 /項目名。 如/news01
一、從JSP頁面跳到其他頁面或Servlet
從JSP頁面跳到其他頁面使用全路徑( /項目名/檔案的路徑 )。如項目名為news01,頁面目錄如下
1)比如從index.jsp頁面跳到main檔案夾下的list.jsp頁面:
連結路徑為:/news01/main/list.jsp
2) 比如從index.jsp頁面跳到自己頁面:
連結路徑為: /news01/index.jsp
3) 比如從list.jsp頁面跳到index.jsp頁面:
連結路徑為: /news01/index.jsp
4)比如從list.jsp頁面跳到insert.jsp頁面
連結路徑為: /news/main/insert.jsp
5)Servlet的url路徑為:/servlet/TestServlet.
從任何JSP頁面跳轉到該servlet的連結路徑為:/news01/servlet/TestServlet
6) Servlet的url路徑為:/TestServlet.
從任何JSP頁面跳轉到該servlet的連結路徑為:/news01/TestServlet
7)Form表單的action路徑樣本:
<form action="/news01/servlet/LoginServlet" method="post">
二、從Servlet跳轉到JSP頁面
(一)使用requestDispatcher方式:
1、單層:servlet的URL在根目錄下(不需要斜杠開頭)
(1) 從TestServlet(urlpattern:/TestServlet)轉到根目錄下的index.jsp
跳躍陳述式為:
request.gerRequestDispatcher(“index.jsp”).forward(request,response);
(2) 從TestServlet(urlpattern: /TestServlet)轉到main目錄下的list.jsp
跳躍陳述式為:
request.gerRequestDispatcher(“main/list.jsp”).forward(request,response);
2、雙層或多層:servlet的URL在根目錄下(需要斜杠開頭,這裡的斜杠代表當前應用—這個項目裡即代表 /news01/
(1)從TestServlet(urlpattern:/servlet/TestServlet)轉到根目錄下的index.jsp
跳躍陳述式為:
方法一:相對路徑
request.gerRequestDispatcher(“../index.jsp”).forward(request,response);
方法二:斜杠開頭
request.gerRequestDispatcher(“/index.jsp”).forward(request,response);
(3) 從TestServlet(urlpattern:/servlet/TestServlet)轉到main目錄下的list.jsp
跳躍陳述式為:
方法一:相對路徑
request.gerRequestDispatcher(“../main/list.jsp”).forward(request,response);
方法二:斜杠開頭
request.gerRequestDispatcher(“/main/list.jsp”).forward(request,response);
(2)使用response.sendRedirect()
不管servlet是單層還是雙層的都使用下面這種方式:
response.sendRedirect("/news01/index.jsp");
response.sendRedirect("/news01/main/list.jsp");
其中:request.getContextPath() 即代表 /項目名。 如/news01
response.sendRedirect(request.getContextPath()+"/main/list.jsp");
response.sendRedirect(request.getContextPath()+"/index.jsp");