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

熱線電話:13121318867

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


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

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

  一、JSP -> servlet

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

  <%......

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

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

  %>

  click me

  ...

  1、對(duì)于該JSP頁面 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類做處理,這時(shí)的 url需要在 web.xml注冊(cè)兩次。

  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對(duì)象,得到發(fā)送來的請(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ì)象”為空(第一次訪問時(shí))則創(chuàng)建一個(gè)新的會(huì)話對(duì)象返回;

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

  利用這個(gè)方法可以判斷 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對(duì)象使用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)

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

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

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

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } 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, // 表示用戶后臺(tái)檢測極驗(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ù)說明請(qǐng)參見: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); }