JSP和Servlet之間跳轉總結

來源:互聯網
上載者:User

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");

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.