天天看點

Cookie 進階

Cookie作為一個用戶端技術被廣泛的應用着。我今天也來談一談我對Cookie的了解。

具體的思路如下:

通過request.getCookies()方法找到目标Cookie,然後擷取内容

将最新的時間記錄存儲到Cookie中,并進行更新的操作

下面是詳細的代碼:

需要注意的是以下問題:

有中文出現時記得使用<code>response.setContentType("text/html;charset=UTF-8");</code>

獲得Cookie是擷取了一個cookie的數組,我們需要找出符合名字的目标Cookie才能對其進行操作

更新資料需要調用response.addCookie(targetCookie);即可

說是商品記錄,這裡隻是一個簡單的示意,是以并沒有連接配接資料庫進行相關的操作,而是利用一個DB類進行了模拟。下面是我的思路:

商品首頁:

首先是要顯示網站上所擁有的商品的名稱,使用者可以通過點選超連結浏覽商品的詳細的資訊

顯示使用者的商品浏覽記錄(tongguo cookie 進行實作)

商品的詳細的資訊界面:

首先是從超連結中擷取到使用者點選的商品的id,然後通過這個id 來從模拟的資料庫中獲得商品的詳細的資訊。

更新使用者的商品浏覽曆史資訊(這裡發生的情況較為的複雜,詳見代碼中的注釋資訊)

下面是代碼詳情:

首先是WebTitle.java(實際是一個Servlet檔案):

注意:

裡面有bean層(item),資料庫操作層(DB),和界面顯示View層

注意超連結的寫法,是伺服器内部進行的跳轉,是以應該用網站目錄進行使用

然後是商品詳情界面:

總結:

含金量第一層就是makeItemHistory方法,其處理了開發中可能遇到的很多的資訊。

LinkedList的使用是為了判斷分解後的元素清單中是否有正在通路的id資訊

下面是代碼的測試結果:

第一次通路網站:

Cookie 進階

第一次點選超連結可以看到商品的詳細的資訊

Cookie 進階

第二次點選超連結傳回後,重新整理首頁即可看到商品浏覽的曆史

Cookie 進階

第三次點選超連結後就達到了商品曆史記錄的上限

Cookie 進階

第四次通路後,傳回首頁,重新整理一下,便會将第一次的浏覽曆史記錄去除,添加上最新的浏覽記錄

Cookie 進階

在包含有三個曆史記錄中通路了其中一個,便會更新曆史記錄的順序:

Cookie 進階

Cookie技術應用到的地方很廣泛,應該對其進行更加靈活的研究

上述案例應該加上cookie生存期限。否則使用者退出後就會清空cookie的曆史記錄