999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談JavaWeb編程中頁(yè)面跳轉(zhuǎn)與數(shù)據(jù)共享

2013-12-31 00:00:00王欣
中國(guó)電子商情 2013年16期

引言:JavaWeb中有多種方式實(shí)現(xiàn)JSP/Servlet頁(yè)面之間的跳轉(zhuǎn)與數(shù)據(jù)共享,每種方式有各自的特點(diǎn),在實(shí)際編程過程中需要根據(jù)具體的場(chǎng)景選擇最合適的方式進(jìn)行跳轉(zhuǎn)或者數(shù)據(jù)共享。

一、引言

在JavaWeb編程中間經(jīng)常出現(xiàn)需要從一個(gè)JSP/Servlet頁(yè)面跳轉(zhuǎn)到另外一個(gè)JSP/Servlet頁(yè)面并且在這多個(gè)不同頁(yè)面之間共享數(shù)據(jù)信息的情況,如何選擇跳轉(zhuǎn)方式以及共享數(shù)據(jù)方式一直是JavaWeb編程初學(xué)者容易迷茫的地方。

二、跳轉(zhuǎn)的方式

JavaWeb的跳轉(zhuǎn)分兩種方式:重定向和轉(zhuǎn)發(fā)。重定向是被請(qǐng)求的JSP/Servlet頁(yè)面向客戶端IE響應(yīng)一個(gè)重定向狀態(tài)碼以及,轉(zhuǎn)自[星論文網(wǎng)]www.starlunwen.net重定向路徑后,客戶端IE根據(jù)響應(yīng)內(nèi)容自動(dòng)的向重定向路徑發(fā)送一個(gè)新的請(qǐng)求,重定向路徑的資源接收到請(qǐng)求后執(zhí)行完畢將結(jié)果響應(yīng)給客戶端IE。轉(zhuǎn)發(fā)是被請(qǐng)求的JSP/Servlet頁(yè)面代碼通過RequestDispatcher對(duì)象將當(dāng)前請(qǐng)求直接在服務(wù)器上轉(zhuǎn)交給新的目標(biāo)路徑,由目標(biāo)路徑資源執(zhí)行完畢將結(jié)果響應(yīng)給客戶端IE。

例如客戶端IE請(qǐng)求資源A,資源A跳轉(zhuǎn)到資源B,最終客戶端看到資源B的內(nèi)容。如果是在轉(zhuǎn)發(fā)模式下,客戶端IE向資源A發(fā)出的請(qǐng)求,直到資源B響應(yīng)才結(jié)束,整個(gè)過程只有一次請(qǐng)求響應(yīng)。如果是在重定向模式下,客戶端IE向資源A發(fā)送一個(gè)請(qǐng)求信息,當(dāng)資源A響應(yīng)客戶端重定向狀態(tài)碼時(shí)第一次請(qǐng)求就結(jié)束了,然后客戶端IE向資源B發(fā)出第二次請(qǐng)求,資源B進(jìn)行第二次響應(yīng),整個(gè)過程有兩次請(qǐng)求響應(yīng)。默認(rèn)情況下重定向的第二次請(qǐng)求不含有任何第一次請(qǐng)求用戶輸入的參數(shù)。

三、數(shù)據(jù)共享的方式

通過重定向或者轉(zhuǎn)發(fā)能夠在不同的JSP/Servlet頁(yè)面之間跳轉(zhuǎn),在這些跳轉(zhuǎn)頁(yè)面之間經(jīng)常需要使用一些共享數(shù)據(jù),JavaWeb提供了四種常用的方式來實(shí)現(xiàn)數(shù)據(jù)共享,分別是使用Cookie對(duì)象、HttpSession對(duì)象、ServletContext對(duì)象和HttpServletRequest對(duì)象。這四種方式雖然都能實(shí)現(xiàn)頁(yè)面之間數(shù)據(jù)共享,但是各自又有不同的特點(diǎn):

