HttpSession介绍


 

HttpSession介绍

  • HttpSession:服务器端会话管理技术
    本质也是采用客户端会话管理技术。
    只不过在客户端保存的是一个特殊标识,而共享的数据保存到了服务器端的内存对象中。
    每次请求时,会将特殊标识带到服务器端,根据这个标识来找到对应的内存空间,从而实现数据共享!
    是Servlet规范中四大域对象之一的会话域对象。
  • 作用:可以实现数据共享
域对象功能作用
ServletContext应用域在整个应用之间实现数据共享
ServletRequest请求域在当前的请求或请求转发之间实现数据共享
HttpSession会话域在当前会话范围之间实现数据共享

HttpSession常用方法

返回值方法名说明
voidsetAttribute(String name,Object value)设置共享数据
ObjectgetAttribute(String name)获取共享数据
voidremoveAttribute(String name)移除共享数据
StringgetId()获取唯一标识名称
voidInvalidate()让session立即失效

HttpSession获取

  • HttpSession实现类对象是通过HttpServletRequest对象来获取。
返回值方法名说明
HttpSessiongetSession获取HttpSession对象
HttpSessiongetSession(boolean create)获取HttpSession对象,未获取到是否自动创建

HttpSession的使用

  • 需求说明
    通过第一个Servlet设置共享数据用户名,并在第二个Servlet获取到。
  • 最终目的
    掌握HttpSession的基本使用,如何获取和使用。
  • 实现步骤
  1. 在第一个Servlet中获取请求的用户名。
  2. 获取HttpSession对象。
  3. 将用户名设置到共享数据中。
  4. 在第二个Servlet中获取HttpSession对象。
  5. 获取共享数据用户名。
  6. 将获取到的用户名响应给客户端浏览器。

下面是代码实例

前置条件:虚拟路径是session

第一个Java代码

/*
    Session的基本使用
 */
@WebServlet("/servletDemo01")
public class ServletDemo01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1,获取请求的用户名
        String username = req.getParameter("username");

        //2,获取HttpSession的对象
        HttpSession session = req.getSession();
        System.out.println(session);
        System.out.println(session.getId());

        //3,将用户名信息添加到共享数据中
        session.setAttribute("username",username);

    }

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

第二个Java代码

/*
    Session的基本使用
 */
@WebServlet("/servletDemo02")
public class ServletDemo02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1,获取HttpSession对象
        HttpSession session = req.getSession();
        System.out.println(session);
        System.out.println(session.getId());

        //2,获取共享数据
        Object username = session.getAttribute("username");

        //3,将数据响应给浏览器
        resp.getWriter().write(username + "");
    }

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

启动Tomcat后打开两个浏览器。先运行第一个浏览器,再运行第二个

然后控制台会出现这些玩意儿

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值