当前位置: 首页 > 面试题库 >

从swing应用程序到servlet进行http调用,会话未保存

单勇
2023-03-14
问题内容

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

我的Swing客户端可能无法发出请求,并且会话将无法保存在servlet上吗?

我可以肯定地说,与Servlet通信的swing方法可以正常工作。


问题答案:

Servlet会话由cookie支持。您基本上需要Set- Cookie从第一个请求的响应中获取所有标头,然后将这些name=value对作为Cookie后续请求的标头传回。

目前尚不清楚您使用的是哪种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();
// ...


 类似资料:
  • 问题内容: 您如何在Java Desktop Swing应用程序中进行Hibernate会话管理?您是否使用一个会话?多个会议? 以下是有关此主题的一些参考资料: http://www.hibernate.org/333.html http://blog.schauderhaft.de/2008/09/28/hibernate-sessions-in-two-tier-rich-client-ap

  • 问题内容: 我目前正在开发我的一个(相当大的)宠物项目,这是一个Swing应用程序,它本质上需要多线程。几乎所有用户交互都可能通过Internet从某些远程服务器获取数据,因为我既不能控制这些服务器,也不能控制Internet本身,因此不可避免的是需要较长的响应时间。EDT忙时,Swing UI显然无法重绘自身,因此所有远程服务器调用都需要由后台线程执行。 我的问题: 后台线程获取的数据被本地(内

  • 问题内容: 我想从Java应用程序调用Servlet。问题是,该调用似乎未到达Servlet。我没有收到任何错误,但是没有到达Servlet中的第一个输出“ doPost”。如果我在Web浏览器中打开URL,我当然会得到如下错误:不支持GET等。但是至少我知道发生了一些错误。 我使用以下代码(ActionPackage类仅包含一个Vector参数,并且可序列化): Java应用程序: Servle

  • 我不知道是怎么回事?? 任何人都可以提供一个数据通道的工作示例,将非常感谢。

  • 我在GWT应用程序中使用hibernate,其中我有一个单独的客户机/服务/业务/dao层。 服务/业务层使用dao层获取/更新用于请求处理的模型。问题是,我遵循DOA类方法中打开/关闭hibernate会话的反模式。 一般的Hibernate指南似乎建议,我们应该有一个请求范围的会话。这可以在几个地方完成,比如servlet过滤器或服务层。我们可以打开会话并将其注入到DAO层,并在完成请求之前在