(一)使用Cookie對(duì)象時(shí),會(huì)生成Cookie數(shù)據(jù)保存在客戶端電腦,客戶端IE每次請(qǐng)求服務(wù)器資源時(shí)會(huì)將Cookie內(nèi)容跟隨請(qǐng)求對(duì)象一起發(fā)送到服務(wù)器,因此服務(wù)器上的JSP/Servlet頁(yè)面都能夠通過請(qǐng)求對(duì)象進(jìn)行Cookie內(nèi)容的訪問,從而實(shí)現(xiàn)數(shù)據(jù)共享。

(二)HttpSession對(duì)象存在于服務(wù)器內(nèi)存,每個(gè)客戶端的session是獨(dú)立的。在客戶端通過Cookie保存一個(gè)唯一的SessionId,每次請(qǐng)求時(shí)IE將這個(gè)SessionId跟隨請(qǐng)求一起交給服務(wù)器,服務(wù)器根據(jù)SessionId找到這個(gè)客戶端私有的HttpSession對(duì)象,同一個(gè)客戶端在不同的JSP/Servlet頁(yè)面都可以對(duì)自己的HttpSession對(duì)象進(jìn)行訪問,通過調(diào)用HttpSession的setAttribute()和getAttribute()方法實(shí)現(xiàn)數(shù)據(jù)共享。

(三)ServletContext對(duì)象存在于服務(wù)器內(nèi)存,任何JSP/Servlet頁(yè)面都能夠?qū)ervletContext對(duì)象進(jìn)行訪問,并且所有客戶端訪問的ServletContext對(duì)象是相同的,通過對(duì)ServletContext對(duì)象進(jìn)行訪問,通過調(diào)用ServletContext的setAttribute()和getAttribute()方法實(shí)現(xiàn)數(shù)據(jù)共享可以實(shí)現(xiàn)數(shù)據(jù)共享。

(四)HttpServletRequest對(duì)象在一次請(qǐng)求期間可以被傳遞給多個(gè)JSP/Servlet頁(yè)面,這些頁(yè)面可以通過調(diào)用HttpServletRequest的setAttribute()和getAttribute()方法實(shí)現(xiàn)數(shù)據(jù)共享。

四、如何選擇合適的方式

數(shù)據(jù)共享的方式有很多種,選擇哪種方式進(jìn)行數(shù)據(jù)共享就是一個(gè)需要斟酌的問題,下面是筆者總結(jié)的一些經(jīng)驗(yàn):

(一)如果希望這個(gè)數(shù)據(jù)在關(guān)閉客戶端IE甚至是電腦后再次訪問服務(wù)器時(shí)還能使用,通過Cookie對(duì)象進(jìn)行數(shù)據(jù)共享。典型的應(yīng)用場(chǎng)景如保存用戶的登錄信息進(jìn)行自動(dòng)登錄驗(yàn)證、保存用戶的偏好設(shè)置等。

(二)如果希望這個(gè)數(shù)據(jù)多次請(qǐng)求之間所有用戶訪問的結(jié)果相同,通過Servlet Context對(duì)象進(jìn)行數(shù)據(jù)共享。典型的應(yīng)用場(chǎng)景如在線用戶列表的顯示、聊天室的聊天信息傳遞等。

(三)如果這個(gè)數(shù)據(jù)希望在多次請(qǐng)求之間共享,并且每個(gè)用戶的數(shù)據(jù)私有,通過HttpSession對(duì)象進(jìn)行數(shù)據(jù)共享。典型的應(yīng)用場(chǎng)景如保存用戶驗(yàn)證信息在不同的頁(yè)面顯示。

(四)如果這個(gè)數(shù)據(jù)只有一次請(qǐng)求響應(yīng)過程有效,通過HttpServletRequest對(duì)象進(jìn)行數(shù)據(jù)共享。典型的應(yīng)用場(chǎng)景如關(guān)鍵字查詢、信息列表顯示、用戶信息查看等,基本上只要和查有關(guān)的都是通過HttpServletRequest對(duì)象。

