到目前为止,我理解了Java中的Httpsession概念。
HttpSession ses = req.getSession(true);
将根据请求创建一个会话对象。
setAttribute("String", object);
将会把 'String' 和 value 绑定到 Session 对象。
getAttribute("String");
将返回与指定字符串相关联的对象。我无法理解的是:我正在创建一个会话对象,如
HttpSession ses = req.getSession(true);
,并通过调用setAttribute("String", object);
为其设置名称。这段代码位于服务器内部。对于每个尝试登录的人,服务器中同样的代码将被执行。setAttribute("String", object);
方法中的字符串值是一个常量。因此,创建的每个会话对象都将由我提供的相同字符串绑定。当我尝试检索该字符串以验证他的会话或在执行注销操作时,getAttribute("String");
将返回相同的常量字符串值(我是否正确?实际上我不知道,我只在思考它的执行逻辑)。那么,我如何能使它失效呢?我在所有WEB教程中都看到了这种类型的说明。这是设置属性的实际方式吗?或者,真正的应用程序开发人员是否会在“String”字段中提供变量以动态设置它?
最后一个问题是什么?
WebContext ctx = WebContextFactory.get();
request = ctx.getHttpServletRequest();
上面的两行代码是做什么用的?ctx和request会存储什么内容?
HttpSession ses = req.getSession(true);
会创建一个新的session。ses中存储的数值是什么。