閆會娟

[摘? ? 要] 電子商務網站開發(fā)中頁面轉向和參數傳遞技術是必不可少的。本文首先總結了ASP.NET網站開發(fā)中Web頁面轉向和參數傳遞的方法,分析比較了這些方法的優(yōu)缺點,然后分析了在電子商務網站開發(fā)中的頁面轉向和參數傳遞需求,并根據實際情況選擇用不同的方法進行實現。
[關鍵詞] 網頁轉向;參數傳遞;ASP.NET;購物網站
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 21. 064
[中圖分類號] F724.6;TP311.52? ? [文獻標識碼]? A? ? ? [文章編號]? 1673 - 0194(2018)21- 0152- 03
0? ? ? 引? ? 言
電子商務網站是非常典型的一類B/S模式的系統(tǒng),在開發(fā)中涉及不同類型的網頁跳轉和參數傳遞,如何根據不同的情形選擇不同的技術,是向學生傳遞的重要知識點,本文將首先介紹常用的頁面轉向方法和參數傳遞,再闡述根據電子商務網站開發(fā)中的情景選擇相應的實現方法。在ASP.NET中可以有多種方式實現頁面跳轉,在跳轉的同時將源頁面的重要信息(參數)傳遞到目標頁面,稱作頁面間的參數傳遞。使用不同的頁面跳轉和參數傳遞方法,其可見性、安全性和執(zhí)行效率不同。周廣清和劉建平[1]分析了web頁面跳轉和傳參方法,并在醫(yī)院信息系統(tǒng)中進行應用。徐少華、張華偉和李浩[2]也討論了web頁面值傳遞的實現方法。
1? ? ? 頁面轉向方法
1.1? ?用戶可見的超級鏈接
用戶可見的超級鏈接指當頁面加載后直接在頁面上呈現,在頁面設計階段完成。
網站中常用超級鏈接標記即可實現HTML頁面和ASPX頁面之間的相互跳轉,如:新書架,將在頁面顯示新書架,單擊該文字可從包含代碼的頁面跳轉到newBooks.aspx頁面。ASP.NET提供的服務器端控件HyperLink,功能與標記類似,區(qū)別在于可進行服務端編程,通過NavigateUrl屬性動態(tài)修改目標頁面。
為了實現動態(tài)跳轉功能,ASP.NET還有很多控件都可以設置NavigateUrl屬性來實現頁面轉向功能。如:Treeview、Menu等。Button控件的PostBackUrl屬性也可以用來設置單擊Button按鈕時跳轉到其他的頁面。
1.2? ?Response對象
Response對象ASP.NET的一個內置對象。它可以動態(tài)地響應客戶端的請求,并將動態(tài)生成的響應結果返回給客戶端瀏覽器[3]。
Response提供的Redirect()方法可以實現網頁重定向到指定的網頁,并可以通過參數向目標頁面?zhèn)鬟f信息。調用格式是:Response.Redirect("目標文件路徑[?參數列表]");,參數列表是可選的。如:Response.Redirect("~/pComment.aspx");可轉向到根目錄下的網頁pComment.aspx;需注意的是要跳轉到頁面資源在指定路徑下必須是存在的,否則會出錯。執(zhí)行該代碼后生成的URl地址包括參數將出現在瀏覽器的地址欄中,因此一般傳遞非保護性的信息。
1.3? ?Server對象
Server對象提供對服務器訪問的方法和屬性,大多數方法和屬性是作為實用程序的功能提供的。Transfer方法可以終止當前頁面的執(zhí)行,并開始執(zhí)行新的請求頁,新頁面仍使用前一頁面創(chuàng)建的應答流,且瀏覽器的URL不發(fā)生改變。利用Execute方法使用另一頁執(zhí)行當前請求。同樣可以實現頁面的跳轉。區(qū)別是Execute()方法執(zhí)行目標路徑代碼后會返回原程序。
1.4? ?靜態(tài)頁面的Web表單
每個ASPX網頁都是一個Web表單(Form)。由于運行機制不同,Web表單不支持HTML表單中的action和method屬性。但.net中創(chuàng)建的HTML仍可以使用。action用于指定提交到的頁面路徑,method表示傳遞信息的方式(get/post)。
2? ? ? 信息傳遞
2.1? ?URL地址傳參
2.1.1? ?傳參格式
在頁面路徑即URL地址中向目標頁面?zhèn)鬟f參數,使用'?'分隔頁面路徑和參數,參數有多個時用'&'分隔,每個參數都采用'參數名=參數值'的形式。如:
Response.Redirect("index.aspx?name=flower&pwd;=rose");
指跳轉到index.aspx頁面的同時向它傳遞兩個參數name和pwd,值分別是flower和rose。
2.1.2? ?接收參數
Request對象封裝了客戶端請求的信息,功能是從客戶端接收信息。包括URL參數傳遞的信息,HTML表單提交的參數,cookie及客戶端的IP等。
Request對象的QueryString可接收URL中的請求參數,包括上面提到的超級鏈接目標地址中傳遞的數據、get方法提交的數據和Redirect方法傳送的數據。它的調用格式是:Request.QueryString["參數名"];如:string str=Request.QueryString["name"].ToString();為接收URL中的參數name,并將值保存在變量str中。
2.2? ?傳遞用戶狀態(tài)信息
可以使用Cookie、Session和Application保存用戶狀態(tài)信息,在多個頁面共享,起到信息傳遞的作用,如用戶登錄狀態(tài)、購物車的信息、網站當前在線人數等。
2.2.1? ?Cookie
Cookie是保存在客戶端的加密文本,用來保存與Web站點關聯的有關訪問者的少量數據。用戶訪問網站時,可以讀取Cookie包含的信息,如用戶的登錄信息。創(chuàng)建Cookie的代碼如下:HttpCookiemyCookie = new HttpCookie("userName");myCookie.Value="小甜餅";。
通過Request.Cookies.AllKeys或Request.Cookies["cookie "].Value;獲取Cookie值。
2.2.2? ?會話狀態(tài)
Session對象由服務器進行管理,在服務器端存儲單個用戶會話相關的信息。會話結束后,Session即失去效用。可用于保存中短期或敏感的數據,不宜保存大量數據。它比Cookie安全且無須實例化。
2.2.3? ?Application
Application在服務器上存儲易變的全局型變量。為多個用戶共享的信息。當客戶第一次訪問某虛擬目錄的資源時被創(chuàng)建,退出應用程序或關閉服務器時被撤銷。采用鍵值對的形式創(chuàng)建對象,為避免沖突調用Application對象時需要鎖定。
3? ? ? 電子商務網站中的頁面轉向和參數傳遞
電子商務網站開發(fā)中頁面轉向和參數傳遞頻頻出現(如圖1所示),而且與服務器控件和數據綁定技術配合使用。在頁面上顯示的超級鏈接多采用標記。在電子商務網站中,商品信息來自于數據庫,并且需要將部分信息設置為超級鏈接,此時顯示的鏈接文本和傳遞的參數是綁定數據源中的字段,如打開暢銷品列表中某商品詳情頁面的代碼:
實現了單擊商品名稱(字段Name的值)時,從當前頁面跳轉到ProductDetail.aspx,并將該商品的ID(ID字段的值)作為參數值。
網站根據用戶行為進行跳轉和信息傳遞時,無安全要求的信息如商品類別ID可以使用URL傳遞,以打開某類的商品信息。用戶的登錄狀態(tài)、用戶名需要在不同的頁面間傳遞,可以采用Session來實現。
購物車信息需要在多個頁面間共享,主要保存商品信息包括商品名稱、購買數量、購買價格、折扣信息、顏色、尺碼等。通常用Session實現購物車功能,session對象的值可以是簡單類型,也可以是符合類型。商品信息屬于二維結構,可采用DataTable或ArrayList對象,以方便處理,再保存到Session中以實現頁面間共享的功能。語句Session[“SHOPPINTCART”] = shoppingCartList;將保存有購物車信息的shoppingCartList保存到Session中,修改購物車信息時使用語句shoppingCartList = (ArrayList)Session[“SHOPPINTCART”];將Session中的商品信息轉換為相應的類型,如ArrayList,再通過shoppingCartList對象的方法修改購物車中的商品信息。
4? ? ? 結? ? 語
頁面轉向和頁面間參數傳遞是網站開發(fā)中的重要技術。為靈活正確地采用相應的方法,本文總結了Web開發(fā)中常用的頁面轉向和參數傳遞方法,并分析了每種方法的特點和適用情況。不同的頁面轉向和傳參方法,其外觀不同,具體功能有差異,對系統(tǒng)的穩(wěn)定性、安全性有影響,并以電子商務網站中典型的頁面轉向和傳參為例進行了說明。
主要參考文獻
[1]周廣清,劉建平.ASP.NET頁面跳轉和參數傳遞[J].醫(yī)療衛(wèi)生裝備,2015,36(3):73-75.
[2]徐少華,張華偉,李浩.在ASP.NET中實現Web頁面值傳遞方法的比較[J].武漢理工大學學報:信息與管理工程版,2006,28(6):37-40.
[3]程不攻,等.ASP.NET2.0動態(tài)網站開發(fā)教程[M].北京:清華大學出版社,2008.