【问题标题】:What is the mechanism by which a session attribute passes from a filter to a servlet?会话属性从过滤器传递到 servlet 的机制是什么?
【发布时间】:2012-03-29 01:58:03
【问题描述】:

在一个 web 应用程序中,我使用了几个过滤器,在其中一个过滤器中,我使用了 BalusC 描述为“会话滥用”的东西。基本上在过滤器中我会这样做:

request.getSession().setAttribute("abuse", ...);

稍后,在一个 Servlet 中,我读回了这个属性。

我正在使用会话属性而不是请求属性,因为我正在执行重定向,这就是我迷路的地方......

在浏览器收到 302 并进行重定向后,Tomcat(或任何其他 Java webapp 服务器)如​​何知道后续的 GET(重定向后的那个)与内部返回的会话属于同一个“会话”第一个过滤器(重定向之前的那个)?

如果我禁用了 JSESSIONID,即使客户端的浏览器同时关闭了 JavaScript 和 Cookie并且,此操作是否有效?

我应该指出,出于 SEO 和用户友好的目的,已禁用 JSESSIONID:就像 stackoverflow.com 永远不会显示带有毫无意义的技术问题的超长 URL,我的 web 应用程序也不会而 JavaScript 和 Cookies 可以被用户关闭。所以我想知道即使这三个“客户端功能”不可用,我正在做的“会话滥用”是否会起作用。

【问题讨论】:

    标签: java session web-applications attributes filter


    【解决方案1】:

    如果您禁用了 cookie 和 url 重写,则 Servlet 容器无法跟踪会话。实际上我认为有些人仍然可以使用 SSL - SSL 内置了会话跟踪,但我不确定许多 servlet 容器是否支持这种方法,它需要纯 SSL。

    如果您不跟踪会话,则每个会话都会被创建,然后被孤立。

    【讨论】:

      猜你喜欢
      • 2011-11-13
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-29
      • 2011-11-12
      • 2014-06-26
      • 1970-01-01
      相关资源
      最近更新 更多