返回顶部
首页 > 资讯 > 后端开发 > Python >Java Web会话技术Session的简单使用
  • 418
分享到

Java Web会话技术Session的简单使用

2024-04-02 19:04:59 418人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录什么是SessionSession如何工作结合代码理解Session什么是Session Session技术是将信息保存在服务端,而客户端需要接收、记录和回送Session的ID

什么是Session

Session技术是将信息保存在服务端,而客户端需要接收、记录和回送Session的ID,所以Session通常情况下是借助Cookie技术来传递ID给服务端的,服务端拿到session id之后查询内存中对应的记录。

一个客户端对应一个Session,而一个Session有多个Attribute,每一个Attribute有唯一的name。

编写代码证明提出的观点:


protected void doGet(httpservletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    HttpSession session = req.getSession();
    PrintWriter writer = resp.getWriter();
    // 给session绑定一个user对象
    session.setAttribute("user", new User(1, "kongsam"));
    List<String> users = new ArrayList<>();
    users.add("kongsam");
    users.add("xiaoming");
    users.add("xiaohong");
    // 给session绑定一个list数组
    session.setAttribute("list", users);
    // 最后打印输出
    writer.println("jsESSIONID = " + session.getId());
    writer.println("object => user = " + session.getAttribute("user").toString());
    for (String user : users) {
        writer.println("list => user = " + user);
    }
}

两个不同的浏览器就是两个不同的客户端,这两个客户端对应不同的JSESSIONID。

Cookie的工作原理以及讲解请见://www.jb51.net/article/212734.htm

Session如何工作

在现实生活中,当你去理发店理发时,你可以选择在前台办理一张会员卡,前台工作人员将你的基本信息和之后的消费信息等都存储到店家电脑的硬盘上,在以后消费的时候你仅凭一张会员卡就可以查询到你所有的信息和消费记录。注意,这里的你是指客户端,前台(店家)指的是服务端。

结合代码理解Session

SessionDemo01是用来创建一个假的数据库,并且把这个数据库存放到Session中进行保管。


@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    HttpSession session = req.getSession();
    // 创建一个假数据库
    Map<String, VipUser> vipUsers = new HashMap<>();
    vipUsers.put("kongsam", new VipUser(1, "kongsam", "123", 50));
    vipUsers.put("xiaoming", new VipUser(2, "xiaoming", "123", 100));
    vipUsers.put("xiaohong", new VipUser(3, "xiaohong", "123", 200));
    // 将假数据库的数据存放到Session中
    session.setAttribute("vipUsers", vipUsers);
}

然后SessionDemo02用于访问Session里vipsUsers数据库,如果用户没有办理或者不存在该用户则为其注册一个新VIP。


@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    req.setCharacterEncoding("utf-8");
    resp.setCharacterEncoding("utf-8");
    resp.setContentType("text/html;charset=utf-8");
    HttpSession session = req.getSession();
    // 获取username
    String username = req.getParameter("username");
    // 从Session中取出数据库
    Map<String, VipUser> maps = (Map<String, VipUser>) session.getAttribute("vipUsers");
    // 判断数据库中是否有和username匹配的用户
    if (maps.get(username) != null && maps.get(username).getUsername().equals(username)) {
        resp.getWriter().println(maps.get(username).getUsername() + "您好,您目前的积分是: " + maps.get(username).getPoints());
    } else {
        resp.getWriter().println("您还没有办理会员卡,前台正在为您办理中...,请刷新页面。");
        maps.put(username, new VipUser(1, username, "123", 50));
        session.setAttribute("vipUsers", maps);
    }
}

来看看效果吧!

以上就是JAVA WEB会话技术Session的简单使用的详细内容,更多关于Java Session的使用的资料请关注编程网其它相关文章!

--结束END--

本文标题: Java Web会话技术Session的简单使用

