日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

018_Session

發布時間:2025/4/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 018_Session 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. Session簡介

1. Session是基于Cookie的一種會話機制。 Cookie是服務器返回一小份數據給客戶端, 并且存放在客戶端上。Session數據存放在服務器端。

2. Session常用API

2.1. 得到會話ID: String id = session.getId();

2.2. 存值: session.setAttribute(name, value);

2.3. 取值: session.getAttribute(name);

2.4. 移除值: session.removeAttribute(name);

2.5. 強制干掉會話, 里面存放的任何數據就都沒有了: session.invalidate();

3. Session何時創建: 如果有在servlet里面調用了request.getSession()就創建了一個Session。

4. Session何時銷毀

4.1. session 是存放在服務器的內存中的一份數據, 即使關了瀏覽器, session也不會銷毀。

4.2. 關閉服務器session銷毀。

4.3. session會話時間過期。session默認有效期是30分鐘。

4.4. 主動調用session.invalidate()或者session.removeAttribute(name)清除session。

二. Session購物車實例

1. 新建一個UseSession的Web工程

2. 在WebContent下新建一個index.html

3. 編輯index.html

<!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>商品列表</title></head><body><a href="CartServlet.action?name=華為">華為</a><br/><a href="CartServlet.action?name=小米">小米</a><br/><a href="CartServlet.action?name=vivo">vivo</a><br/><a href="CartServlet.action?name=金立">金立</a><br/><a href="CartServlet.action?name=魅族">魅族</a><br/><a href="CartServlet.action?name=oppo">oppo</a><br/></body> </html>

4. 新建CartServlet.java和ClearCartList.java

5. 編輯CartServlet.java

package com.lywgames.myservlet;import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class CartServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 獲取商品idString name = new String(req.getParameter("name").getBytes("ISO8859-1"), "UTF-8");// 獲取session中的cartlist@SuppressWarnings("unchecked")Map<String, Integer> cartlist = (Map<String, Integer>)req.getSession().getAttribute("cartlist");// 如果cartlist為空, session中還沒有購物車if(cartlist == null){cartlist = new HashMap<String, Integer>();cartlist.put(name, 1);}else{cartlist.put(name, cartlist.get(name) == null ? 1 : cartlist.get(name) + 1);}req.getSession().setAttribute("cartlist", cartlist);resp.setContentType("text/html;charset=utf-8");StringBuffer sb = new StringBuffer();sb.append("<!DOCTYPE html>").append("\r\n");sb.append("<html>").append("\r\n");sb.append("<head>").append("\r\n");sb.append("<meta charset='UTF-8'>").append("\r\n");sb.append("<title>購物車</title>").append("\r\n");sb.append("</head>").append("\r\n");sb.append("<body>").append("\r\n");for (Entry<String, Integer> kv : cartlist.entrySet()) {sb.append("<h3>").append(kv.getKey()).append(": ").append(kv.getValue()).append("</h3>").append("\r\n");}sb.append("<h1><a href='index.html'>繼續購物</a></h1>").append("\r\n");sb.append("<h1><a href='ClearCartList.action'>清空購物車</a></h1>").append("\r\n");sb.append("</body>").append("\r\n");sb.append("</html>").append("\r\n");resp.getWriter().println(sb.toString());}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} }

6. 編輯ClearCartList.java

package com.lywgames.myservlet;import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class ClearCartList extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 清楚cartlist的session緩存req.getSession().removeAttribute("cartlist");resp.sendRedirect("index.html");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} }

7. 編輯web.xml

8. 部署運行

9. 點擊幾個手機, 有的手機多點擊幾次, 到購物車頁面查看

10. 點擊清空購物車, 清空cartlist的session緩存, 繼續購物

11. 點擊華為, 新的購物車信息

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的018_Session的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。