在ajax调用中通过id获取会话
有没有办法在对 JAVA 服务器进行 AJAX 调用时访问会话。
在服务器上,request
对象同时具有 session
和 cookies
属性 NULL
。
我可以通过会话 ID 作为参数传递,但是如何通过 ID 访问会话呢?
编辑
使用 session.getSession(false);
返回 null
,而 session.getSession(true);
显然返回一个新会话,带有另一个 id 。
Is there a way to have access to session in a AJAX call made to a JAVA server.
On the server, the request
object has both the session
and cookies
properties NULL
.
I can pass though the session id as a parameter, but how can I access the session by ID?
Edit
Using session.getSession(false);
returns null
, while session.getSession(true);
obviously returns a new session, with another id.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
处理此问题的最佳方法是在 url 末尾附加“;jsessionid=”。例如,在 jsp 中:
该行:
呈现为:
The best way to deal with this is to append ";jsessionid=" at the end of the url. For instance, in a jsp:
The line:
is rendered as:
看来您没有参加会议!
确保当加载包含 AJAX 脚本时,会话已在服务器上创建。
如果它存储为 cookie,那么您的 AJAX 调用将在触发时将其提交回服务器。
It sounds like you don't have a session!
Make sure when the load containing the AJAX script, the session is created on the server.
If this is stored as a cookie, then your AJAX call will submit it back to the server when it fires.
为了访问会话,您不需要会话 ID。这一切都是由 servlet 容器在幕后为您完成的。要获取特定请求的会话,您需要做的就是:
其中
request
是您的HttpServletRequest
。false
参数表示“如果会话不存在,则不创建会话”。当然,如果您希望在会话不存在时创建会话,请使用“true”。In order to access the session you do not need the session id. This is all done for you behind the scenes by your servlet container. To get the session for a particluar request all you need to do is:
where
request
is yourHttpServletRequest
. Thefalse
arg means "do not create session if it does not exist". Of course use "true" if you want the session to be created if it doesn't exist.