【问题标题】:session.getAttribute return null for Chrome Browser. (Servlet)session.getAttribute 为 Chrome 浏览器返回 null。 (小服务程序)
【发布时间】:2020-12-19 04:03:39
【问题描述】:

我正在尝试为 Atlassian JIRA 创建一个插件。我有一个在我的项目中调用 JSP 页面的 Java servlet。在 servlet 中,它应该返回一个对象。但是由于该 servlet 返回 null 而不是预期的结果而发生错误。这只发生在 Chrome 浏览器中。我已经在 Firefox、Microsoft Edge、safari 浏览器中对此进行了测试,这对他们来说运行良好并返回了预期的输出。

代码如下。 (Session.java)

public static <T> T get(final HttpServeletRequest request, final String key) {

   final HttpSession session = request.getSession();
   final Object ImpObj = session.getAttribute(key);

   if(ImpObj == null) {
      return null;
   }

   try {
     return (T) ImpObj;
   } catch(final Exception e) {
     return null;
   }
}

在我的类文件中,我像这样调用上面的 Session.java 文件

ImportFlawsObject impFlwObj = Session.get(request, "FLAW_IMPORTER");

我已经调试了代码并试图找到根本原因,发生的事情是在Chrome浏览器中,每次session.getAttribute(key)返回null。此处出现问题。

真的很难找到解决方案,感谢您的建议,它将帮助我找到更好的解决方案。

【问题讨论】:

  • 当您尝试获取attribute 时,您必须将它设置在某个地方或者它是内置的?如果您在浏览器中设置此属性,可能在 cookie 或本地存储中,您是否检查过它是否存储在那里?

标签: java google-chrome jsp servlets


【解决方案1】:

我找到了适合我的解决方案。我的网站位于属于第三方的 iframe 中,在我的情况下,这个问题是由于 cookie 在我的 iframe 网站上被阻止而引起的。您可以将该站点添加到您的白名单并解决问题,尽管有趣的是在 Firefox 和 Edge 中这不是必需的。

【讨论】:

    猜你喜欢
    • 2013-12-01
    • 2019-09-21
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多