zimbra소스 분석중 재미 있는 페이지가 있어서 공유 합니다.
이페이지를 디버깅용으로 올리시면 해당 페이지의 디버깅 정보를 모두 보실 수 있습니다.
즉 jsp 코딩(java was)을 하다 보시면 현재 서블릿이나 jsp에서 주변 변수나 request parameter를 전체 적으로
한페이지 에서 볼 수 있습니다.
디버깅 내역은 아래와 같습니다
- server varibales
- request headers
- request parameters
- request attributes
- servlet attributes (variables)
JSP snoop page <%@ page import="javax.servlet.http.HttpUtils,java.util.Enumeration" %>WebApp JSP Snoop page
Request information
Requested URL: | <%= HttpUtils.getRequestURL(request) %> |
---|---|
Request method: | <%= request.getMethod() %> |
Request URI: | <%= request.getRequestURI() %> |
Request protocol: | <%= request.getProtocol() %> |
Servlet path: | <%= request.getServletPath() %> |
Path info: | <%= request.getPathInfo() %> |
Path translated: | <%= request.getPathTranslated() %> |
Query string: | <% if(request.getQueryString()!=null) out.write(request.getQueryString().replaceAll("<", "<").replaceAll(">",">")); %> |
Content length: | <%= request.getContentLength() %> |
Content type: | <%= request.getContentType() %> |
Server name: | <%= request.getServerName() %> |
Server port: | <%= request.getServerPort() %> |
Remote user: | <%= request.getRemoteUser() %> |
Remote address: | <%= request.getRemoteAddr() %> |
Remote host: | <%= request.getRemoteHost() %> |
Authorization scheme: | <%= request.getAuthType() %> |
Request headers
<% while(e.hasMoreElements()) { String k = (String) e.nextElement(); %> <% } %>Header: | Value: |
---|---|
<%= k %> | <%= request.getHeader(k) %> |
Request parameters
<% while(e.hasMoreElements()) { String k = (String) e.nextElement(); String val = request.getParameter(k); String vals[] = request.getParameterValues(k); %> <% } %>Parameter: | Value: | Multiple values: |
---|---|---|
<%= k.replaceAll("<", "<").replaceAll(">",">") %> | <%= val.replaceAll("<", "<").replaceAll(">",">") %> | <%
for(int i = 0; i < vals.length; i++) {
if(i > 0)
out.print(" "); out.print(vals[i].replaceAll("<", "<").replaceAll(">",">")); } %> |
Request Attributes
<% while(e.hasMoreElements()) { String k = (String) e.nextElement(); Object val = request.getAttribute(k); %> <% } %>Attribute: | Value: |
---|---|
<%= k.replaceAll("<", "<").replaceAll(">",">") %> | <%= val.toString().replaceAll("<", "<").replaceAll(">",">") %> |
Init parameters
<% while(e.hasMoreElements()) { String k = (String) e.nextElement(); String val = getServletConfig().getInitParameter(k); %> <% } %>Parameter: | Value: |
---|---|
<%= k %> | <%= val %> |