同一用户不同请求之间的数据共享问题,用户第一次访问服务器,服务器会给此用户创建一个session对象存储在服务器中,并将该session对象的JSESSIONID使用Cookie技术存储到浏览器中,保证用户的其他请求能够获取到同一个session对象,也保证了不同请求能获取到共享数据,作用域是一次对话,这个比起Cookie要更重要,他保存在服务器中,比较安全。
HttpSession hs = req.getSession() //获取session对象
hs.setAttribute(String name, Object value) //存储数据
hs.getAttribute(String name) //获取数据,返回类型是Object
hs.getId() //获取JSESSIONID
hs.setMaxInactiveinterval(秒数) //设置session的有效时间
hs.invalidate() //设置session强制失效
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/a")
public class SessionDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
session.setAttribute("username","root");
String id = session.getId();
Object username = session.getAttribute("username");
System.out.println(id + "------" + username);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}