濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > JSP頁(yè)面間的傳值方法總結(jié)

JSP頁(yè)面間的傳值方法總結(jié)

熱門標(biāo)簽:如何看懂地圖標(biāo)注點(diǎn) 電銷機(jī)器人免培訓(xùn) 給地圖標(biāo)注得傭金 外呼系統(tǒng)使用方法 海外圖書館地圖標(biāo)注點(diǎn) 南通通訊外呼系統(tǒng)產(chǎn)品介紹 自繪地圖標(biāo)注數(shù)據(jù) 潤(rùn)滑油銷售電銷機(jī)器人 電話機(jī)器人需要使用網(wǎng)絡(luò)嗎

前言

JSP 頁(yè)面間傳遞參數(shù)是項(xiàng)目中經(jīng)常需要的,這應(yīng)該算是 web 基本功吧。試著將各種方式總結(jié)下來(lái),需要時(shí)可以進(jìn)行權(quán)衡利弊選擇最合適的方式。下面來(lái)一起看看詳細(xì)的介紹:

1. URL 鏈接后追加參數(shù)

a href="next.jsp?paramA=AparamB=B..." rel="external nofollow" >URL 后面追加參數(shù)/a>

jsp:include page="next.jsp">jsp:param name="paramA" value="A"/>/jsp:include> 

jsp:forward page="next.jsp">jsp:param name="paramA" value="B"/>/jsp:forward> 

response.sendRedirect("next.jsp?paramA=AparamB=B...")

window.location = "next.jsp?paramA=AparamB=B..."

上述幾種代碼執(zhí)行時(shí)都將攜帶參數(shù)跳轉(zhuǎn)到 next.jsp 頁(yè)面中。

在 next.jsp 頁(yè)面中獲取對(duì)應(yīng)參數(shù)的方式如下:

//內(nèi)嵌的 java 代碼
%String paramA = request.getParameter("paramA"); %>

//如果引入了 EL
{param.paramA}

優(yōu)點(diǎn):簡(jiǎn)單性和多瀏覽器支持(沒(méi)有瀏覽器不支持URL)。

缺點(diǎn):

   1)傳輸?shù)臄?shù)據(jù)只能是字符串,對(duì)數(shù)據(jù)類型和大小都有一定的限制;

   2)傳輸數(shù)據(jù)的值會(huì)在瀏覽器地址欄里面被看到,安全性等級(jí)低。

2. Form

 form action="next.jsp" method="post"> 
  input type="text" name="paramA" value="A"> 
  input type="hidden" name="paramB" value="B"> 
  input type="submit" value="提交"> 
 /form> 

在 next.jsp 頁(yè)面中獲取對(duì)應(yīng)參數(shù)的方式與 (1)是類似的。

優(yōu)點(diǎn):

1)簡(jiǎn)單性和多瀏覽器支持(同樣沒(méi)有瀏覽器不支持 form);

2) 可以提交的數(shù)據(jù)量比 URL 方式要大的多;

3)傳輸?shù)闹禃?huì)在瀏覽器的地址欄中顯示出來(lái),但是有一點(diǎn)黑手段的同樣能從頁(yè)面源碼中將參數(shù)列表構(gòu)造出來(lái);

缺點(diǎn):

1)傳輸?shù)臄?shù)據(jù)也只能是字符串,對(duì)數(shù)據(jù)類型有一定的限制;

3. 設(shè)置 Cookie

用客戶端的認(rèn)證憑證小小 Cookie 當(dāng)然也能實(shí)現(xiàn) JSP 頁(yè)面的傳值。

 % 
  Cookie c=new Cookie("paramA","A"); 
  c.setMaxAge(60*60); //cookie 有效期1分鐘
  response.addCookie(c); //將cookie 添加到 http響應(yīng)中
  %>

想要在 next.jsp 頁(yè)面讀取 cookie,需要調(diào)用 request.getCookies() 方法來(lái)獲得一個(gè)javax.servlet.http.Cookie 對(duì)象的數(shù)組。

然后遍歷這個(gè)數(shù)組,使用getName()方法和getValue()方法來(lái)獲取每一個(gè)cookie的名稱和值。

//內(nèi)嵌的 java 代碼
%
 Cookie cookie = null;
 // 獲取cookies的數(shù)據(jù),是一個(gè)數(shù)組
 Cookie[] cookies = request.getCookies();
 if(cookies != null ){
  for (int i = 0; i  cookies.length; i++){
   cookie = cookies[i];
   out.print("參數(shù)名 : " + cookie.getName());
   out.print("br>");
   out.print("參數(shù)值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" br>");
   out.print("------------------------------------br>");
  }
 }else{
  out.println("h2>沒(méi)有發(fā)現(xiàn) Cookie/h2>");
 }
%>

//EL 獲取方式
${cookie.paramA.value}

優(yōu)點(diǎn):

1)Cookie 的值能夠持久化,即使客戶端機(jī)器關(guān)閉,下次打開還是可以得到里面的值;

2) Cookie 可以幫助服務(wù)器端保存多個(gè)狀態(tài)信息,但是不用服務(wù)器端專門分配存儲(chǔ)資源,減輕了服務(wù)器端的負(fù)擔(dān)。

缺點(diǎn):

1)雖然安全性相比 URL 和 Form 要提高了許多,但是也存在黑手段獲取客戶端 cookie,暴露客戶信息。

4. 設(shè)置 Session

個(gè)人認(rèn)為 session 和 cookie 一個(gè)在服務(wù)端一個(gè)在客戶端。

在它們中添加鍵值對(duì)后,不僅僅是提供了頁(yè)面之間的傳遞,其實(shí)是一種數(shù)據(jù)共享的解決方案。

 %  
 session.setAttribute("paramA","A"); 
 response.sendRedirect("next.jsp"); 
 %>

想要在 next.jsp 讀取 session 的方法:

//內(nèi)嵌java 片段
%=session.getAttribute("paramA") %>

//EL 獲取方式
{session.paramA}

Session 的優(yōu)缺點(diǎn)可以參照 Cookie。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • ajax的json傳值方式在jsp頁(yè)面中的應(yīng)用
  • JSP頁(yè)面間傳值問(wèn)題實(shí)例簡(jiǎn)析
  • JSP頁(yè)面?zhèn)髦祦y碼過(guò)濾方法

標(biāo)簽:銅川 黃石 貸款邀約 廣州 樂(lè)山 內(nèi)江 南京 大連

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP頁(yè)面間的傳值方法總結(jié)》,本文關(guān)鍵詞  JSP,頁(yè)面,間的,傳值,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP頁(yè)面間的傳值方法總結(jié)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于JSP頁(yè)面間的傳值方法總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    永顺县| 塘沽区| 慈溪市| 陈巴尔虎旗| 巴林右旗| 兴城市| 东台市| 禹城市| 白河县| 南和县| 赤峰市| 水富县| 会泽县| 浮山县| 旬邑县| 米脂县| 靖宇县| 南陵县| 方正县| 民丰县| 芒康县| 石屏县| 高安市| 磐安县| 信丰县| 太仆寺旗| 神农架林区| 烟台市| 文水县| 金华市| 横山县| 香港 | 托里县| 上思县| 桂阳县| 方正县| 岳阳市| 沾化县| 长葛市| 乡城县| 清流县|