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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...

發(fā)布時間:2025/5/22 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

頁面?zhèn)髦?-最佳答案6種方式:

一. 使用QueryString變量
QueryString是一種非常簡單也是使用比較多的一種傳值方式,但是它將傳遞的值顯示在瀏覽器的地址欄中,如果是傳遞一個或多個安全性要求不高或是結構簡單的數(shù)值時,可以使用這個方法。

Response.Redirect( "target.aspx?param1=hello?m2=hi ")
接收頁面: string str = Request.QueryString["param1"];
string str1 = Request.QueryString["param2];
二.使用Cookie對象變量(Cookie是存放在客戶端的)
設置Cookie: HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);

獲取Cookie:
string name= Request.Cookie["name"].Value.ToString();

三. 使用Session變量(session是存放在服務器端的)
設置Session: Session["name"] ="hello";
獲取Session: string name = Session["name"].ToString();
四.使用Application 對象變量
Application對象的作用范圍是整個全局,也就是說對所有用戶都有效。此種方法不常使用,因為Application在一個應用程序域范圍共享,所有用戶可以改變及設置其值,故只應用計數(shù)器等需要全局變量的地方。
設置Application : Application["name"] = ="hello";
獲取Application : string name = Application["name"].ToString();
五. PostBackUrl()方法
default.aspx頁面:

Code
1 <asp:Button ID="Button1" Runat="server" Text="PostToAnotherPage" PostBackUrl="~/Default2.aspx" />
2
default2.aspx頁面:

Code
1 if (PreviousPage != null)
2 {
3 TextBox textBox1 = (TextBox)PreviousPage.FindControl("TextBox1");
4 Response.write(textBox1.Text );
5 }

六.使用Server.Transfer方法
這個才可以說是面象對象開發(fā)所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。下面這個代碼是展示在需要很多個參數(shù)的時候,使用的方法,如果參數(shù)比較少就沒必要使用這個方法了.
如果讓所有的查詢頁面都繼承一個接口,在該接口中定義一個方法,該方法的唯一作用就是讓結果頁面獲得構建結果時所需的參數(shù),就可實現(xiàn)多頁面共享一個結果頁面操作!



【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】



JSP 頁面?zhèn)髦捣椒偨Y:4種

閱讀目錄

  • 1. URL 鏈接后追加參數(shù)
  • 2. Form
  • 3. 設置 Cookie
  • 4. 設置 Session

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

? 試著將各種方式總結下來,需要時可以進行權衡利弊選擇最合適的方式。

回到頂部

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ù)跳轉(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ù)列表構造出來;

缺點:

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。

?

?

?

【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】

?

?

?

跨頁面?zhèn)髦档膸追N簡單方式3種

方法一:

通過URL傳值

eg:

?

location.href="跨頁面1-2.html?age=18&gender=man";

在下個頁面接收:

?

?

//1、location.search獲取get請求的參數(shù) 獲取到的數(shù)據(jù),是以?開頭的 var search=location.search; //2、如果還想要獲取確定的數(shù)據(jù),可以解析字符串 function parse(search){//從第二個字符開始截取 ,獲取到第二個開始后面所有的字符var str=search.substring(1);var result={};//分割字符串 -->產(chǎn)生字符串數(shù)組var strs=str.split("&");//遍歷數(shù)組中的每一個元素strs.forEach(function(v){//偽代碼:v="age=18"var keyvalue=v.split("=");var name=keyvalue[0];var value=keyvalue[1];result[name]=value;})return result; }var r=parse(search);

方法二:

?

使用h5的localStorage,或者sessionStorage存儲對象類型

?

存儲對象的正確的方式: var p2={name:"周瑜",age:16}; var s2=JSON.stringify(p2); //將對象"序列化"為JSON數(shù)據(jù)(字符串格式)localStorage.setItem("p2",s2); //以字符串格式存儲信息var s2_2=localStorage.getItem("p2"); //獲取存儲的信息,也是字符串格式var p2_2=JSON.parse(s2_2); //將JSON數(shù)據(jù)反序列化為對象

?

?

localStroage和sessionStorage使用大致相同,他們的不同之處在于,localstroage是永久保存,而sessionstroage是會話存在,

當會話結束,sessionstroage保存值也會清空。

方法三:

使用cookie保存:

原生cookie

?

//1、保存一條數(shù)據(jù) document.cookie="name=abc"; document.cookie="age=18"; //2、獲取所有數(shù)據(jù) var cookie=document.cookie; console.log(cookie); //"name=abc; age=18; PHPSESSID=fr1njdv6apf3neoj5nehntrps7" //之后可以解析字符串,獲取指定的數(shù)據(jù)內(nèi)容//3、設置cookie的有效期 document.cookie="id=666;expires="+new Date("2017-10-22 08:00");

jQuery.cookie.js插件

?

?

//第一種類型:會話cookie// //1、設置值 // $.cookie("phone","13188886666"); // $.cookie("email","123@qq.com");// //2、獲取值 // var phone=$.cookie("phone"); // console.log(phone);// var email=$.cookie("email"); // console.log(email); //第二種類型:設置長期cookie(具有指定有效期) // $.cookie("address","廣東深圳市",{ // expires:7 //expires不僅僅可以是日期類型的對象,也可以是以天為單位的數(shù)字 // });// $.cookie("tel","0755-88888888",{ // expires:1/24 //該cookie值就會保存一小時 // });// $.cookie("birthday","1.1",{ // expires:new Date("2018-01-01 08:00") //對于這樣的過期時間,已經(jīng)在內(nèi)部處理好了時區(qū)問題 // }); //刪除指定的cookie $.removeCookie("birthday");


使用cookie可用來跨頁面?zhèn)髦?狀態(tài)保持

?

?

?

?

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/chenhongshuang/p/8678472.html

總結

以上是生活随笔為你收集整理的【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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