我对如何在独立的 java 应用程序中处理 http 会话感到困惑。以下是详细信息:
java 客户端连接到 3 个 tomcat 7 servlet。当客户端启动时,它会启动 2 个预定线程 /downloader 和 uploader/每 3 分钟轮询 2 个 servlet。他们都在各自类的私有字段中检索和存储 jsessionid cookie。这导致在 webapp 的整个生命周期中重复使用 2 个 Tomcat 会话。到目前为止,一切都很好。
有第 3 个服务/连接到第 3 个 servlet/ 使用线程“WebDispather”类的多个实例,该类与上述线程类似地检索和存储会话,但这次 - 在私有静态字段中。调度程序被大量使用,可能有多达 150 个实例同时运行,具体取决于负载。Dispatcher 线程每隔一秒左右就会碰到 servlet。
使调度程序 sessionid 字段非静态会为每个实例创建一个会话 - 不好。
将所有调度程序线程绑定到同一个 tomcat http 会话有什么含义?
谢谢
编辑:虽然dispather线程绑定到同一个会话,但会话本身不包含任何信息。Servlet 只处理请求参数。即调度员1:
localhost/messagecontrol?id=123&state
调度程序线程 2:localhost/messagecontrol?id=123&state=finished
//Servlet 处理并忘记 id 和 state