我在网络层使用jsp / Servlets。是否有任何工具可以检查Web会话中的会话属性?
答案 0 :(得分:19)
当然。它实际上不是一个工具,而是一个简单的代码片段。在您的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()
方法。