前言:

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

那这里有一个假设

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

存进 request 中,

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

那在新的页面中,

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

实践:

那我们来试一下就知道了

1.建一个 java web 项目

java中session登录的时候怎么存对应的信息 java session怎么用_Web

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

java中session登录的时候怎么存对应的信息 java session怎么用_服务器_02

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

java中session登录的时候怎么存对应的信息 java session怎么用_java_03

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

java中session登录的时候怎么存对应的信息 java session怎么用_服务器_04

5.重新来一个跳转请求

java中session登录的时候怎么存对应的信息 java session怎么用_数据_05

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

java中session登录的时候怎么存对应的信息 java session怎么用_数据_06

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

java中session登录的时候怎么存对应的信息 java session怎么用_服务器_07

8.显示结果

java中session登录的时候怎么存对应的信息 java session怎么用_数据_08

总结:

这个实践我们可以得出,

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

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

服务端永远认不出其人,

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

这种情况是不允许的,

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

Session


Session

1.什么是Session

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

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

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

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

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

2.Session的工作原理

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

如果该用户还没有会话,

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

当会话过期或被放弃后,

服务器将终止该会话。


 

Session的用法

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

java中session登录的时候怎么存对应的信息 java session怎么用_Web_09

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

java中session登录的时候怎么存对应的信息 java session怎么用_服务器_10

3.结果如下

java中session登录的时候怎么存对应的信息 java session怎么用_数据_11

总结:

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

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

这也就是所谓的会话跟踪


 

Session的根本原理

其实原理很简单

我们来到刚刚的页面

1.按 F12 进入控制台

java中session登录的时候怎么存对应的信息 java session怎么用_服务器_12

2.

java中session登录的时候怎么存对应的信息 java session怎么用_java_13

3.

java中session登录的时候怎么存对应的信息 java session怎么用_服务器_14

4.

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

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

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