什么是session
- 服务器会给每一个用户(服务器)创建一个session对象
- 一个session独占一个浏览器 只要这个浏览器没有关闭 这个session一直存在
- 示例:用户登录之后 整个网站都可以访问 (保存用户的信息)

Session和Cookie的区别
- Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
- session把用户的数据写到用户独占的session中,在服务器端保存(保存重要的信息)
- session对象由服务器端创建
使用场景
- 保存一个登录用户信息
- 购物车信息
- 在整个网站中经常会使用的数据
使用session
//获取session的ID 传如信息public class SessionDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//解决乱码信息req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//得到sessionHttpSession session = req.getSession();//给session中传入东西session.setAttribute("user",new Person("翠花", 18));String id = session.getId();//判断是不是新创建的if(session.isNew()){resp.getWriter().write("session创建成功,session的ID为:"+id);}else {resp.getWriter().write("session已经在服务器中存在了,ID为:"+id);}//session创建的时候做了什么事情//Cookie cookie = new Cookie("JSESSIONID", id);//resp.addCookie(cookie);}}//获取session中的值public class SessionDemo02 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//解决乱码信息req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//获得sessionHttpSession session = req.getSession();resp.getWriter().write(session.getAttribute("user").toString());}}//手动删除session的信息 和注销sessionpublic class SessionDemo03 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session = req.getSession();//删除session的属性session.removeAttribute("user");//注销sessionsession.invalidate();resp.getWriter().write("操作成功");}}
web.xml中配置
<!--配置session信息--><!--session-timeout 设置session的过期时间--><session-config><!--15分钟后session自动过期 单位:分钟--><session-timeout>1</session-timeout></session-config>
Cookie和Session 像是箱子和钥匙的关系
- Cookie的信息保存在客户端
- Session的信息保存在服务器端 用户只能获得Session的ID 通过唯一的ID 访问session中的数据
