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"));
    }
}
目录
相关文章
|
15天前
|
NoSQL Java 数据库连接
深入探索 Java 后台开发的核心技术
【4月更文挑战第5天】本文探讨了Java后台开发的关键技术,包括Spring框架与Spring Boot的使用,MyBatis和Hibernate的ORM选择,关系型与NoSQL数据库的适用场景,线程池与异步处理在并发中的作用,微服务架构及RESTful API设计。这些核心技术有助于开发者打造稳定、高性能的Java后台系统,适应不断发展的云计算和人工智能需求。
|
21天前
|
缓存 Java C#
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(一)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
60 0
|
1天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
2天前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
20 6
|
3天前
|
监控 前端开发 算法
Java技术体系
Java技术体系(韩顺平老师整理)
7 0
|
14天前
|
存储 安全 Java
Java中实现高效的字符串拼接技术
【4月更文挑战第6天】在Java编程中,字符串拼接是一个常见的操作。然而,由于字符串的不可变性,频繁的拼接操作可能会导致性能问题。本文将探讨Java中实现高效字符串拼接的技术,包括使用StringBuilder类、StringBuffer类以及Java 8中的StringJoiner类。通过对比这些技术的优缺点,我们将为您提供在不同场景下选择合适的字符串拼接方法的建议。
|
21天前
|
存储 安全 Java
【Java技术专题】「攻破技术盲区」攻破Java技术盲点之unsafe类的使用指南(打破Java的安全管控— sun.misc.unsafe)
【Java技术专题】「攻破技术盲区」攻破Java技术盲点之unsafe类的使用指南(打破Java的安全管控— sun.misc.unsafe)
33 0
|
8天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第11天】 在Java中,高效的并发编程是提升应用性能和响应能力的关键。本文将探讨Java并发的核心概念,包括线程安全、锁机制、线程池以及并发集合等,同时提供实用的编程技巧和最佳实践,帮助开发者在保证线程安全的前提下,优化程序性能。我们将通过分析常见的并发问题,如竞态条件、死锁,以及如何利用现代Java并发工具来避免这些问题,从而构建更加健壮和高效的多线程应用程序。
|
1天前
|
安全 Java
java多线程(一)(火车售票)
java多线程(一)(火车售票)
|
2天前
|
安全 Java 调度
Java并发编程:深入理解线程与锁
【4月更文挑战第18天】本文探讨了Java中的线程和锁机制,包括线程的创建(通过Thread类、Runnable接口或Callable/Future)及其生命周期。Java提供多种锁机制,如`synchronized`关键字、ReentrantLock和ReadWriteLock,以确保并发访问共享资源的安全。此外,文章还介绍了高级并发工具,如Semaphore(控制并发线程数)、CountDownLatch(线程间等待)和CyclicBarrier(同步多个线程)。掌握这些知识对于编写高效、正确的并发程序至关重要。