日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Servlet與JSP間的傳值問題

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

成都創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為渭南企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),渭南網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

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

一、JSP -> servlet

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

 
 
 
  1. ...
  2. <%......
  3. session.setAttribute("testSession","Hello session");
  4. reqeust.setAttribute("testRequest","Hello request");
  5. %>
  6. 點擊
  7. ...

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

2、URL:比如這里的 標簽的 href屬性與

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

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

二、Servlet

1、關(guān)于 servlet,首先要提到它在 web.xml里的注冊內(nèi)容,如

 
 
 
  1. JspServlet1
  2. com.demo.JspServletDemo
  3. JspServlet1
  4. /JspServlet
  5. JspServlet2
  6. com.demo.JspServletDemo
  7. JspServlet2
  8. /admin/JspServlet

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

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

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

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

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

2、在 servlet直接用 request對象,得到發(fā)送來的請求內(nèi)容;用 request.getSession(),得到 session對象,從而得到會話內(nèi)容。
這里的 request.getSession()的參數(shù)為 boolean 類型,該方法意思可理解為:

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

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

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

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

 
 
 
  1. if(request.getSession(false)==null)
  2. System.out.println("Session has been invalidated!");
  3. else
  4. System.out.println("Session is active!");

三、Servlet -> JSP

從 servlet轉(zhuǎn)到 jsp不外乎兩種方法,重定向 和 url轉(zhuǎn)發(fā)

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

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

 
 
 
  1. String fr="good well";
  2. request.setAttribute("test", fr);
  3. RequestDispatcher de=request.getRequestDispatcher("/test.jsp");
  4. de.forward(request, response);

當(dāng)前文章:Servlet與JSP間的傳值問題
文章分享:
http://www.5511xx.com/article/cdddepo.html