gpt4 book ai didi

java - 从swing应用程序向servlet进行http调用, session 未保存

转载 作者:行者123 更新时间:2023-12-04 06:13:24 24 4
gpt4 key购买 nike

我正在创建一个连接到 Web 服务器的 Swing 应用程序,运行一些 servlet(由我自己创建)。用户第一次连接时,他会获得一个“playerID”,该“playerID”保存在他在 servlet 上的 session 中。当我尝试从 Swing 应用程序再次调用 servlet 时,似乎无法识别“PlyaerID”。我正在打一个简单的电话来获取 PlayerID。 servlet 识别这种类型的请求并发送带有“playerID”的 JSON,如果未设置(null)则发送 -1。 swing 应用程序总是从 servlet 获得“-1”回复。我尝试从浏览器运行它,一切都很好。

我的 Swing 客户端是否可能无法发出请求并且 session 不会保存在 servlet 上?

我可以肯定地告诉你,与 servlet 通信的 swing 方法运行良好。

最佳答案

servlet session 由 cookie 支持。你基本上需要捕获所有Set-Cookie来自第一个请求的响应的 header ,然后传递 name=value成对返回 Cookie后续请求的 header 。

不清楚您使用的是什么 HTTP 客户端,但如果是 java.net.URLConnection ,那么您可以使用 java.net.CookieHandler 为了这。

// First set the default cookie manager.
CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));

// All the following subsequent URLConnections will use the same cookie manager.
URLConnection connection = new URL(url).openConnection();
// ...

connection = new URL(url).openConnection();
// ...

connection = new URL(url).openConnection();
// ...

也可以看看:
  • Using java.net.URLConnection to fire and handle HTTP requests - 维护 session
  • How do servlets work? Instantiation, sessions, shared variables and multithreading
  • 关于java - 从swing应用程序向servlet进行http调用, session 未保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7520980/

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