RequestDump.java
package sk.iway.iwcm.helpers;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import sk.iway.iwcm.Identity;
import sk.iway.iwcm.Tools;
/**
* RequestDump.java
*
* Serves ar {@link HttpServletRequest}.toString()
*
*@Title webjet7
*@Company Interway s.r.o. (www.interway.sk)
*@Copyright Interway s.r.o. (c) 2001-2011
*@author $Author: marosurbanec $
*@version $Revision: 1.3 $
*@created Date: 7.4.2011 16:00:54
*@modified $Date: 2004/08/16 06:26:11 $
*/
public class RequestDump
{
HttpServletRequest request;
private String lineSeparator;
public RequestDump(HttpServletRequest request)
{
this.request = request;
}
public String printParameters()
{
StringBuilder message = new StringBuilder();
message.append("<ul>");
for (Object paramAsObject : request.getParameterMap().keySet())
message.
append("<li>").
append(paramAsObject).
append('=').
append(request.getParameter(paramAsObject.toString())).
append("</li>");
message.append("</ul>");
return message.toString();
}
public String printAttributes()
{
StringBuilder message = new StringBuilder();
message.append("<ul>");
Enumeration<String> attributes = request.getAttributeNames();
while(attributes.hasMoreElements())
{
String attribute = attributes.nextElement();
message.
append("<li>").
append(attribute).
append('=').
append(request.getAttribute(attribute)).
append("</li>");
}
message.append("</ul>");
return message.toString();
}
public String completeRequestReport()
{
lineSeparator = "\n";
return createReport();
}
public String completeRequestReportAsHtml()
{
lineSeparator = "<br />";
return createReport();
}
private String createReport()
{
StringBuilder report = new StringBuilder();
appendPathInfoTo(report);
appendUserInfoTo(report);
appendHeadersTo(report);
appendParametersTo(report);
appendAttributesTo(report);
appendSessionAttributesTo(report);
return report.toString();
}
private void appendPathInfoTo(StringBuilder report)
{
report.append(Tools.getRequestedLink(request)).append(lineSeparator);
}
private void appendUserInfoTo(StringBuilder report)
{
Identity user = new RequestHelper(request).getUser();
if (user == null)
report.append(lineSeparator).append("User not logged in").append(lineSeparator);
else
report.append(lineSeparator).append("User: ").append(user).append(lineSeparator);
}
private void appendHeadersTo(StringBuilder report)
{
List<String> headerNames = Collections.list(request.getHeaderNames());
report.append(lineSeparator).append("Request headers: ").append(lineSeparator);
for (String header : headerNames)
report.append(header).append(" = ").append(request.getHeader(header)).append(lineSeparator);
}
private void appendParametersTo(StringBuilder report)
{
List<String> parameterNames = Collections.list(request.getParameterNames());
report.append(lineSeparator).append("Request parameters: ").append(lineSeparator);
for (String parameterName : parameterNames)
report.append(parameterName).append(" = ").append(request.getParameter(parameterName)).append(lineSeparator);
}
private void appendAttributesTo(StringBuilder report)
{
List<String> attributeNames = Collections.list(request.getAttributeNames());
report.append(lineSeparator).append("Request attributes: ").append(lineSeparator);
for (String attributeName : attributeNames)
report.append(attributeName).append(" = ").append(request.getAttribute(attributeName)).append(lineSeparator);
}
private void appendSessionAttributesTo(StringBuilder report)
{
if(request.getSession() == null) return;
List<String> attributeNames = Collections.list(request.getSession().getAttributeNames());
report.append(lineSeparator).append("Session attributes: ").append(lineSeparator);
for (String attributeName : attributeNames)
report.append(attributeName).append(" = ").append(request.getSession().getAttribute(attributeName)).append(lineSeparator);
}
}