



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
總結(jié)JSP與servlet之間的傳值JSP與 servlet之間的傳值有兩種情況:JSP - servlet, servlet - JSP。通過(guò)對(duì)象 request和 session (不考慮 application)完成傳值。一、JSP - servletJSP頁(yè)面有3種方法向 servlet傳值: form表單、URL 、其他.click me .1、對(duì)于該JSP頁(yè)面 form表單的內(nèi)容,如 標(biāo)簽,在 servlet可用 request.getParameter(username);獲取。2、URL:比如這里的 標(biāo)簽的 href屬性與 標(biāo)簽的 action屬性的值 JspServlet?action=toServlet,在 servlet同樣用 request.getParameter(action)獲??;所要注意的是這里的 url 要和 servlet在web.xml里的 標(biāo)簽的路徑所對(duì)應(yīng)。這部分后面會(huì)提到。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里的注冊(cè)內(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目錄,對(duì)應(yīng)的 Context是/admin/jsp2servlet,在地址欄里顯示是 http:/localhost:8080/jsp2servlet/admin,在這兩個(gè)目錄下的 jsp 都想轉(zhuǎn)到 com.demo.JspServletDemo類做處理,這時(shí)的 url需要在 web.xml注冊(cè)兩次。 1)在 http:/localhost:8080/jsp2servlet/ 目錄下的 jsp 頁(yè)面 JspServlet1,url應(yīng)寫為 JspServlet 2)在 http:/localhost:8080/jsp2servlet/admin/ 目錄下的 jsp 頁(yè)面訪問(wèn) JspServlet2,url應(yīng)寫為 admin/JspServlet2、在 servlet直接用 request對(duì)象,得到發(fā)送來(lái)的請(qǐng)求內(nèi)容;用 request.getSession(),得到 session對(duì)象,從而得到會(huì)話內(nèi)容。這里的 request.getSession()的參數(shù)為 boolean 類型,該方法意思可理解為:session可以認(rèn)為是每一個(gè)IE進(jìn)程對(duì)應(yīng)一個(gè)會(huì)話(新開一個(gè)IE進(jìn)程就可以對(duì)應(yīng)兩個(gè)會(huì)話的),getSession都是返回當(dāng)前用戶的會(huì)話對(duì)象,參數(shù)的區(qū)別在于:參數(shù)為true (默認(rèn)),則如果“當(dāng)前用戶的會(huì)話對(duì)象”為空(第一次訪問(wèn)時(shí))則創(chuàng)建一個(gè)新的會(huì)話對(duì)象返回;參數(shù)為false,則如果“當(dāng)前用戶的會(huì)話對(duì)象”為空,則返回 null (即不自動(dòng)創(chuàng)建會(huì)話對(duì)象)。利用這個(gè)方法可以判斷 session是否過(guò)期,如下: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對(duì)象使用setAttribute方法傳給下一頁(yè)面。在 servlet里使用 response.sendRedirect(url) 方法。注意這里的 url前不帶斜線 /,如 response.sendRedirect(”test.jsp“)2、url轉(zhuǎn)發(fā) ( Forward):是頁(yè)面的跳轉(zhuǎn),頁(yè)面內(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頁(yè)面 String url=/EShop.jsp; ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher(url); rd.forward(req, res); servlet重定向jsp,并將數(shù)據(jù)發(fā)送到別一個(gè)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可以實(shí)現(xiàn),通過(guò)表單提交或超鏈接可以做到,但是現(xiàn)在如果從一個(gè)Servlet跳轉(zhuǎn)到JSP呢? HttpServletResponse對(duì)象,此對(duì)象可以完成跳轉(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以上實(shí)現(xiàn)了跳轉(zhuǎn)的功能,但是跳轉(zhuǎn)之后,發(fā)現(xiàn)地址欄已經(jīng)改變了,所以此跳轉(zhuǎn)稱為客戶端跳轉(zhuǎn)。如果此時(shí)假設(shè)一個(gè)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:此時(shí),發(fā)現(xiàn)可以通過(guò)session屬性范圍傳遞內(nèi)容,但是如果現(xiàn)在傳遞的內(nèi)容很多,而程序中使用session范圍的話則肯定會(huì)帶來(lái)額外的性能降低,但是此時(shí),這些值只使用一次顯示,那肯定沒(méi)有必要使用session對(duì)象,最好使用request范圍。如果request屬性范圍也有一個(gè)限制,必須是服務(wù)器端跳轉(zhuǎn),在JSP中使用語(yǔ)句完成,但是在servlet中呢?就只能使用RequestDsipatcher接口完成,實(shí)際上語(yǔ)句也是使用包裝了此種應(yīng)用,既然RequestDispatcher是一個(gè)接口,所以必須通過(guò)其他方式實(shí)例化,通過(guò)request對(duì)象完成。JumpServlet.java:public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOExceptionreq.setAttribute(name,hello) ;/ 準(zhǔn)備跳轉(zhuǎn)到此頁(yè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生紀(jì)律衛(wèi)生管理規(guī)范
- 2025西安市職工大學(xué)輔導(dǎo)員考試試題及答案
- 2025燕山大學(xué)里仁學(xué)院輔導(dǎo)員考試試題及答案
- 2025蘇州高博軟件技術(shù)職業(yè)學(xué)院輔導(dǎo)員考試試題及答案
- 2025福建中醫(yī)藥大學(xué)輔導(dǎo)員考試試題及答案
- 室內(nèi)設(shè)計(jì)霸氣
- 生活標(biāo)志設(shè)計(jì)原理與應(yīng)用
- 四川北牧南江黃羊集團(tuán)有限公司招聘筆試題庫(kù)2025
- 四川自貢市大安區(qū)區(qū)屬國(guó)有企業(yè)招聘筆試題庫(kù)2025
- 醫(yī)院建筑設(shè)計(jì)案例分析
- 電弧增材制造工藝及其應(yīng)用
- YALEBROWN強(qiáng)迫量表完全
- 醫(yī)療機(jī)構(gòu)消毒記錄表清潔消毒日檢查記錄表
- 2024年全國(guó)甲卷高考物理試卷(真題+答案)
- 廣西壯族自治區(qū)桂林市2023-2024學(xué)年七年級(jí)下學(xué)期期末考試數(shù)學(xué)試題
- 2024年農(nóng)產(chǎn)品食品質(zhì)量安全檢驗(yàn)員技能及理論知識(shí)考試題庫(kù)(附含答案)
- 無(wú)人機(jī)足球團(tuán)體對(duì)抗賽項(xiàng)目競(jìng)賽規(guī)則
- 《建筑材料》教案
- 2024年山東省濟(jì)南市歷下區(qū)六年級(jí)下學(xué)期小升初招生語(yǔ)文試卷含答案
- DB3502-Z 5043-2018 浮筑樓板應(yīng)用技術(shù)規(guī)程
- 2019年4月自考00322中國(guó)行政史試題及答案含解析
評(píng)論
0/150
提交評(píng)論