JavaWeb初识 Session绘画跟踪技术

简介: Cookie绘画跟踪技术有一个很大缺点:信息不安全信息是暴露在服务器中的怎么办所以就有了Session技术Session技术的好处:隐藏用户信息,信息不再存储在客户端而是在服务器,客户端拿到只是服务器对象识别的唯一钥匙,在返回和钥匙相对应Session对象信息,可以有大的信息量(集合存储),因为信息都在服务器存储客户端只是拿着钥匙去调用而已。

Cookie绘画跟踪技术有一个很大缺点:信息不安全信息是暴露在服务器中的怎么办所以就有了Session技术
Session技术的好处:隐藏用户信息,信息不再存储在客户端而是在服务器,客户端拿到只是服务器对象识别的唯一钥匙,在返回和钥匙相对应Session对象信息,可以有大的信息量(集合存储),因为信息都在服务器存储客户端只是拿着钥匙去调用而已。
Session的调用过程:他有个Session池里面存放着Session对象
第一步先问你又没有Session对象 第一次肯定没有啊
第二步 知道你没有 咋办,创建呗,创建好了Session并将对象放到池子里,返回这个Session对象的唯一Session对象Id
第三步:拿到返回的Session对象ID通过Cookie将他存储在服务器上

那往后的调用就是
通过Cookie拿着你的Session_ID去找Session对象
2J_48IAI6_0V_MT6R_2M_O
X_UDURJC_C840NBMIF_CDJ

Session设置
Session 在服务器的生命周期是 无任何访问 30分钟外销毁
Session 可以设置有效时间,但是别设置很长时间 应该会占内存的

    <session-timeout>1</session-timeout><!--时间设置-->
    <cookie-config>
        <name>KAIGEJSESSIONID</name><Session JSESSIONID设置>
    </cookie-config>
</session-config>
 

JSESSIONID 是使用Cookie技术存放在浏览器内存中(存放的是唯一钥匙,而不是值)

创建SESSION
request.getSession(boolean); 自己选套餐
true 创建session的时候问浏览器是否给了jsession_id

   没有创建一个Session对象 仍进池里,生产出JSESSION_ID、返回Session对象
   有 去session对象池里抓对象 1.没有抓到 就创建一个
                                            2.有抓到就更新存活时间 返回对象

false 创建session的时候问浏览器是否给了jsessionid

    没有 就返回null
    有 就去池里抓1.有对象就更新存活世界并返回session对象
                        2.没有 返回null   

request.getSession();(有就抓没有就创建)

演示代码

public class B extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        HttpSession httpSession = req.getSession();
        httpSession.setAttribute("name", "嘻嘻哈哈");
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("a");
        requestDispatcher.forward(req, resp);
    }
}

@WebServlet("/a")
public class A extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession httpSession = req.getSession();
        System.out.println(httpSession.getAttribute("name"));
    }
}
目录
相关文章
|
1月前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
67 11
|
1月前
|
XML Java 编译器
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
71 7
|
1天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
18 4
|
27天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
13天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
1月前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
2月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
2月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
95 4
|
15天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
72 17
|
26天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者