到目前为止,我理解Java中的Httpsession概念.
HttpSession ses = req.getSession(true);
Run Code Online (Sandbox Code Playgroud)
将根据请求创建会话对象.
setAttribute("String", object);
Run Code Online (Sandbox Code Playgroud)
将使用Session对象绑定'String'和value.
getAttribute("String");
Run Code Online (Sandbox Code Playgroud)
将返回与指定的字符串关联的对象.
我无法理解的是:我正在创建一个会话对象
HttpSession ses = req.getSession(true);
,并通过调用为其设置名称setAttribute("String", object);.这里,此代码驻留在服务器内部.对于每个人,当他尝试登录服务器中的相同代码时将被执行.setAttribute("String", object);在此方法中,字符串值是常量.因此,创建的每个会话对象都将使用我提供的相同字符串进行绑定.当我尝试检索字符串以验证他的会话或在采取注销操作时,getAttribute("String"); ll返回相同的常量字符串值(我是对的!! ??实际上我不知道,我只是想到它的执行逻辑) .然后,我怎么能够无效.
我在WEB上的所有教程中都看到了这种类型的插图.它是设置该属性的实际方法吗?或者,真正的应用程序开发人员将在"String"字段中给出一个变量来动态设置它
(ie. session.setAttribut(userName, userName); //Setting the String Dynamically.. I dono is it right or not.)
我的最后一个问题是
WebContext ctx = WebContextFactory.get();
request = ctx.getHttpServletRequest();
Run Code Online (Sandbox Code Playgroud)
上面两行做什么?什么将存储在ctx和请求中?
HttpSession ses = req.getSession(true);将创建新的会话手段.存储在ses中的值.
gaw*_*awi 19
一些[随机]精度:
request.getSession(true),HttpRequest都会检查对象,以便找到在URL路径参数中的cookie OR/AND中编码的会话ID(分号后面是什么).如果找不到会话ID,servlet容器(即服务器)将创建一个新会话. response.encodeURL()方法修改HTML文档中的链接.如果未找到会话ID或会话ID引用无效会话,则调用request.getSession(false)或仅request.getSession()返回null.web.xml文件中配置超时值.invalidate()方法显式地使给定会话无效.JSESSIONID,他们指的是用于在Java中进行会话跟踪的HTTP cookie的标准名称.Kal*_*see 13
我建议你阅读有关Java会话的教程.每个用户都有不同的HttpSession对象,基于所述的Java Web服务器向浏览器JSESSIONID请求/响应参数.因此,每个用户都可以拥有一个具有相同名称的属性,并且为该属性存储的值对于所有用户将是不同的.
此外,WebContextFactory和WebContext是DWR类,它们提供了获取servlet参数的简便方法.
据我了解,您关注的是在HttpSession中存储内容时不同用户的分离.
servlet容器(例如Tomcat)利用其JSESSIONID来处理这个问题.
故事是这样的:
希望(至少部分)回答你的问题.
干杯
| 归档时间: |
|
| 查看次数: |
82063 次 |
| 最近记录: |