Session快速入门和原理分析

Session快速入门

Session概念:服务器会话技术 在一次会话的多次请求间共享数据 将数据保存在服务端的对象中 HttpSession

  • 服务器会给每一个用户(浏览器)创建一个Session对象
  • 一个Session独占一个浏览器 只要浏览器没有关闭 这个Session就存在
  • 用户登录之后 整个网站它都可以访问!-->保存用户的信息 保存购物车的信息

Session和Cookie的区别

  • Cookie时吧用户的数据写给用户的浏览器 浏览器保存(可以保存多个)
  • Session把用户的数据写到用户独占Session中 服务器保存(保存重要的信息 减少服务器资源的浪费)
  • Session对象有服务创建

快速入门:

HttpSession对象:

  • Object getAttribute(String name)
  • void setAttribute(String name,Object value)
  • void removeAttribute(String name)

使用场景

  • 保存一个登陆用户的信息
  • 购物车信息
  • 在整个网站中经常会使用的数据 我们将它保存在Session中

java代码

SessionDemo1

package com.bai.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("/SessionDemo1")
public class SessionDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //使用Session共享数据
        //1.获取Session
        HttpSession session = req.getSession();
        //2.存储数据
        session.setAttribute("msg","hello session");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

SessionDemo2

package com.bai.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("/SessionDemo2")
public class SessionDemo2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //使用Session共享数据
        //1.获取Session
        HttpSession session = req.getSession();
        //2.存储数据
        Object msg = session.getAttribute("msg");
        System.out.println(msg);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

运行结果

 

 

 Session原理分析

posted @ 2022-08-15 17:26  baimingze  阅读(48)  评论(0)    收藏  举报