zoukankan      html  css  js  c++  java
  • java-web——第十课 session

    前言:

    前一课我们讲了 request 存储数据,

    那这里有一个假设

    如果控制器获取到了从表单提交过来的元素,

    存进 request 中,

    然后给控制器一个新的跳转请求

    那在新的页面中,

    还可以取出表单存入 request 的数据吗?

    实践:

    那我们来试一下就知道了

    1.建一个 java web 项目

    2.建一个 JSP 页面,加入表单元素

    3.建一个控制器,接受表单请求

    4.将获取到的数据存入到 request 中

    5.重新来一个跳转请求

    6.接着需要创建一个重定向的地址页面

    7.然后在其中取出数据,并且显示

    8.显示结果

    总结:

    这个实践我们可以得出,

    每一次请求都会创建出一个新的 request

    这样就导致我们客户在访问的时候,

    服务端永远认不出其人,

    客户的状态服务器也跟踪不到,

    这种情况是不允许的,

    所以就引出了我们的会话跟踪

    Session


    Session

    1.什么是Session

    在计算机中,尤其是在网络应用中,称其为“会话控制”。

    Session 对象存储特定用户会话所需的属性及配置信息

    这样,当用户在应用程序的 Web 页之间跳转时,

    存储在 Session 对象中的变量将不会丢失

    而是在整个用户会话中一直存在下去

    2.Session的工作原理

    当用户请求来自应用程序的 Web 页时,

    如果该用户还没有会话,

    则 Web 服务器将自动创建一个 Session 对象

    当会话过期或被放弃后,

    服务器将终止该会话。


    Session的用法

    1.首先来到我们的控制器

    2.接着我们来到我们的跳转页面

    3.结果如下

    总结:

    不难看出,用session对象存入数据,

    哪怕再发多个请求,数据也不会丢失,

    这也就是所谓的会话跟踪


    Session的根本原理

    其实原理很简单

    我们来到刚刚的页面

    1.按 F12 进入控制台

    2.

    3.

    4.

    Cookie的生成不需要我们去管,

    服务器会将这一串字符生成好

    这也是分辨不同用户以及请求的标准

    谢谢欣赏

    (`・ω・´)ゞ敬礼っ

  • 相关阅读:
    Java知识点梳理——集合
    Java知识点梳理——装箱和拆箱
    Shiro RememberMe 1.2.4 反序列化漏洞详细复现
    哈希长度拓展攻击之De1CTF
    Discuz! ML RCE漏洞 getshell 复现
    Redis基于主从复制的RCE 4.x/5.x 复现
    WebLogic反序列化漏洞(CVE-2019-2725补丁绕过)
    【实战2】记一次获取远程桌面历程
    远程桌面远程代码执行漏洞(CVE-2019-0708)Poc
    【实战1】记一次提至administrator权限历程
  • 原文地址:https://www.cnblogs.com/mxnd/p/6920312.html
Copyright © 2011-2022 走看看