![總結(jié)JSP與servlet之間的傳值.doc_第1頁](http://file.renrendoc.com/FileRoot1/2020-1/16/6353cab3-7b26-4101-85d2-8068316ce27f/6353cab3-7b26-4101-85d2-8068316ce27f1.gif)
![總結(jié)JSP與servlet之間的傳值.doc_第2頁](http://file.renrendoc.com/FileRoot1/2020-1/16/6353cab3-7b26-4101-85d2-8068316ce27f/6353cab3-7b26-4101-85d2-8068316ce27f2.gif)
![總結(jié)JSP與servlet之間的傳值.doc_第3頁](http://file.renrendoc.com/FileRoot1/2020-1/16/6353cab3-7b26-4101-85d2-8068316ce27f/6353cab3-7b26-4101-85d2-8068316ce27f3.gif)
![總結(jié)JSP與servlet之間的傳值.doc_第4頁](http://file.renrendoc.com/FileRoot1/2020-1/16/6353cab3-7b26-4101-85d2-8068316ce27f/6353cab3-7b26-4101-85d2-8068316ce27f4.gif)
全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
總結(jié)JSP與servlet之間的傳值JSP與 servlet之間的傳值有兩種情況:JSP - servlet, servlet - JSP。通過對象 request和 session (不考慮 application)完成傳值。一、JSP - servletJSP頁面有3種方法向 servlet傳值: form表單、URL 、其他.click me .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)容。二、Servlet1、關(guān)于 servlet,首先要提到它在 web.xml里的注冊內(nèi)容,如 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目錄,對應(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/JspServlet2、在 servlet直接用 request對象,得到發(fā)送來的請求內(nèi)容;用 request.getSession(),得到 session對象,從而得到會話內(nèi)容。這里的 request.getSession()的參數(shù)為 boolean 類型,該方法意思可理解為:session可以認為是每一個IE進程對應(yīng)一個會話(新開一個IE進程就可以對應(yīng)兩個會話的),getSession都是返回當前用戶的會話對象,參數(shù)的區(qū)別在于:參數(shù)為true (默認),則如果“當前用戶的會話對象”為空(第一次訪問時)則創(chuàng)建一個新的會話對象返回;參數(shù)為false,則如果“當前用戶的會話對象”為空,則返回 null (即不自動創(chuàng)建會話對象)。利用這個方法可以判斷 session是否過期,如下:if(request.getSession(false)=null) System.out.println(Session has been invalidated!);else 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)servlet使用RequestDispatcher到j(luò)sp頁面 String url=/EShop.jsp; ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher(url); rd.forward(req, res); servlet重定向jsp,并將數(shù)據(jù)發(fā)送到別一個JSP中: request.setAttubute(messages,aaa); RequestDispatcher requestDispatcher=request.getRequestDispatcher(/jsp/testbean.jsp); requestDispatcher.forward(request,response);3.7、Servlet跳轉(zhuǎn)從JSP跳轉(zhuǎn)到Servlet可以實現(xiàn),通過表單提交或超鏈接可以做到,但是現(xiàn)在如果從一個Servlet跳轉(zhuǎn)到JSP呢? HttpServletResponse對象,此對象可以完成跳轉(zhuǎn):public void sendRedirect();JumpServlet.java:package org.lxh.demo ;import javax.servlet.* ;import javax.servlet.http.* ;import java.io.* ;public class JumpServlet extends HttpServletpublic void init() throws ServletExceptionpublic void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOExceptionresp.sendRedirect(jump.jsp) ;public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOExceptionthis.doGet(req,resp) ;public void destroy();web.xml:jumporg.lxh.demo.JumpServletjump/jump以上實現(xiàn)了跳轉(zhuǎn)的功能,但是跳轉(zhuǎn)之后,發(fā)現(xiàn)地址欄已經(jīng)改變了,所以此跳轉(zhuǎn)稱為客戶端跳轉(zhuǎn)。如果此時假設(shè)一個Servlet要向JSP中傳遞屬性,那么應(yīng)該使用session范圍。JumpServlet.java:public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOExceptionrequest.getSession().setAttribute(name,hello) ;resp.sendRedirect(jump.jsp) ;jump.jsp:此時,發(fā)現(xiàn)可以通過session屬性范圍傳遞內(nèi)容,但是如果現(xiàn)在傳遞的內(nèi)容很多,而程序中使用session范圍的話則肯定會帶來額外的性能降低,但是此時,這些值只使用一次顯示,那肯定沒有必要使用session對象,最好使用request范圍。如果request屬性范圍也有一個限制,必須是服務(wù)器端跳轉(zhuǎn),在JSP中使用語句完成,但是在servlet中呢?就只能使用RequestDsipatcher接口完成,實際上語句也是使用包裝了此種應(yīng)用,既然RequestDispatcher是一個接口,所以必須通過其他方式實例化,通過request對象完成。JumpServlet.java:public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOExceptionreq.setAttribute(name,hello) ;/ 準備跳轉(zhuǎn)到此頁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit2 What's the elephant doing(說課稿)-2024-2025學年外研版(三起)英語四年級上冊
- 15《八角樓上》(說課稿)2024-2025學年-統(tǒng)編版二年級語文上冊001
- 7《不甘屈辱奮勇抗爭-圓明園的訴說》(說課稿)統(tǒng)編版道德與法治五年級下冊
- 2023七年級英語下冊 Unit 2 What time do you go to school Section A 第1課時(1a-2d)說課稿 (新版)人教新目標版
- 8大家的“朋友”(說課稿)-部編版道德與法治三年級下冊
- 2024-2025學年高中歷史 第一單元 中國古代的農(nóng)耕經(jīng)濟 第5課 農(nóng)耕時代的商業(yè)與城市(1)教學說課稿 岳麓版必修2
- 2024年八年級歷史下冊 第三單元 第11課 為實現(xiàn)中國夢而努力奮斗說課稿 新人教版
- 2024年三年級品社下冊《學看平面圖》說課稿 山東版
- 2025三元區(qū)國有商品林采伐與銷售權(quán)轉(zhuǎn)讓合同書
- Unit 5 Colours Lesson 2 (說課稿)-2024-2025學年人教新起點版英語一年級上冊
- 2024年長沙衛(wèi)生職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 河北省滄州市五縣聯(lián)考2024-2025學年高一上學期期末英語試卷(含答案含含聽力原文無音頻)
- 福建省泉州市南安市2024-2025學年九年級上學期期末考試語文試題(無答案)
- 腫瘤護士培訓課件
- 新課標體育與健康水平二教案合集
- 2025屆高考語文一輪復(fù)習知識清單:古代詩歌鑒賞
- 醫(yī)療器材申請物價流程
- 我的消防文員職業(yè)規(guī)劃
- 2025年公司品質(zhì)部部門工作計劃
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數(shù)字化施工組”賽項考試題庫
- 華為研發(fā)部門績效考核制度及方案
評論
0/150
提交評論