BowerStudios.com

  • My Lab
  • Family
  • Friends
  • Professional
  • About
Home

Display Session and Parameters

daniel —Wed, 02/21/2007 - 1:17pm

  • Java


private void displaySessionAndParams(HttpServletRequest request) {
// Use with following: displaySessionAndParams(request);
// What do the session & params look like? - Display in Console Output
System.out.println("This is the Session:");
for (Enumeration e = request.getSession().getAttributeNames(); e
.hasMoreElements();) {
String attrib = new String(e.nextElement().toString());
System.out.println("SessionAttribute: " + attrib);
System.out.println(request.getSession().getAttribute(attrib));
System.out.println("-");
}
System.out.println("END SESSION");
System.out.println("-");
System.out.println("Selected Local Vars:");
// System.out.println(id);
System.out.println("END Local Vars");
System.out.println("-");
System.out.println("These are the Form Parameters:");
for (Enumeration f = request.getParameterNames(); f.hasMoreElements();) {
String paramet = new String(f.nextElement().toString());
System.out.println("FormParameter: " + paramet);
System.out.println(request.getParameter(paramet));
System.out.println("-");
}
System.out.println("END FORM PARAMETERS");
}

  • Log in to post comments

Comments

Use Servlet Filter, Java5 and logger to print request parameters

Submitted by daniel on Mon, 10/20/2008 - 3:52pm

Requires Java 5 and a valid log4j configuration.

Create A Class RequestDebuggingFilter and put it in the webapp's class path. Remember to enable in development environment only!

package gov.ohio.regents.cems.util;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;
/**
* Filter for viewing Request Parameters and Session Attributes in log
* Servlet Filter implementation class RequestDebuggingFilter
*/
public class RequestDebuggingFilter implements Filter {
protected static final Logger logger = Logger.getLogger(RequestDebuggingFilter.class.getName());
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest hreq = (HttpServletRequest) request;
logger.info("Request for: " + hreq.getRequestURI());
if(logger.isDebugEnabled()){
logRequestParameters(hreq);
logSessionAttributes(hreq);
logCookies(hreq);
}
chain.doFilter(request, response);
}
private void logCookies(HttpServletRequest request){
logger.debug("COOKIES:");
if(null!=request.getCookies()){
for(Cookie cookie : request.getCookies()){
String description = "";
try {
description = BeanUtils.describe(cookie).toString();
} catch (Exception e) {
logger.error("BeanUtils Exception describing cookie", e);
}
logger.debug(description);
}
}
logger.debug("COOKIES END \n\n");
}
private void logSessionAttributes(HttpServletRequest request){
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(request.getSession().getCreationTime());
DateFormat dfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
logger.debug("SESSION " + request.getSession().getId() + " created at: " + dfm.format(cal.getTime()));
logger.debug("SESSION ATTRIBUTES:");
Map sortedAttrs = sortSessionAttributes(request);
for(Map.Entry entry : sortedAttrs.entrySet()){
String description = "";
try {
description = BeanUtils.describe(entry.getValue()).toString();
} catch (Exception e ) {
logger.error("BeanUtils Exception describing attribute " + entry.getKey(), e);
}
logger.debug(" " + entry.getKey() + ": " + description);
}
logger.debug("SESSION ATTRIBUTES END \n\n");
}
private void logRequestParameters(ServletRequest request){
logger.debug("REQUEST PARAMETERS:");
Map sortedParams = sortRequestParameters(request);
for(Map.Entry entry : sortedParams.entrySet()){
StringBuilder builder = new StringBuilder();
for(String s : entry.getValue()){
builder.append(s);
builder.append(", ");
}
logger.debug(" " + entry.getKey() + ": " + builder.toString());
}
logger.debug("REQUEST PARAMETERS END \n\n");
}
@SuppressWarnings("unchecked")
private Map sortSessionAttributes(HttpServletRequest request){
Map sortedAttrs = new TreeMap();
Enumeration attrEnum = request.getSession().getAttributeNames();
while(attrEnum.hasMoreElements()){
String s = attrEnum.nextElement();
sortedAttrs.put(s, request.getAttribute(s));
}
return sortedAttrs;
}
@SuppressWarnings("unchecked")
private Map sortRequestParameters(ServletRequest request){
Map sortedParams = new TreeMap();
Set> params = request.getParameterMap().entrySet();
for(Map.Entry entry : params){
sortedParams.put(entry.getKey(), entry.getValue());
}
return sortedParams;
}
public void destroy() {
// nothing to implement here
}
public void init(FilterConfig fConfig) throws ServletException {
// nothing to implement here
}
}

Then enter in your webapps web.xml:

<filter>
<description>Filter for debugging Request Parameters</description>
<display-name>RequestDebuggingFilter</display-name>
<filter-name>RequestDebuggingFilter</filter-name>
<filter-class>util.RequestDebuggingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RequestDebuggingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

  • Log in to post comments

Navigation

  • Search
  • Recent content
  • Contact Me
  • Mail
  • Pass Hasher
  • Bower Studios Admin

Quotes

daniel —Mon, 02/26/2007 - 12:19pm

If you would know the value of money, go try to borrow some; for he that goes a-borrowing goes a-sorrowing.

—

Benjamin Franklin

  • Log in to post comments
  • daniel's quotes

Popular content

Last viewed:

  • Creating an External configuration file for Logback in a Webapp (.war file)
  • Create a Date Dimension Table's source with Groovy
  • Donkey in the Well
  • First use of a common computer protocol
  • Spring / Pivotal Branding

Copyright 2019 Daniel Bower
  • My Lab
  • Family
  • Friends
  • Professional
  • About