最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年07月07日 11:34:45   作者:Orson  
JSP頁面間傳遞參數(shù)是經(jīng)常需要使用到的功能,有時還需要多個JSP頁面間傳遞參數(shù),下面這篇文章主要給大家介紹了關于JSP頁面間傳值方法的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看吧。

前言

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

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

<a href="next.jsp?paramA=A&paramB=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=A&paramB=B...")

window.location = "next.jsp?paramA=A&paramB=B..."

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

在 next.jsp 頁面中獲取對應參數(shù)的方式如下:

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

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

優(yōu)點:簡單性和多瀏覽器支持(沒有瀏覽器不支持URL)。

缺點:

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

   2)傳輸數(shù)據(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 頁面中獲取對應參數(shù)的方式與 (1)是類似的。

優(yōu)點:

1)簡單性和多瀏覽器支持(同樣沒有瀏覽器不支持 form);

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

3)傳輸?shù)闹禃跒g覽器的地址欄中顯示出來,但是有一點黑手段的同樣能從頁面源碼中將參數(shù)列表構(gòu)造出來;

缺點:

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

3. 設置 Cookie

用客戶端的認證憑證小小 Cookie 當然也能實現(xiàn) JSP 頁面的傳值。

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

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

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

//內(nèi)嵌的 java 代碼
<%
 Cookie cookie = null;
 // 獲取cookies的數(shù)據(jù),是一個數(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>沒有發(fā)現(xiàn) Cookie</h2>");
 }
%>

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

優(yōu)點:

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

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

缺點:

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

4. 設置 Session

個人認為 session 和 cookie 一個在服務端一個在客戶端。

在它們中添加鍵值對后,不僅僅是提供了頁面之間的傳遞,其實是一種數(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)缺點可以參照 Cookie。

總結(jié)

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

相關文章

最新評論

东安县| 临城县| 怀远县| 桑植县| 将乐县| 太康县| 竹溪县| 绥滨县| 兴安县| 昌乐县| 常熟市| 察哈| 平顶山市| 贵州省| 黄石市| 盐津县| 通化县| 潮州市| 奈曼旗| 柳江县| 台湾省| 清丰县| 佛学| 九龙坡区| 永济市| 义马市| 长葛市| 六安市| 德格县| 宁晋县| 娱乐| 宣化县| 广西| 休宁县| 烟台市| 惠东县| 晋宁县| 开远市| 沙雅县| 民勤县| 白银市|