另外對(duì)于跳轉(zhuǎn)的兩種方式如何選擇,基本上只要有通過HttpServletRequest對(duì)象進(jìn)行數(shù)據(jù)共享的頁(yè)面之間都需要使用轉(zhuǎn)發(fā)方式,因?yàn)橹囟ㄏ蚍绞綍?huì)產(chǎn)生一個(gè)新的請(qǐng)求將原有信息丟失。

五、結(jié)束語(yǔ)

本文對(duì)JavaWeb中頁(yè)面之間的跳轉(zhuǎn)和數(shù)據(jù)共享方式進(jìn)行了對(duì)比闡述,希望能夠解決初學(xué)者在學(xué)習(xí)這部分內(nèi)容時(shí)心中的疑惑。在實(shí)際開發(fā)中還需要讀者根據(jù)實(shí)際情況進(jìn)行分析,舉一反三來選擇最合適的方式。

參考文獻(xiàn)

[1]Marty Hall.Servlet與JSP權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2002.

[2]Hans Bergsten.JavaServer Pages,Third Edition[M].北京:中國(guó)電力出版社,2004.

[3]孫鑫.Java Web開發(fā)詳解[M].北京:電子工業(yè)出版社,2006.

主站蜘蛛池模板: 第一区免费在线观看| 狠狠色婷婷丁香综合久久韩国 | 国产精品美女自慰喷水| 青青久久91| 国产成人综合亚洲网址| 成年看免费观看视频拍拍| 国产91蝌蚪窝| 91无码视频在线观看| 国产人成乱码视频免费观看| 国产欧美日韩18| 91久久青青草原精品国产| 又黄又湿又爽的视频| 亚洲欧洲日产无码AV| 精品少妇人妻无码久久| 亚洲最大看欧美片网站地址| 成人一区专区在线观看| 亚洲最大在线观看| 国产精品第三页在线看| 在线永久免费观看的毛片| 欧美日韩91| 国产精品视频3p| 99中文字幕亚洲一区二区| 色哟哟国产精品一区二区| 免费毛片a| 欧美亚洲一二三区| 国产亚洲欧美在线中文bt天堂| 欧美区一区二区三| 爆操波多野结衣| 久久99精品久久久久久不卡| 成·人免费午夜无码视频在线观看| 欧美福利在线播放| 亚洲无线国产观看| 亚洲男人天堂2020| 亚洲精选高清无码| 国产成人福利在线视老湿机| 免费国产一级 片内射老| 欧洲精品视频在线观看| 性欧美久久| 亚洲高清日韩heyzo| 特黄日韩免费一区二区三区| 午夜激情福利视频| 亚洲欧州色色免费AV| 国产综合精品一区二区| 国产一区二区三区免费观看| 22sihu国产精品视频影视资讯| a天堂视频在线| 亚洲精品高清视频| 亚洲国产日韩一区| 久久 午夜福利 张柏芝| 波多野结衣在线一区二区| 精品欧美日韩国产日漫一区不卡| 午夜限制老子影院888| 第九色区aⅴ天堂久久香| 国产午夜福利亚洲第一| 少妇人妻无码首页| 亚洲手机在线| 日韩欧美视频第一区在线观看 | 亚洲AV无码不卡无码| 国产理论一区| 国产1区2区在线观看| 亚洲最大福利视频网| 久久亚洲天堂| AV片亚洲国产男人的天堂| 农村乱人伦一区二区| 韩国v欧美v亚洲v日本v| 狠狠做深爱婷婷久久一区| 99视频在线观看免费| 熟妇无码人妻| 色婷婷成人网| 日本精品影院| 91精品啪在线观看国产91| 网久久综合| 国产日本一区二区三区| 欧美中日韩在线| 韩日免费小视频| 亚洲一级色| 国产福利小视频高清在线观看| 国产欧美日韩资源在线观看| 日韩AV无码免费一二三区| 综合色亚洲| 91久久精品日日躁夜夜躁欧美 | www.youjizz.com久久|