# session保存作用域 ###### tags: `Java Web-Servlet` ### session保存作用域是和具體的某一個session對應的 用戶在登錄服務器後,服務器端會針對客戶端來判斷 若是首次登陸的客戶端,會生成新的ID,並且會將該ID的資料保存在對應的保存作用域 其他客戶端登陸後,因為使用的是不同ID,因此無法取用其他ID存放在保存作用域的資料 這是為了避免客戶端導入非正確客戶端的資料,導致顯示錯誤 ![](https://i.imgur.com/cvLYA9y.png) 前兩行是A客戶端,第三行是B客戶端嘗試取用A客戶端的資料,因為sessionID不同,因此無法獲取A客戶端保存的session,顯示null失敗 ![](https://i.imgur.com/0nlReFE.png) #### 常用的API: void session.setAttribute(k,v) Object session.getAttribute(k) void removeAttribute(k) ```java= //演示向HttpSession保存數據 public class Demo04Servlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getSession().setAttribute("uname","lina"); } } ``` ```java= //演示向HttpSession獲取數據 public class Demo05Servlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Object unameObj = request.getSession().getAttribute("uname"); System.out.println(unameObj); } } ``` ## 重點 #### 1.session保存作用域是和具體的某一個session對應的 #### 2.常用的APT: void session.setAttribute(k,v):設置session值的value,保存到key之中 Object session.getAttribute(k):利用session的key值,找到value void removeAttribute(k):刪除session中對應key的value