【问题标题】:Any tool to view web session attributes? [closed]有什么工具可以查看网络会话属性吗? [关闭]
【发布时间】:2011-01-12 11:12:21
【问题描述】:

我将 jsp/Servlets 用于我的 Web 层。是否有任何工具可以检查 Web 会话中的会话属性?

【问题讨论】:

  • 不太确定你的问题的上下文,你能详细说明一下吗?如果您能够在 IDE 中调试应用程序,那么您应该能够设置断点并查看会话中的内容。
  • 是的,你是对的。但我想从浏览器中查看。

标签: jsp web-applications session servlets


【解决方案1】:

当然。它实际上不是一个工具,而是一个简单的代码sn-p。在你的 servlet/jsp/filter 的某个地方添加以下内容:

Session session = request.getSession();
Enumeration attributeNames = session.getAttributeNames();
while (attributeNames.hasMoreElements()) {
    String name = attributeNames.nextElement();
    String value = session.getAttribute(name);
    System.out.println(name + "=" + value);
}

您将在控制台上打印会话的所有属性。

或者,在 JSP 中:

<c:forEach items="${sessionScope}" var="attr">
    ${attr.key}=${attr.value}<br>
</c:forEach>

这将在页面上打印会话的所有属性。

更新:原来你对会话有错误的理解。会话数据位于服务器端。客户端仅持有一个唯一标识符,通过该标识符在服务器上引用其数据。此标识符通常是“会话 cookie”,但也可以是 url (JSESSIONID) 的一部分。所以客户端不能直接看到会话的内容。如果您希望会话属性以有意义的值(不同于其哈希码)显示,则覆盖其toString() 方法。

【讨论】:

  • 谢谢,这也是我最后想出的解决方案,但是没有工具(如firefox插件)可以做到这一点吗? (因为如果浏览器可以清除会话属性为什么不能显示它们?)另外,如果属性是一个对象,使用这种技术,它只会显示该对象的哈希码。
  • 您似乎误解了会话概念。见亩更新
  • 我知道会话数据在服务器端,但我要问的是我们是否可以在没有代码(如您上面给出的代码)的情况下查看会话变量在服务器中边?例如,我们可以查看 stackoverflow.com 的会话变量吗?为了避免哈希码,我理解的是覆盖 toString() 。但我想要的是向下钻取一个对象以查看其子对象及其子对象....
  • 1.没有代码2无法查看会话内容。可以使用反射来钻取对象
  • @Bozho +1 :: sessionScope sn-p 非常适合调试页面级安全问题... TY.
猜你喜欢
  • 2011-08-21
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 2013-06-20
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
相关资源
最近更新 更多