成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java中的cookie管理庫(kù)與J2ME結(jié)合

開(kāi)發(fā) 前端
本文向大家簡(jiǎn)單介紹一下J2ME應(yīng)用程序在幾種情況下cookie操作,基于網(wǎng)絡(luò)瀏覽的Java將需要cookie操作模塊以支持狀態(tài)管理。

你對(duì)Java中的cookie管理庫(kù)與J2ME結(jié)合是否熟悉,這里和大家分享一下,為了與網(wǎng)站交互,基于Internet的客戶(hù)端應(yīng)用程序經(jīng)常扮演小型網(wǎng)絡(luò)瀏覽器的角色。這些站點(diǎn)使用cookies進(jìn)行狀態(tài)管理以維護(hù)用戶(hù)的會(huì)話(huà)數(shù)據(jù)。

在J2ME中的狀態(tài)管理

J2ME應(yīng)用程序在以下幾種情況要求cookie操作:

◆網(wǎng)站交互:為了與網(wǎng)站交互,基于Internet的客戶(hù)端應(yīng)用程序經(jīng)常扮演小型網(wǎng)絡(luò)瀏覽器的角色。這些站點(diǎn)使用cookies進(jìn)行狀態(tài)管理以維護(hù)用戶(hù)的會(huì)話(huà)數(shù)據(jù)。

◆網(wǎng)絡(luò)服務(wù)實(shí)現(xiàn):網(wǎng)絡(luò)服務(wù)承諾使網(wǎng)絡(luò)成為電腦機(jī)器的友好地方。一個(gè)都希望的允許機(jī)器-網(wǎng)站進(jìn)行交互的方法就是在網(wǎng)站前面有一個(gè)網(wǎng)絡(luò)服務(wù)。因此,網(wǎng)絡(luò)服務(wù)將目標(biāo)網(wǎng)站的視窗十分友好地呈現(xiàn)在機(jī)器面前。這種網(wǎng)絡(luò)服務(wù)的實(shí)現(xiàn)將需要cookie操作以達(dá)到真正的網(wǎng)站交互。

◆網(wǎng)絡(luò)瀏覽:基于網(wǎng)絡(luò)瀏覽的Java將需要cookie操作模塊以支持狀態(tài)管理。

為了執(zhí)行客戶(hù)端cookie操作,先看下面幾個(gè)步驟:

◆檢索cookies:

1.從收到的HTTP頭提取cookies。

2.分別解析cookies的組成部分(名稱(chēng),值,路徑等等)。

3.判定主機(jī)是否允許設(shè)置這些cookies。

◆發(fā)送cookies:

1.判定哪些cookies能被發(fā)送給主機(jī)。

2.對(duì)于多個(gè)cookies,判定必須發(fā)送的cookies的順序。

3.與外發(fā)的HTTP頭一起格式并發(fā)送cookies。

一個(gè)客戶(hù)端Java應(yīng)用程序須遵循上面的所有步驟,但是用RFC2965列出的規(guī)范執(zhí)行上述步驟將消耗大量的時(shí)間并分散開(kāi)發(fā)者在核心程序上的注意力。結(jié)果,開(kāi)發(fā)者經(jīng)常選擇向規(guī)范妥協(xié)而用很容易就被破壞的隨意編寫(xiě)的cookie操作代碼結(jié)束。

例如,假設(shè)你想要寫(xiě)一個(gè)與網(wǎng)絡(luò)商店應(yīng)用程序的servlet交互的Java客戶(hù)應(yīng)用程序,在服務(wù)器端,當(dāng)servlet第一次通過(guò)調(diào)用request.getsession()為一個(gè)會(huì)話(huà)詢(xún)問(wèn)servlet容器時(shí),容器創(chuàng)建一個(gè)新的會(huì)話(huà)并且服務(wù)器用一個(gè)會(huì)話(huà)ID在并發(fā)請(qǐng)求時(shí)檢索會(huì)話(huà)對(duì)象,服務(wù)器自動(dòng)將這個(gè)會(huì)話(huà)ID作為一個(gè)HTTPcookie發(fā)送到客戶(hù)端。在并發(fā)請(qǐng)求時(shí),客戶(hù)端與請(qǐng)求一起回送同一個(gè)會(huì)話(huà)ID。服務(wù)器用ID區(qū)別正確的會(huì)話(huà)對(duì)象以便servlet處理請(qǐng)求。典型的客戶(hù)端代碼如下:

  1. /*取得cookie.*/...HttpURLConnectionhUC=
  2. (HttpURLConnection)url.openConnection();  
  3.  
  4. ...InputStreamis=huc.getInputStream();  
  5.  
  6. //從響應(yīng)中檢索會(huì)話(huà)ID.StringcookieVal=  
  7. hc.getHeaderField("Set-Cookie");  
  8.  
  9. StringsessionId;if(cookieVal!=null){sessionId=
  10. cookieVal.substring(0,cookieVal.indexOf(";"));}..  
  11.  
  12. ./*發(fā)送cookie.*/HttpURLConnectionhuc=  
  13. (HttpURLConnection)url.openConnection();  
  14.  
  15. if(sessionId!=null){huc.setRequestPRoperty("Cookie",sessionId);  
  16.  
  17. }InputStreamis=huc.getInputStream();...  

cookie規(guī)范RFC2965為cookies版本1定義了一個(gè)新報(bào)頭,Set-Cookie2。假如我們用新報(bào)頭升級(jí)服務(wù)器,上面的代碼將不能履行。上述代碼也不能處理多重cookies。另外,版本1的cookie值可以是一個(gè)加引號(hào)的字符串,假如會(huì)話(huà)cookie的值是一個(gè)包含分號(hào)的加引號(hào)字符串,這也將引起上述代碼不能履行。簡(jiǎn)而言之,上面的代碼片斷不是與cookie的版本使用孤立開(kāi)來(lái)的。

