JSP信息页调试助手

Pra*_*ate 2 java debugging jsp helper

有没有人使用jsp调试帮助页面,可以将其放入任何webapp或从另一个jsp页面中包含,以查看标题,请求和会话属性?

如果可能,请你分享一下吗?对许多人来说,这将是一个很大的帮助

Pra*_*ate 5

  • 放入pageDebugger.jsp你的webapp
  • 直接访问页面或从其他jsp包含,layout.jsp以在每个页面上显示此详细信息
  • 此页面列出了表格中的后续内容
    • 请求参数
    • 页面范围的属性和值
    • 请求范围属性和值
    • 会话范围的属性和值
    • 应用程序作用域属性和值
    • 请求标头
    • 范围中定义的所有Spring bean
    • 在类路径上搜索资源的选项
  • 如果你不使用弹簧框架的依赖是可选的删除它

pageDebugger.jsp

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<style type="text/css">
td {
    word-wrap: break-word;
}
</style>
</head>
<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0"
    style="table-layout: fixed;">
    <colgroup>
        <col width="500">
    </colgroup>
    <tr>
        <th colspan="2">
        <h3>attributes in $paramValues</h3>
        </th>
    </tr>
    <c:forEach var="entry" items="${paramValues}">
        <tr>
            <td><c:out value="${entry.key}" /></td>
            <td><c:forEach var="item" items="${entry.value}"
                varStatus="status">
                <pre><c:out value="${item}" /></pre>
                <c:if test="${not status.last}">
                    <br />
                </c:if>
            </c:forEach></td>
        </tr>
    </c:forEach>
    <tr>
        <th colspan="2">
        <h3>attributes in $requestScope</h3>
        </th>
    </tr>
    <c:forEach var="entry" items="${requestScope}">
        <tr>
            <td><c:out value="${entry.key}" /></td>
            <td><pre><c:out value="${entry.value}" /></pre></td>
        </tr>
    </c:forEach>
    <tr>
        <th colspan="2">
        <h3>attributes in $sessionScope</h3>
        </th>
    </tr>
    <c:forEach var="entry" items="${sessionScope}">
        <tr>
            <td><c:out value="${entry.key}" /></td>
            <td><pre><c:out value="${entry.value}" /></pre></td>
        </tr>
    </c:forEach>
    <tr>
        <th colspan="2">
        <h3>attributes in $pageScope</h3>
        </th>
    </tr>
    <c:forEach var="entry" items="${pageScope}">
        <tr>
            <td><c:out value="${entry.key}" /></td>
            <td><pre><c:out value="${entry.value}" /></pre></td>
        </tr>
    </c:forEach>
    <tr>
        <th colspan="2">
        <h3>attributes in $headerValues</h3>
        </th>
    </tr>
    <c:forEach var="entry" items="${headerValues}">
        <tr>
            <td><c:out value="${entry.key}" /></td>
            <td><c:forEach var="item" items="${entry.value}"
                varStatus="status">
                <pre><c:out value="${item}" /></pre>
                <c:if test="${not status.last}">
                    <br />
                </c:if>
            </c:forEach></td>
        </tr>
    </c:forEach>
    <tr>
        <th colspan="2">
        <h3>attributes in $applicationScope</h3>
        </th>
    </tr>
    <c:forEach var="entry" items="${applicationScope}">
        <tr>
            <td><c:out value="${entry.key}" /></td>
            <td><pre><c:out value="${entry.value}" /></pre></td>
        </tr>
    </c:forEach>
    <tr>
        <th colspan="2">
        <h3>System Properties</h3>
        </th>
    </tr>
    <tr>
        <th>Key</th>
        <th>Value</th>
    </tr>
    <%@page import="java.util.Map"%>
    <%@page import="java.util.Set"%>
    <%@page import="java.util.Properties"%>
    <%@page import="java.util.Arrays"%>
    <%
        Properties p = System.getProperties();
        Set<Map.Entry<Object, Object>> set = p.entrySet();
        for (Map.Entry<Object, Object> e : set) {
    %>
    <tr>
        <td><%=e.getKey()%></td>
        <td><%="".equals(e.getValue()) ? "&nbsp;" : e.getValue()%></td>
        <%
            }
        %>
    </tr>
    <tr>
        <th colspan="2">
        <h3>Spring Beans</h3>
        </th>
    </tr>
    <%@page import="org.springframework.web.context.WebApplicationContext"%>
    <%@page
        import="org.springframework.web.context.support.WebApplicationContextUtils"%>
    <%@page import="org.springframework.core.io.Resource"%>
    <%
        try {
            WebApplicationContext springContext = WebApplicationContextUtils
                    .getWebApplicationContext(config.getServletContext());
            if (springContext != null) {
                String[] beanNames = springContext.getBeanDefinitionNames();
                Arrays.sort(beanNames);
                for (String beanName : beanNames) {
                    String className = springContext.getType(beanName)
                            .getName();
    %>
    <tr>
        <td><%=beanName%></td>
        <td><%=className%></td>
    </tr>
    <%
        }
    %>
    <tr>
        <th colspan="2">
        <h3>Spring Resources</h3>
        </th>
    </tr>
    <tr>
        <th colspan="2">
        <form><input name="resources" size="50"/></form>
        </th>
    </tr>

    <%
        String resourceNames = request.getParameter("resources");
                if (resourceNames != null) {
                    Resource[] resources = springContext
                            .getResources(resourceNames);
                    for (Resource r : resources) {
    %>
    <tr>
        <td><%=r.getFilename()%></td>
        <td><%=r.getURI()%></td>
    </tr>
    <%
        }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    %>


</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

此外,如果您可以选择修改web.xml,请查看这些内容,还可以用于监视/配置活动的http会话属性

http://code.google.com/p/sessionmon/

http://messadmin.sourceforge.net/