日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP 页面传值方法总结

發(fā)布時(shí)間:2025/4/16 javascript 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP 页面传值方法总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? JSP 頁面間傳遞參數(shù)是項(xiàng)目中經(jīng)常需要的,這應(yīng)該算是 web 基本功吧。

? 試著將各種方式總結(jié)下來,需要時(shí)可以進(jìn)行權(quán)衡利弊選擇最合適的方式。

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

<a href="next.jsp?paramA=A&paramB=B...">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í)都將攜帶參數(shù)跳轉(zhuǎn)到 next.jsp 頁面中。

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

//內(nèi)嵌的 java 代碼 <%String paramA = request.getParameter("paramA"); %>//如果引入了 EL {param.paramA}

? ?優(yōu)點(diǎn):簡(jiǎn)單性和多瀏覽器支持(沒有瀏覽器不支持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 頁面中獲取對(duì)應(yīng)參數(shù)的方式與 (1)是類似的。

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

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

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

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

缺點(diǎn):

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

3. 設(shè)置 Cookie

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

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

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

? ?然后遍歷這個(gè)數(shù)組,使用getName()方法和getValue()方法來獲取每一個(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>沒有發(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ì)后,不僅僅是提供了頁面之間的傳遞,其實(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。

?

轉(zhuǎn)載于:https://www.cnblogs.com/java-class/p/6358964.html

總結(jié)

以上是生活随笔為你收集整理的JSP 页面传值方法总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。