上述代碼對(duì)于只和一個(gè)特別的主機(jī)及路徑影射交互的簡(jiǎn)單程序是適合的,但對(duì)于一個(gè)更龐大的應(yīng)用程序,當(dāng)涉及多重主機(jī)及路徑時(shí)cookie管理將變得更復(fù)雜。開(kāi)發(fā)者實(shí)現(xiàn)cookie規(guī)范中的所有算法、安全檢查及平衡將證明是痛苦和徒然的。

進(jìn)入jCookie

為了減輕這種情形,我開(kāi)發(fā)了一個(gè)普通用途cookie庫(kù),命名為jCookie,用來(lái)實(shí)現(xiàn)cookie規(guī)范。這個(gè)庫(kù)使客戶(hù)端cookie操作所必需的額外代碼和努力最小化并讓開(kāi)發(fā)者的精力集中在核心應(yīng)用程序上。其他APIs庫(kù)也有(例如,Apache的HTTPClient),但是他們使用了從內(nèi)建本地的java.netAPIs移出的結(jié)構(gòu),因此需要一個(gè)新的學(xué)習(xí)過(guò)程。我的API是一個(gè)調(diào)用已存在的java.net對(duì)象的簡(jiǎn)單方法。
你也能使用現(xiàn)在發(fā)展的jCookie延伸版本,叫jCookieMicro,在J2ME移動(dòng)設(shè)備上創(chuàng)建一套令人激動(dòng)的能與網(wǎng)絡(luò)服務(wù)應(yīng)用程序交互的客戶(hù)系統(tǒng)。

現(xiàn)在我介紹jCookieAPI的主要行為,先從兩個(gè)主要數(shù)據(jù)結(jié)構(gòu)開(kāi)始:

1.Cookie類(lèi):此類(lèi)的一個(gè)實(shí)例表明一個(gè)獨(dú)立的cookie。它封裝了RFC2965定義的所有cookie屬性并提供用getters和setters訪問(wèn)這些屬性。

2.CookieJar類(lèi):此類(lèi)的一個(gè)實(shí)例被作為一個(gè)Cookie對(duì)象集的容器。它符合集合結(jié)構(gòu)并提供操作cookie集合的方法。

API提供兩個(gè)視野以同時(shí)滿(mǎn)足開(kāi)發(fā)者對(duì)于cookie透明操作的要求及開(kāi)發(fā)者對(duì)于高級(jí)特性的要求。下面的圖形說(shuō)明了這些視野或?qū)印?/p>

jCookie庫(kù)的分層視圖

jCookie庫(kù)的分層視圖

【編輯推薦】

  1. 深入探究J2ME Hashtable實(shí)現(xiàn)原理
  2. 探究J2ME中cookie庫(kù)的管理
  3. J2ME數(shù)據(jù)結(jié)構(gòu)中Hashtable和Vector的使用
  4. MotorolaJ2ME開(kāi)發(fā)時(shí)需要注意的幾個(gè)細(xì)節(jié)
  5. Java2平臺(tái)J2SE、J2EE、J2ME三大版本的區(qū)別

 

責(zé)任編輯:佚名 來(lái)源: knowsky.com
相關(guān)推薦

2010-09-30 08:49:17

cookieJ2ME

2010-09-29 08:57:04

J2ME前景

2010-10-09 15:40:19

CookieJ2ME

2011-05-12 14:34:55

cookieJ2ME

2010-09-30 12:53:00

J2MECSS

2009-06-23 11:30:16

RMSJ2ME

2010-09-30 09:16:04

cookieJ2ME

2009-09-04 11:10:51

開(kāi)源J2ME UI庫(kù)

2010-09-30 11:04:53

J2MERMS

2011-12-02 10:37:14

JavaJ2ME

2009-06-30 15:49:00

J2ME編程

2010-09-29 15:45:49

J2MEFontColor

2009-06-17 11:27:00

setClip方法J2ME

2010-09-30 09:56:26

J2ME Polish

2010-09-29 09:19:39

J2ME開(kāi)發(fā)工具

2010-09-29 15:35:04

Item類(lèi)J2ME

2010-09-29 10:41:18

J2MEJVM

2010-09-29 16:20:06

J2MEWeb服務(wù)API

2009-07-07 11:10:01

JSP實(shí)現(xiàn)通信

2011-07-21 16:03:12

J2ME
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 岛国av免费在线观看 | 精品一二区 | 99reav| 国产精品欧美一区二区 | 欧美日韩一区二区电影 | 欧美四虎 | 精品一区二区三区在线观看国产 | 欧美精品一区三区 | 亚洲精品第一国产综合野 | 91精品久久久久久久久中文字幕 | 国产精品性做久久久久久 | 国精产品一品二品国精在线观看 | 久久国产综合 | 亚洲人人 | 黄色免费网站在线看 | 精品www | 99热精品在线观看 | 天天天操| 中文字幕在线播放第一页 | 麻豆va| 91天堂| 美美女高清毛片视频免费观看 | 午夜电影网址 | 成人精品一区 | 欧美在线视频一区二区 | 91视频国产精品 | 成人免费大片黄在线播放 | 欧美成人一区二区三区 | 精品日韩一区二区 | 国产精品99久久久久久宅男 | 超碰av免费 | 欧美区在线 | 亚洲高清在线 | 欧美日韩国产一区二区三区 | 亚洲精品成人网 | 国产精品爱久久久久久久 | 亚洲美女网站 | 亚洲人人舔人人 | 国产精品中文字幕在线 | 岛国视频 | 91 久久|