- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Java Web會(huì )話(huà)技術(shù)Session的簡(jiǎn)單使用
Session技術(shù)是將信息保存在服務(wù)端,而客戶(hù)端需要接收、記錄和回送Session的ID,所以Session通常情況下是借助Cookie技術(shù)來(lái)傳遞ID給服務(wù)端的,服務(wù)端拿到session id之后查詢(xún)內存中對應的記錄。
一個(gè)客戶(hù)端對應一個(gè)Session,而一個(gè)Session有多個(gè)Attribute,每一個(gè)Attribute有唯一的name。
編寫(xiě)代碼證明提出的觀(guān)點(diǎn):
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); PrintWriter writer = resp.getWriter(); // 給session綁定一個(gè)user對象 session.setAttribute("user", new User(1, "kongsam")); List<String> users = new ArrayList<>(); users.add("kongsam"); users.add("xiaoming"); users.add("xiaohong"); // 給session綁定一個(gè)list數組 session.setAttribute("list", users); // 最后打印輸出 writer.println("JSESSIONID = " + session.getId()); writer.println("object => user = " + session.getAttribute("user").toString()); for (String user : users) { writer.println("list => user = " + user); } }
兩個(gè)不同的瀏覽器就是兩個(gè)不同的客戶(hù)端,這兩個(gè)客戶(hù)端對應不同的JSESSIONID。
Cookie的工作原理以及講解請見(jiàn):
在現實(shí)生活中,當你去理發(fā)店理發(fā)時(shí),你可以選擇在前臺辦理一張會(huì )員卡,前臺工作人員將你的基本信息和之后的消費信息等都存儲到店家電腦的硬盤(pán)上,在以后消費的時(shí)候你僅憑一張會(huì )員卡就可以查詢(xún)到你所有的信息和消費記錄。注意,這里的你是指客戶(hù)端,前臺(店家)指的是服務(wù)端。
SessionDemo01是用來(lái)創(chuàng )建一個(gè)假的數據庫,并且把這個(gè)數據庫存放到Session中進(jìn)行保管。
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); // 創(chuàng )建一個(gè)假數據庫 Map<String, VipUser> vipUsers = new HashMap<>(); vipUsers.put("kongsam", new VipUser(1, "kongsam", "123", 50)); vipUsers.put("xiaoming", new VipUser(2, "xiaoming", "123", 100)); vipUsers.put("xiaohong", new VipUser(3, "xiaohong", "123", 200)); // 將假數據庫的數據存放到Session中 session.setAttribute("vipUsers", vipUsers); }
然后SessionDemo02用于訪(fǎng)問(wèn)Session里vipsUsers數據庫,如果用戶(hù)沒(méi)有辦理或者不存在該用戶(hù)則為其注冊一個(gè)新VIP。
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); HttpSession session = req.getSession(); // 獲取username String username = req.getParameter("username"); // 從Session中取出數據庫 Map<String, VipUser> maps = (Map<String, VipUser>) session.getAttribute("vipUsers"); // 判斷數據庫中是否有和username匹配的用戶(hù) if (maps.get(username) != null && maps.get(username).getUsername().equals(username)) { resp.getWriter().println(maps.get(username).getUsername() + "您好,您目前的積分是: " + maps.get(username).getPoints()); } else { resp.getWriter().println("您還沒(méi)有辦理會(huì )員卡,前臺正在為您辦理中...,請刷新頁(yè)面。"); maps.put(username, new VipUser(1, username, "123", 50)); session.setAttribute("vipUsers", maps); } }
來(lái)看看效果吧!
以上就是Java Web會(huì )話(huà)技術(shù)Session的簡(jiǎn)單使用的詳細內容,更多關(guān)于Java Session的使用的資料請關(guān)注腳本之家其它相關(guān)文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站