Java Session Fancy Printing

 1public static final String convertToString(HttpServletRequest request) {
 2        StringBuffer msg = new StringBuffer();
 3        try {
 4
 5            msg.append("*RequestURI:" + request.getRequestURI() + "\n");
 6            msg.append("*ContentType:" + request.getContentType() + "\n");
 7
 8            msg.append("== Request Header\n");
 9            Enumeration headers = request.getHeaderNames();
10            while (headers.hasMoreElements()) {
11                String headerName = "" + headers.nextElement();
12                msg.append(headerName + ":" + request.getHeader(headerName) + "\n");
13            }
14            msg.append("\n");
15            
16            Enumeration attr = request.getParameterNames();          
17            
18            ArrayList l = new ArrayList();
19            String att;
20            while (attr.hasMoreElements()) {
21                att = (String) attr.nextElement();
22                l.add(att + " -> " + request.getParameter(att));
23            }
24            
25            msg.append("=== Request ( " + l.size() + " ) ===\n");
26            Object a[] = l.toArray();
27            Arrays.sort(a);
28            for (int i = 0; i < a.length; i++) {
29                msg.append((String) a[i]);
30                msg.append("\n");
31            }
32            msg.append("===   ===   ===\n");
33            
34            // Process the Session
35            HttpSession session = request.getSession();
36            // msg.append("\n");
37            
38            Enumeration e = session.getAttributeNames();
39            
40            TreeMap t = new TreeMap();
41            String k;
42            while (e.hasMoreElements()) {
43                k = (String) e.nextElement();
44                Object oggetto;
45                try {
46                    oggetto = session.getAttribute(k);
47                } catch (Throwable notSerializableException) {
48                    oggetto = "NON DESERIALIZZABILE. Chiave:" + k;
49                    
50                }
51                t.put(k, oggetto);
52            }
53                        
54            Object orderedKeys[] = t.keySet().toArray();
55            msg.append("=== Session  ( " + orderedKeys.length + " " + (usertempz != null ? "+ 1UT" : " NO UT!") + " )===\n");
56            Object elem;
57
58            for (int i = 0; i < orderedKeys.length; i++) {
59                elem = t.get(orderedKeys[i]);
60                msg.append(orderedKeys[i]);
61
62                msg.append("\t-> ");
63                if (elem != null) {
64                    nicePrintSessionObj(msg, elem);
65                } else {
66                    msg.append("null");
67                }
68                msg.append("\n");
69            }
70            return msg.toString();
71        } catch (RuntimeException e) {
72            return msg + "\nERR: Cannot print session/request!!" + e.getMessage();
73        }
74    }