我爲我的web圖層使用jsp/Servlets。有沒有任何工具可以檢查Web會話中的會話屬性?任何查看網絡會話屬性的工具?
回答
當然。它實際上不是一個工具,而是一個簡單的代碼片段。在您的servlet/jsp /過濾器中添加以下內容:
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插件)可以做到這一點? (因爲如果瀏覽器可以清除會話屬性,爲什麼不能顯示它們?) 另外,如果屬性是一個對象,使用這種技術,它將只顯示該對象的哈希碼。 – 2010-02-05 05:39:58
你似乎誤解了會話的概念。看到mu更新 – Bozho 2010-02-05 06:58:01
我知道會話數據在服務器端,但我問的是我們是否可以在服務器端查看沒有代碼的會話變量(如上面給出的代碼)?例如,我們可以查看stackoverflow.com的會話變量嗎? 此外,爲了避免哈希碼是覆蓋toString(),我明白。但我想要的是深入查看其子對象及其子對象... – 2010-02-06 08:00:43
- 1. 爲什麼我看不到在Chrome的DevTools任何網絡電話(或任何其他工具,如查爾斯)
- 2. 用於狀態檢查網絡會話的任何C庫?
- 3. 查看網絡適配器的高級屬性,如Get-NetAdapterAdvancedProperty
- 4. PHP網絡會話
- 5. 任何檢查Javascript屬性是否存在的工具?
- 6. 什麼網頁開發工具將允許任何網絡連接的設備查看頁面?
- 7. 跨網絡的PHP會話
- 8. 查看CSS特異性的工具
- 9. Java SE和網絡會話
- 10. 枚舉網絡會話
- 11. 保留網絡會話
- 12. 任何人都知道一個好的網絡調試工具?
- 13. 任何好的C/C++網絡工具包?
- 14. UIText查看屬性串不會改變
- 15. 如何填充具有屬性的PDF網絡表格
- 16. 具有任意屬性的SPARQL屬性路徑查詢
- 17. 工具在IE中查看網站11
- 18. 會話集屬性不工作
- 19. Android網絡查看錯誤
- 20. 在iPad上調試網絡連接。任何工具或技術?
- 21. JSP中的會話屬性
- 22. 如何使GraphAPI登錄會話在網絡會話中生存
- 23. 如何查看chrome開發人員工具中的數據屬性值?
- 24. 如何在Google Chrome開發人員工具中查看元素的CSS屬性
- 25. 網絡管理工具
- 26. 網絡發現工具 - java
- 27. 網絡門戶工具
- 28. 網絡追蹤工具
- 29. 谷歌網絡工具包
- 30. 網絡文件屬性
不太確定你的問題的背景,你能否詳細說明一下?如果您能夠在IDE中調試應用程序,那麼您應該能夠設置斷點並查看會話中的內容。 – 2010-02-03 03:59:45
是的,你是對的。但我想從瀏覽器中檢查。 – 2010-02-05 05:46:31