99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線(xiàn)電話(huà):13121318867

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


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

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

  一、JSP -> servlet

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

  <%......

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

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

  %>

  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)容。

  二、Servlet

  1、關(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類(lèi)做處理,這時(shí)的 url需要在 web.xml注冊(cè)兩次。

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

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

  2、在 servlet直接用 request對(duì)象,得到發(fā)送來(lái)的請(qǐng)求內(nèi)容;用 request.getSession(),得到session對(duì)象,從而得到會(huì)話(huà)內(nèi)容。

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

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

  參數(shù)為true (默認(rèn)),則如果“當(dāng)前用戶(hù)的會(huì)話(huà)對(duì)象”為空(第一次訪(fǎng)問(wèn)時(shí))則創(chuàng)建一個(gè)新的會(huì)話(huà)對(duì)象返回;

  參數(shù)為false,則如果“當(dāng)前用戶(hù)的會(huì)話(huà)對(duì)象”為空,則返回 null (即不自動(dòng)創(chuàng)建會(huì)話(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前不帶斜線(xiàn) /,如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前需要帶斜線(xiàn) /,如getServletConfig().getServletContext().getRequestDispatcher(”/test.jsp“).forward(request, response)

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線(xiàn)
立即咨詢(xún)
客服在線(xiàn)
立即咨詢(xún)
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }