国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

手把手做一個JSP入門程序(七):使用Cookie實現(xiàn)瀏覽記錄

2019-11-08 02:36:30
字體:
供稿:網(wǎng)友

使用Cookie實現(xiàn)瀏覽記錄

??為了能夠?qū)崿F(xiàn)保存用戶瀏覽記錄的功能,我們可以將用戶瀏覽過的書籍的ISBN保存到Cookie中,然后在服務(wù)器通過Cookie中的ISBN來獲取到相應(yīng)書籍的信息。

修改BookDAO,實現(xiàn)通過多個ISBN獲取書籍信息

??在BookDAO.java中添加如下方法。其中isbnStr是多個isbn字符串通過”,”間隔連接成的一個字符串。

/* * 通過一系列isbn獲取書籍信息 */public ArrayList<Book> getViewList(String isbnStr){ ArrayList<Book> books = new ArrayList<Book>();// 返回最多4條信息 int maxRecordCount = 4; if(isbnStr != null && isbnStr.length() > 0){ String[] isbns = isbnStr.split(","); if(isbns.length >= maxRecordCount){// 商品記錄數(shù)大于等于4條,只取最新4條 for(int i = isbns.length - 1; i >= isbns.length-maxRecordCount; i --){ books.add(getBookByISBN(isbns[i])); } }else{// 商品記錄數(shù)小于4條 for(int i = isbns.length-1; i >= 0; i --){ books.add(getBookByISBN(isbns[i])); } } return books; }else{ return null; }}

在single.jsp中顯示瀏覽記錄

??我們需要將以下這段代碼替換為JSP代碼。

<div class="col-md-2 record"> <div class="rec-head">瀏覽記錄</div> <div class="rec-card"> <a href="single.html"><img class="img-rec pull-left" src="img/圖解網(wǎng)站分析.jpg"/></a> <div class="pull-left txt-rec">圖解網(wǎng)站分析<br />¥34.8</div> </div> <div class="rec-card"> <a href="single.html"><img class="img-rec pull-left" src="img/圖解網(wǎng)站分析.jpg"/></a> <div class="pull-left txt-rec">圖解網(wǎng)站分析<br />¥34.8</div> </div> <div class="rec-card"> <a href="single.html"><img class="img-rec pull-left" src="img/圖解網(wǎng)站分析.jpg"/></a> <div class="pull-left txt-rec">圖解網(wǎng)站分析<br />¥34.8</div> </div> <div class="rec-card"> <a href="single.html"><img class="img-rec pull-left" src="img/圖解網(wǎng)站分析.jpg"/></a> <div class="pull-left txt-rec">圖解網(wǎng)站分析<br />¥34.8</div> </div></div>為了能夠記錄和顯示瀏覽記錄,我們將有如下過程: 獲取Cookie中的isbn字符串添加當(dāng)前瀏覽的圖書的isbn更新Cookie利用BookDAO從數(shù)據(jù)庫獲取數(shù)據(jù)顯示瀏覽記錄<% // 往Cookie中添加當(dāng)前訪問的書籍isbn String isbnStr = ""; // 從客戶端獲取Cookie集合 Cookie[] cookies = request.getCookies(); if(cookies != null && cookies.length > 0){ for(Cookie c:cookies){ if(c.getName().equals("BookViewRecordCookie")){ isbnStr = c.getValue(); } } } // 添加當(dāng)前訪問的記錄 isbnStr += request.getParameter("isbn") + ","; // 記錄超過4條時,只去最新4條 String[] arr = isbnStr.split(","); if(arr != null && arr.length > 0){ if(arr.length >= 4){ isbnStr = ""; for(int i=arr.length-1; i >= arr.length-4; i --){ isbnStr = arr[i] + "," + isbnStr; } } } // 創(chuàng)建最新的Cookie Cookie cookie = new Cookie("BookViewRecordCookie",isbnStr); response.addCookie(cookie);%><div class="col-md-2 record"> <div class="rec-head">瀏覽記錄</div> <% //利用BookDAO獲取瀏覽記錄 ArrayList<Book> booksView = bookdao.getViewList(isbnStr); if(booksView != null && booksView.size() > 0){ for(Book b: booksView){ System.out.Cookie和session 由于HTTP 是一個無狀態(tài)協(xié)議,所以為了記住狀態(tài)(比如某人是否已經(jīng)登錄)便產(chǎn)生了Cookie。Cookie是保存在客戶端的瀏覽器的,因此也產(chǎn)生了一個弊端:Cookie中的數(shù)據(jù)可以被偽造。而Session則是保存在服務(wù)器中。session 通過一個session_id來與客戶端的Cookie進行交互,該session_id則存在客戶端的Cookie中。與node.js需要手動創(chuàng)建session不同,jsp中的session會在用戶訪問時自動進行創(chuàng)建。

??到這里我們的這個JSP程序也就完成啦!中間涉及的知識點好好掌握下,就可以寫簡單的程序啦!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 泽库县| 班戈县| 新晃| 象州县| 临沭县| 黔西县| 仙居县| 靖州| 马边| 特克斯县| 汶川县| 和林格尔县| 固阳县| 宜兴市| 友谊县| 吕梁市| 扶风县| 增城市| 法库县| 城固县| 绩溪县| 淳化县| 太湖县| 嘉祥县| 桦川县| 繁昌县| 桂阳县| 固原市| 吴旗县| 奉节县| 灵川县| 荥阳市| 临海市| 体育| 江陵县| 阿拉尔市| 庐江县| 高淳县| 怀安县| 肃宁县| 博乐市|