熱線電話:13121318867

登錄
首頁精彩閱讀jsp與servlet之間的參數傳遞
jsp與servlet之間的參數傳遞
2014-11-05
收藏
jsp與servlet之間的參數傳遞


JSP與 servlet之間的傳值有兩種情況:JSP -> servlet, servlet -> JSP。

  通過對象 request和 session (不考慮 application)完成傳值。

  一、JSP -> servlet

  JSP頁面有3種方法向 servlet傳值: form表單、URL 、其他
  ...

  <%......

  session.setAttribute("testSession","Hello session");

  reqeust.setAttribute("testRequest","Hello request");

  %>

  click me

  ...

  1、對于該JSP頁面 form表單的內容,如標簽,在 servlet可用request.getParameter("username");獲取。

  2、URL:比如這里的 標簽的 href屬性與標簽的 action屬性的值 "JspServlet?action=toServlet",在 servlet同樣用 request.getParameter("action")獲??;所要注意的是這里的 url要和 servlet在web.xml里的標簽的路徑所對應。這部分后面會提到。

  3、java片段代碼,servlet只能接到 session.setAttribute("testSession","Hello session")的內容,而接不到 request的內容。在 servlet里用 request.getSession().getAttribute("testSession")獲取 session內容。

  二、Servlet

  1、關于 servlet,首先要提到它在 web.xml里的注冊內容,如

  JspServlet1

  com.demo.JspServletDemo

  JspServlet1

  /JspServlet

  JspServlet2

  com.demo.JspServletDemo

  JspServlet2

  /admin/JspServlet

  假如 project name 是 jsp2servlet,則該 project根目錄的 Context是 /jsp2servlet,在地址欄里顯示是 http://localhost:8080/jsp2servlet/;

  在 project 根目錄下有 admin目錄,對應的 Context是/admin/jsp2servlet,在地址欄里顯示是http://localhost:8080/jsp2servlet/admin,

  在這兩個目錄下的 jsp 都想轉到 com.demo.JspServletDemo類做處理,這時的 url需要在 web.xml注冊兩次。

  1)在 http://localhost:8080/jsp2servlet/ 目錄下的 jsp 頁面 JspServlet1,url應寫為"JspServlet"

  2)在 http://localhost:8080/jsp2servlet/admin/ 目錄下的 jsp 頁面訪問 JspServlet2,url應寫為"admin/JspServlet"

  2、在 servlet直接用 request對象,得到發送來的請求內容;用 request.getSession(),得到session對象,從而得到會話內容。

  這里的 request.getSession()的參數為 boolean 類型,該方法意思可理解為:

  session可以認為是每一個IE進程對應一個會話(新開一個IE進程就可以對應兩個會話的),getSession都是返回當前用戶的會話對象,參數的區別在于:

  參數為true (默認),則如果“當前用戶的會話對象”為空(第一次訪問時)則創建一個新的會話對象返回;

  參數為false,則如果“當前用戶的會話對象”為空,則返回 null (即不自動創建會話對象)。

  利用這個方法可以判斷 session是否過期,如下:

  if(request.getSession(false)==null)

  System.out.println("Session has been invalidated!");

  else

  System.out.println("Session is active!");

  三、Servlet -> JSP

  從 servlet轉到 jsp不外乎兩種方法,重定向 和 url轉發

  1、重定向 ( Redirect):是路徑的跳轉,內容和 url都改變。不允許帶 request參數( session參數可以),即不允許在 servlet里給 request對象使用setAttribute方法傳給下一頁面。在 servlet里使用response.sendRedirect(url) 方法。注意這里的 url前不帶斜線 /,如response.sendRedirect(”test.jsp“)

  2、url轉發 ( Forward):是頁面的跳轉,頁面內容發生改變,url不變??梢詭?request和 session參數。在 servlet里使用getServletConfig().getServletContext().getRequestDispatcher(url).forward(request, response)。而這里的 url前需要帶斜線 /,如getServletConfig().getServletContext().getRequestDispatcher(”/test.jsp“).forward(request, response)

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