【问题标题】:GWT + Tomcat Session without Cookies!没有 Cookie 的 GWT + Tomcat 会话!
【发布时间】:2011-07-21 09:34:03
【问题描述】:

我正在开发一个 Web 项目,该项目在客户端使用 GWT,在服务器端使用 Java (tomcat7)。

如果在浏览器上启用了 cookie,则一切正常。我可以毫无问题地使用会话。

如果在浏览器上禁用了 cookie,会话将不起作用。

我猜,这主要与 GWT 应用程序有关,因为 GWT 应用程序是一个仅通过 ajax 从服务器请求数据的单一网页应用程序。

有没有办法让会话在这种情况下正常工作?

非常感谢您的帮助!

一切顺利, 托马斯

【问题讨论】:

  • 我发现如果是 HTML 文件,tomcat 不会设置会话 - 您是否将默认页面更改为 jsp 而不是 HTML 以使会话正常工作?
  • 不,当用户登录时,我首先需要一个会话,所以这不是问题。也许您将 apache(如果有的话)配置为提供静态 html 文件,因此 tomcat 不会创建会话 ...

标签: session gwt tomcat cookies session-cookies


【解决方案1】:

如果您使用 GWT RPC,您将需要修改您的 RPC url 以烧入 jsessionid,如 forum post 中所述。虽然我不确定论坛帖子中的Cookies.getCookie("JSESSIONID") 行是否适用于您的情况。您可能需要解析location.href

【讨论】:

    【解决方案2】:

    在服务器端,您可以按如下方式访问会话:

    public class NameImpl extends RemoteServiceServlet implements NameService {
    
    public void doSomething()  throws IllegalArgumentException{
     HttpSession hs = this.getThreadLocalRequest().getSession();
    //Do whatever it is you want to do with this information.
    }
    
    }
    

    不是 100% 确定如果是您所要求的,但这似乎是最合理的答案。

    【讨论】:

      猜你喜欢
      • 2010-10-01
      • 2023-03-10
      • 1970-01-01
      • 2016-07-02
      • 2011-04-10
      • 2011-04-14
      • 2012-03-08
      • 1970-01-01
      相关资源
      最近更新 更多