gpt4 book ai didi

java - 新 session 是在 Applet 和托管 bean 的连续 servlet 请求之间创建的吗?

转载 作者:行者123 更新时间:2023-12-01 19:23:04 25 4
gpt4 key购买 nike

我想在applet和jsf组件之间传递参数因此,当输入文本框的值发生更改时,其绑定(bind)支持 bean 会与 servlet 建立连接。 servlet 创建一个属性并使用 (request.getSession(true)).setAttribute(name, value); 保存到 HttpSession;

然后在某些事件中,applet 将访问另一个 servlet。该 servlet 将尝试检索先前保存到 session 中的属性。

但是,每次创建新 session 时,返回的属性都是 null。

我的问题是: session 应该持续吗? (我检查了allowcookies、weblogic的 session 超时)

如果是,我的应用程序可能会出现什么问题?

非常感谢您的帮助。

问候K.

最佳答案

session 由 cookie 支持。在 JSP/Servlet 环境中,cookie 名称是 jsessionid。要访问同一 session ,小程序必须发出 header 中包含所需 session cookie 的请求。另外,您需要确保 servlet 在相同的域和上下文中运行/监听。

首先,将 session ID 作为参数传递给小程序:

<param name="jsessionid" value="${pageContext.session.id}">

然后,在Applet中按如下方式连接Servlet:

String jsessionid = getParameter("jsessionid");
URL servlet = new URL(getCodeBase(), "servleturl");
URLConnection connection = servlet.openConnection();
connection.setRequestProperty("Cookie", "jsessionid=" + jsessionid);
// ...

这里servleturl显然应该与web.xml中servlet的url-pattern相匹配。这应该在 request.getSession() 上的 servlet 中返回相同的 session 。

关于java - 新 session 是在 Applet 和托管 bean 的连续 servlet 请求之间创建的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com