问个问题....

来源:3-3 用户会话Session对象

一只大猪蹄

2019-12-01 13:44:27

老师好!使用request.getRequestDispatcher()。forward(request,response)将同一个请求和响应(/session/login)转发到另外一个页面(/session/index)当中,从而操作和调用的是同一个session对象,那么如果不转发的话,那么他们的session对象相同吗?还有如果不同的话,如果在index页面对login页面对session对象进行调用的话,那么应该怎么操作呢?最后请问,在一个项目当中,是只有一个session还是多个session呢?

写回答

2回答

好帮手慕阿莹

2019-12-01

同学你好,

首先,request.getRequestDispatcher().forward(request,response)是把request,response转发到了下一个页面,而不是session哦。

其次,不转发也使用的是同一个session对象哦。用session存储数据时,不用进行转发。

最后,在一个项目中不只可以有一个session,例如,服务器可以为每个浏览器用户创建一个session

同学可以这样理解。

request因为生命周期是一次请求,如果不进行转发的话,它就结束了。

而session的生命周期是随着session的创建到session的销毁(默认无操作的清空下30分中自动销毁,也可以手动销毁,也可以随着服务器的停止而销毁),同学可以用一个个用户来理解。

我们部署了服务器后,会有很多个用户来进行访问,从每个用户登录,就创建了一个session,直到该用户退出,该session销毁,在登录期间,这个session是一直存在的。

如果同时有两个用户登录,就有两个session存在。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!



1

广东田柾国

2020-02-02

我敲代码试了一下,就算不进行请求转发,只要在同一个浏览器窗口(不限定同一个标签页)访问login和index页面都能得到同一个session。不同浏览器窗口同一时间访问会得到不同的session。

0

0 学习 · 9666 问题

查看课程

相似问题