本文链接: https://lsjlt.com/news/126371.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java Web会话技术Session的简单使用
    目录什么是SessionSession如何工作结合代码理解Session什么是Session Session技术是将信息保存在服务端,而客户端需要接收、记录和回送Session的ID...
    99+
    2024-04-02
  • Java cookie和session会话技术怎么使用
    这篇文章主要介绍“Java cookie和session会话技术怎么使用”,在日常操作中,相信很多人在Java cookie和session会话技术怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-07-05
  • Javaweb会话跟踪技术Cookie和Session的具体使用
    目录前言一.会话引入二.Cookie1.Cookie的理解2.Cookie生命周期3.Cookie有效路径4.Cookie使用细节三.Session1.Session基本原理2.Se...
    99+
    2024-04-02
  • ASP.NET MVC使用Session会话保持表单状态
    本篇实践在ASP.NET MVC 4下使用Session来保持表单的状态。 如上,输入俱乐部名称,点击"添加球员",输入球员名称。我们希望,点击"到别...
    99+
    2024-04-02
  • nodejs 的 session 简单使用
    session的本质使用cookie来实现。 原理大概是:http 带来服务端提前设置 cookie,服务端拿到标示用户身份的cookie, 再去固定地点(数据库,文件)检索出对应的用户身份。把身份赋值给本...
    99+
    2022-06-04
    简单 nodejs session
  • 使用Redis保存用户会话Session的案例分析
    这篇文章将为大家详细讲解有关使用Redis保存用户会话Session的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言PHP内置的绘画存储机制是把全部的会话数据...
    99+
    2024-04-02
  • Java Web中Ajax技术使用方法介绍
    目录前言一、Ajax与传统的Web应用模式的对比二、Ajax使用的技术三、XMLHttpRequest对象的具体使用1、初始化XMLHttpRequest对象2、XMLHttpReq...
    99+
    2022-11-13
    Java Web Ajax Java Ajax
  • Ubuntu 12.10中如何使用新的会话菜单
    这篇文章给大家介绍Ubuntu 12.10中如何使用新的会话菜单,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Ubuntu 12.10 改进的、紧凑的会话指示器。在 Ubuntu 12.10 中合并了之前分开的用户和系...
    99+
    2023-06-16
  • 史上最简单的技术解读,让老婆都能学会的50个IT术语!
    作为一名计算机系的学生,会不会经常对自己职业的未来感到迷茫呢,那么就让我们了解一下吧!在这个IT行业里,大部分人能找到自己适合的岗位,适合自己的工资,但部分人还是很迷茫,不知道自己适不适合这个行业,所以很害怕,当你看完下面这组数据,你就不会...
    99+
    2023-06-04
  • PHP 内置WEB服务器的简单使用
    目录直接启动一个内置服务器指定内置服务器的运行目录使用路由脚本在很多时候,我们需要简单的运行一个小 demo 来验证一些代码或者轮子是否可用,是否可以运行起来,但是去配 nginx ...
    99+
    2024-04-02
  • Nodejs中session的简单使用及通过session实现身份验证的方法
    session 不用多介绍,使一个http可以对应一个终端用户。 session的本质使用cookie来实现。 原理大概是:http 带来服务端提前设置 cookie,服务端拿到标示用户身份的cooki...
    99+
    2022-06-04
    身份验证 简单 方法
  • 怎么使用Flutter开发简单的Web应用
    本篇内容主要讲解“怎么使用Flutter开发简单的Web应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Flutter开发简单的Web应用”吧!为 W...
    99+
    2024-04-02
  • Android使用Activity实现简单的可输入对话框
    1、需求分析众所周知,在应用中这样那样的评论总是少不了的,有的应用是在底部直接加一个EditText和一个Button,让用户输入文字或者表情之后点击按钮提交;而有的虽然也放置了EditText,但仅仅是一个“摆设”,并不具备输入功能,用户...
    99+
    2023-05-30
    android activity 输入对话框
  • Java logback日志的简单使用
    目录说明 使用 常见问题 No such instance field: 'logger2' 说明 logback作为log4j的替代,有很多优势。要将logback应用到项目中,...
    99+
    2024-04-02
  • 【java学习】EasyExcel的简单使用
    EasyExcel的简单使用 前言Excel读1.实体类2.读监听器与测试类3.输出结果 Excel写1.实体类2.写入Excel的测试类3.输出结果 填充Excel1.Excel模板...
    99+
    2023-10-03
    java 学习
  • java反射技术的使用场景
    这篇文章主要介绍“java反射技术的使用场景”,在日常操作中,相信很多人在java反射技术的使用场景问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java反射技术的使用场景”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-03
  • java测试单元JUnit最简单的使用
    只是写一个小入门,简单输出文本。首先,创建一个MessageUtil类,用来测试 (推荐学习:java课程)package com.test.jiao; public class MessageUtil { pr...
    99+
    2018-11-15
    java教程 java
  • Java基础之Thymeleaf的简单使用
    Java代码 package com.zzx.controller; import com.zzx.model.User; import org.springframework...
    99+
    2024-04-02
  • 详解Java中Quartz的简单使用
    目录简单示例usingJobData非并发执行Scheduler 每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问的问题(jobDetail的实例也...
    99+
    2023-05-15
    Java Quartz使用 Java Quartz
  • java动态代理的简单使用
    本篇内容主要讲解“java动态代理的简单使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java动态代理的简单使用”吧!//---------------接口package refl...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作