KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > www > WEnv


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
5  * Software distributed under the License is distributed on an "AS IS" basis,
6  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

14 package org.compiere.www;
15
16 import javax.servlet.*;
17 import javax.servlet.http.*;
18 import java.util.*;
19 import java.io.*;
20 import java.sql.*;
21 import javax.naming.*;
22
23 import org.apache.ecs.*;
24 import org.apache.ecs.xhtml.*;
25 import org.apache.log4j.Logger;
26
27 import org.compiere.Compiere;
28 import org.compiere.util.*;
29
30 /**
31  * Web Environment and debugging
32  *
33  * @author Jorg Janke
34  * @version $Id: WEnv.java,v 1.11 2003/10/10 01:04:07 jjanke Exp $
35  */

36 public class WEnv
37 {
38     /** Add HTML Debug Info */
39     public static boolean DEBUG = true;
40     /** Logging */
41     private static Logger s_log = Logger.getLogger("org.compiere.www.WEnv");
42
43     /**
44      * Base Directory links <b>http://localhost:8080/compiere</b>
45      * to the physical <i>%COMPIERE_HOME%/tomcat/webroot/compiere</i> directory
46      */

47     protected static final String JavaDoc DIR_BASE = "/compiere"; // /compiere
48
/** Image Sub-Directory under BASE */
49     private static final String JavaDoc DIR_IMAGE = "images"; // /compiere/images
50
/** Stylesheet Name */
51     private static final String JavaDoc STYLE_STD = "standard.css"; // /compiere/standard.css
52
/** Small Logo */
53     private static final String JavaDoc LOGO = "LogoSmall.gif"; // /compiere/LogoSmall.gif
54
/** Store Sub-Directory under BASE */
55     private static final String JavaDoc DIR_STORE = "store"; // /compiere/store
56

57     /** Frame name for Commands */
58     public static final String JavaDoc TARGET_CMD = "WCmd";
59     /** Frame name for Menu */
60     public static final String JavaDoc TARGET_MENU = "WMenu";
61     /** Frame name for Apps Window */
62     public static final String JavaDoc TARGET_WINDOW = "WWindow";
63
64     /** Character Set (iso-8859-1) */
65     public static final String JavaDoc CHARACTERSET = "iso-8859-8"; // Default: UNKNOWN
66
/** Cookie Name */
67     public static final String JavaDoc COOKIE_INFO = "CompiereInfo";
68
69     /** Timeout - 15 Minutes */
70     public static final int TIMEOUT = 15*60;
71
72     /** Session Attribute - Context */
73     public static final String JavaDoc SA_CONTEXT = "SA_Context";
74     /** Session Attribute - Window Status */
75     public static final String JavaDoc SA_WINDOW = "SA_Window";
76     /** Session Attribute - Login Info */
77     public static final String JavaDoc SA_LOGININFO = "SA_LoginInfo";
78     /** Session Locale */
79     public static final String JavaDoc SA_LANGUAGE = "SA_Language";
80
81     /** Initialization OK? */
82     private static boolean s_initOK = false;
83
84     /**
85      * Init Web Environment.
86      * <p>
87      * To be called from every Servlet in the init method
88      * or any other Web resource to make sure that the
89      * environment is properly set.
90      * @param config config
91      * @return false if initialization problems
92      */

93     public static boolean initWeb (ServletConfig config)
94     {
95         if (s_initOK)
96         {
97             s_log.info("initWeb " + config.getServletName());
98             return true;
99         }
100         s_log.info("initWeb - Initial Call - " + config.getServletName());
101
102         // Load Environment Variables
103
s_log.info("Web Context Init Parameter for " + config.getServletContext().getServletContextName());
104         Enumeration en = config.getServletContext().getInitParameterNames();
105         while (en.hasMoreElements())
106         {
107             String JavaDoc name = en.nextElement().toString();
108             String JavaDoc value = config.getServletContext().getInitParameter(name);
109             s_log.info(" - " + name + "=" + value);
110             System.setProperty(name, value);
111         }
112
113         s_log.info("Servlet Init Parameter for " + config.getServletName());
114         en = config.getInitParameterNames();
115         while (en.hasMoreElements())
116         {
117             String JavaDoc name = en.nextElement().toString();
118             String JavaDoc value = config.getInitParameter(name);
119             s_log.info(" - " + name + "=" + value);
120             System.setProperty(name, value);
121         }
122
123         try
124         {
125             s_initOK = Compiere.startupServer (new InitialContext());
126         }
127         catch (Exception JavaDoc ex)
128         {
129             s_log.error("initWeb", ex);
130         }
131         if (!s_initOK)
132             return false;
133
134         s_log.info("initWeb complete");
135         return s_initOK;
136     } // initWeb
137

138
139     /**
140      * Get AD_Client_ID from Servlet Context or Web Context
141      * @param config servlet config
142      * @return AD_Client_ID if found or 0
143      */

144     public static int getAD_Client_ID (ServletConfig config)
145     {
146         // Get Client from Servlet init
147
String JavaDoc oo = config.getInitParameter("AD_Client_ID");
148         // Get Client from Web Context
149
if (oo == null)
150             oo = config.getServletContext().getInitParameter("AD_Client_ID");
151         if (oo == null)
152         {
153             s_log.error("getAD_Client_ID is null");
154             return 0;
155         }
156         int AD_Client_ID = 0;
157         try
158         {
159             AD_Client_ID = Integer.parseInt(oo);
160         }
161         catch (NumberFormatException JavaDoc ex)
162         {
163             s_log.error("getAD_Client_ID - " + oo, ex);
164         }
165         return AD_Client_ID;
166     } // getAD_Client_ID
167

168     /**
169      * Get database user from Servlet Context or Web Context
170      * @param servlet servlet config
171      * @return db User ID or compiere if not found
172      */

173     public static Connection getConnection (HttpServlet servlet)
174     {
175         // Get Info from Servlet Context
176
String JavaDoc user = servlet.getInitParameter("dbUID");
177         String JavaDoc pwd = servlet.getInitParameter("dbPWD");
178         // Get Client Web Context
179
if (user == null)
180             user = servlet.getServletContext().getInitParameter("dbUID");
181         if (pwd == null)
182             pwd = servlet.getServletContext().getInitParameter("dbPWD");
183         // Defaults
184
if (user == null)
185             user = "compiere";
186         if (user == null)
187             user = "compiere";
188 /** //
189         try
190         {
191             Context context = new InitialContext();
192             DataSource ds = (DataSource)context.lookup("java:OracleDS");
193             log.info ("OracleDS=" + ds.toString());
194             Connection con = ds.getConnection(dbUID, dbPWD);
195             log.info("Connection AutoCommit=" + con.getAutoCommit());
196             //
197             BPartnerHome bpHome = (BPartnerHome)context.lookup(BPartnerHome.JNDI_NAME);
198             BPartner bp = bpHome.create();
199             log.info("BPartner=" + bp.process2());
200             bp.remove();
201         }
202         catch (Exception ex)
203         {
204             throw new ServletException (ex);
205         }
206 **/

207         return null;
208
209     } // getDB_UID
210

211     /**
212      * Get database user from Servlet Context or Web Context
213      * @param config servlet config
214      * @return db User ID or compiere if not found
215      */

216     public static String JavaDoc getDB_UID (ServletConfig config)
217     {
218         // Get DB User from Servlet init
219
String JavaDoc user = config.getInitParameter("dbUID");
220         // Get Client from Web Context
221
if (user == null)
222             user = config.getServletContext().getInitParameter("dbUID");
223         if (user == null)
224         {
225             s_log.error("getDB_UID is null");
226             return "compiere";
227         }
228         return user;
229     } // getDB_UID
230

231     /**
232      * Get database user password from Servlet Context or Web Context
233      * @param config servlet config
234      * @return db Password or compiere if not found
235      */

236     public static String JavaDoc getDB_PWD (ServletConfig config)
237     {
238         // Get DB User from Servlet init
239
String JavaDoc pwd = config.getInitParameter("dbPWD");
240         // Get Client from Web Context
241
if (pwd == null)
242             pwd = config.getServletContext().getInitParameter("dbPWD");
243         if (pwd == null)
244         {
245             s_log.error("getDB_PWD is null");
246             return "compiere";
247         }
248         return pwd;
249     } // getDB_PWD
250

251     /*************************************************************************/
252
253     /**
254      * Get Base Directory entrry.
255      * <br>
256      * /compiere/
257      * @param entry file entry or path
258      * @return url to entry in base directory
259      */

260     public static String JavaDoc getBaseDirectory (String JavaDoc entry)
261     {
262         StringBuffer JavaDoc sb = new StringBuffer JavaDoc (DIR_BASE);
263         if (!entry.startsWith("/"))
264             sb.append("/");
265         sb.append(entry);
266         return sb.toString();
267     } // getBaseDirectory
268

269     /**
270      * Get Image Directory entry.
271      * <br>
272      * /compiere/images
273      * @param entry file entry or path
274      * @return url to entry in image directory
275      */

276     public static String JavaDoc getImageDirectory(String JavaDoc entry)
277     {
278         StringBuffer JavaDoc sb = new StringBuffer JavaDoc (DIR_BASE);
279         sb.append("/").append(DIR_IMAGE);
280         if (!entry.startsWith("/"))
281             sb.append("/");
282         sb.append(entry);
283         return sb.toString();
284     } // getImageDirectory
285

286     /**
287      * Get Store Directory entry.
288      * <br>
289      * /compiere/store
290      * @param entry file entry or path
291      * @return url to entry in store directory
292      */

293     public static String JavaDoc getStoreDirectory(String JavaDoc entry)
294     {
295         StringBuffer JavaDoc sb = new StringBuffer JavaDoc (DIR_BASE);
296         sb.append("/").append(DIR_STORE);
297         if (!entry.startsWith("/"))
298             sb.append("/");
299         sb.append(entry);
300         return sb.toString();
301     } // getStoreDirectory
302

303     /**
304      * Get Logo Path.
305      * <p>
306      * /compiere/LogoSmall.gif
307      * @return url to logo
308      */

309     public static String JavaDoc getLogoURL()
310     {
311         return getBaseDirectory(LOGO);
312     } // getLogoPath
313

314     /**
315      * Get Logo Image HTML tag
316      * @return Image
317      */

318     public static img getLogo()
319     {
320         return new img(WEnv.getLogoURL()).setAlign(AlignType.right).setAlt(Compiere.COPYRIGHT);
321     } // getLogo
322

323     /**
324      * Get Stylesheet Path.
325      * <p>
326      * /compiere/standard.css
327      * @return url of Stylesheet
328      */

329     public static String JavaDoc getStylesheetURL()
330     {
331         return getBaseDirectory(STYLE_STD);
332     } // getStylesheetURL
333

334     /*************************************************************************/
335
336     /**
337      * Dump Servlet Config
338      * @param config config
339      */

340     public static void dump (ServletConfig config)
341     {
342         System.out.println("ServletConfig " + config.getServletName());
343         System.out.println("- Context=" + config.getServletContext());
344         if (!Log.isTraceLevel(9))
345             return;
346         boolean first = true;
347         Enumeration e = config.getInitParameterNames();
348         while (e.hasMoreElements())
349         {
350             if (first)
351                 System.out.println("- InitParameter:");
352             first = false;
353             String JavaDoc key = (String JavaDoc)e.nextElement();
354             Object JavaDoc value = config.getInitParameter(key);
355             System.out.println(" - " + key + " = " + value);
356         }
357     } // dump (ServletConfig)
358

359     /**
360      * Dump Session
361      * @param ctx servlet context
362      */

363     public static void dump (ServletContext ctx)
364     {
365         System.out.println("ServletContext " + ctx.getServletContextName());
366         System.out.println("- ServerInfo=" + ctx.getServerInfo());
367         if (!Log.isTraceLevel(9))
368             return;
369         boolean first = true;
370         Enumeration e = ctx.getInitParameterNames();
371         while (e.hasMoreElements())
372         {
373             if (first)
374                 System.out.println("- InitParameter:");
375             first = false;
376             String JavaDoc key = (String JavaDoc)e.nextElement();
377             Object JavaDoc value = ctx.getInitParameter(key);
378             System.out.println(" - " + key + " = " + value);
379         }
380         first = true;
381         e = ctx.getAttributeNames();
382         while (e.hasMoreElements())
383         {
384             if (first)
385                 System.out.println("- Attributes:");
386             first = false;
387             String JavaDoc key = (String JavaDoc)e.nextElement();
388             Object JavaDoc value = ctx.getAttribute(key);
389             System.out.println(" - " + key + " = " + value);
390         }
391     } // dump
392

393     /**
394      * Dump Session
395      * @param session session
396      */

397     public static void dump (HttpSession session)
398     {
399         System.out.println("Session " + session.getId());
400         System.out.println("- Created=" + new Timestamp(session.getCreationTime()));
401         if (!Log.isTraceLevel(9))
402             return;
403         boolean first = true;
404         Enumeration e = session.getAttributeNames();
405         while (e.hasMoreElements())
406         {
407             if (first)
408                 System.out.println("- Attributes:");
409             first = false;
410             String JavaDoc key = (String JavaDoc)e.nextElement();
411             Object JavaDoc value = session.getAttribute(key);
412             System.out.println(" - " + key + " = " + value);
413         }
414     } // dump (session)
415

416     /**
417      * Dump Request
418      * @param request request
419      */

420     public static void dump (HttpServletRequest request)
421     {
422         System.out.println("Request " + request.getProtocol() + " " + request.getMethod());
423         if (!Log.isTraceLevel(9))
424             return;
425         System.out.println("- Server=" + request.getServerName() + ", Port=" + request.getServerPort());
426         System.out.println("- ContextPath=" + request.getContextPath()
427             + ", ServletPath=" + request.getServletPath()
428             + ", Query=" + request.getQueryString());
429         System.out.println("- URI=" + request.getRequestURI() + ", URL=" + request.getRequestURL());
430         System.out.println("- AuthType=" + request.getAuthType());
431         System.out.println("- Secure=" + request.isSecure());
432         System.out.println("- PathInfo=" + request.getPathInfo() + " - " + request.getPathTranslated());
433         System.out.println("- UserPrincipal=" + request.getUserPrincipal());
434         //
435
boolean first = true;
436         Enumeration e = request.getHeaderNames();
437         /** */
438         while (e.hasMoreElements())
439         {
440             if (first)
441                 System.out.println("- Header:");
442             first = false;
443             String JavaDoc key = (String JavaDoc)e.nextElement();
444             Object JavaDoc value = request.getHeader(key);
445             System.out.println(" - " + key + " = " + value);
446         }
447         /** **/
448         first = true;
449         e = request.getParameterNames();
450         while (e.hasMoreElements())
451         {
452             if (first)
453                 System.out.println("- Parameter:");
454             first = false;
455             String JavaDoc key = (String JavaDoc)e.nextElement();
456             String JavaDoc value = request.getParameter(key);
457             System.out.println(" - " + key + " = " + value);
458         }
459         first = true;
460         e = request.getAttributeNames();
461         while (e.hasMoreElements())
462         {
463             if (first)
464                 System.out.println("- Attributes:");
465             first = false;
466             String JavaDoc key = (String JavaDoc)e.nextElement();
467             Object JavaDoc value = request.getAttribute(key);
468             System.out.println(" - " + key + " = " + value);
469         }
470         Cookie[] ccc = request.getCookies();
471         for (int i = 0; i < ccc.length; i++)
472         {
473             if (i == 0)
474                 System.out.println("- Cookies:");
475             System.out.println (" - " + ccc[i].getName ()
476                 + ", Domain=" + ccc[i].getDomain ()
477                 + ", Path=" + ccc[i].getPath ()
478                 + ", MaxAge=" + ccc[i].getMaxAge ());
479         }
480         System.out.println("- Encoding=" + request.getCharacterEncoding());
481         System.out.println("- Locale=" + request.getLocale());
482         first = true;
483         e = request.getLocales();
484         while (e.hasMoreElements())
485         {
486             if (first)
487                 System.out.println("- Locales:");
488             first = false;
489             System.out.println(" - " + e.nextElement());
490         }
491     } // dump (Request)
492

493     /*************************************************************************/
494
495     /**
496      * Add Footer (with diagnostics)
497      * @param request request
498      * @param response response
499      * @param servlet servlet
500      * @param body - Body to add footer
501      */

502     public static void addFooter(HttpServletRequest request, HttpServletResponse response,
503         HttpServlet servlet, body body)
504     {
505         body.addElement(new hr());
506         body.addElement(new comment(" --- Footer Start --- "));
507         // Command Line
508
p footer = new p();
509         footer.addElement(org.compiere.Compiere.DATE_VERSION + ": ");
510         footer.addElement(new a("javascript:diag_window();", "Window Info"));
511         footer.addElement(" - ");
512         footer.addElement(new a("javascript:diag_navigator();", "Browser Info"));
513         footer.addElement(" - ");
514         footer.addElement(new a("javascript:diag_request();", "Request Info"));
515         footer.addElement(" - ");
516         footer.addElement(new a("javascript:diag_document();", "Document Info"));
517         footer.addElement(" - ");
518         footer.addElement(new a("javascript:diag_form();", "Form Info"));
519         footer.addElement(" - ");
520         footer.addElement(new a("javascript:toggle('DEBUG');", "Servlet Info"));
521         footer.addElement(" - ");
522         footer.addElement(new a("javascript:diag_source();", "Show Source"));
523         footer.addElement("\n");
524         body.addElement(footer);
525
526         // Add ServletInfo
527
body.addElement(new br());
528         body.addElement(getServletInfo(request, response, servlet));
529         body.addElement(new script("hide('DEBUG');"));
530         body.addElement(new comment(" --- Footer End --- "));
531     } // getFooter
532

533     /**
534      * Get Information and put it in a HTML table
535      * @param request request
536      * @param response response
537      * @param servlet servlet
538      * @return Table
539      */

540     private static table getServletInfo (HttpServletRequest request,
541         HttpServletResponse response, HttpServlet servlet)
542     {
543         table table = new table();
544         table.setID("DEBUG");
545         Enumeration e;
546
547         tr space = new tr().addElement(new td().addElement("."));
548         // Request Info
549
table.addElement(space);
550         table.addElement(new tr().addElement(new td().addElement(new h3("Request Info")) ));
551         table.addElement(new tr().addElement(new td().addElement("Method"))
552                                     .addElement(new td().addElement(request.getMethod() )));
553         table.addElement(new tr().addElement(new td().addElement("Protocol"))
554                                     .addElement(new td().addElement(request.getProtocol() )));
555         table.addElement(new tr().addElement(new td().addElement("URI"))
556                                     .addElement(new td().addElement(request.getRequestURI() )));
557         table.addElement(new tr().addElement(new td().addElement("Context Path"))
558                                     .addElement(new td().addElement(request.getContextPath() )));
559         table.addElement(new tr().addElement(new td().addElement("Servlet Path"))
560                                     .addElement(new td().addElement(request.getServletPath() )));
561         table.addElement(new tr().addElement(new td().addElement("Path Info"))
562                                     .addElement(new td().addElement(request.getPathInfo() )));
563         table.addElement(new tr().addElement(new td().addElement("Path Translated"))
564                                     .addElement(new td().addElement(request.getPathTranslated() )));
565         table.addElement(new tr().addElement(new td().addElement("Query String"))
566                                     .addElement(new td().addElement(request.getQueryString() )));
567         table.addElement(new tr().addElement(new td().addElement("Content Length"))
568                                     .addElement(new td().addElement("" + request.getContentLength() )));
569         table.addElement(new tr().addElement(new td().addElement("Content Type"))
570                                     .addElement(new td().addElement(request.getContentType() )));
571         table.addElement(new tr().addElement(new td().addElement("Character Encoding"))
572                                     .addElement(new td().addElement(request.getCharacterEncoding() )));
573         table.addElement(new tr().addElement(new td().addElement("Locale"))
574                                     .addElement(new td().addElement(request.getLocale().toString() )));
575         table.addElement(new tr().addElement(new td().addElement("Schema"))
576                                     .addElement(new td().addElement(request.getScheme() )));
577         table.addElement(new tr().addElement(new td().addElement("Server Name"))
578                                     .addElement(new td().addElement(request.getServerName() )));
579         table.addElement(new tr().addElement(new td().addElement("Server Port"))
580                                     .addElement(new td().addElement("" + request.getServerPort() )));
581         table.addElement(new tr().addElement(new td().addElement("Remote User"))
582                                     .addElement(new td().addElement(request.getRemoteUser() )));
583         table.addElement(new tr().addElement(new td().addElement("Remote Address"))
584                                     .addElement(new td().addElement(request.getRemoteAddr() )));
585         table.addElement(new tr().addElement(new td().addElement("Remote Host"))
586                                     .addElement(new td().addElement(request.getRemoteHost() )));
587         table.addElement(new tr().addElement(new td().addElement("Authorization Type"))
588                                     .addElement(new td().addElement(request.getAuthType() )));
589         table.addElement(new tr().addElement(new td().addElement("User Principal"))
590                                     .addElement(new td().addElement(request.getUserPrincipal()==null ? "" : request.getUserPrincipal().toString())));
591         table.addElement(new tr().addElement(new td().addElement("IsSecure"))
592                                     .addElement(new td().addElement(request.isSecure() ? "true" : "false" )));
593
594         // Request Attributes
595
table.addElement(space);
596         table.addElement(new tr().addElement(new td().addElement(new h3("Request Attributes")) ));
597         e = request.getAttributeNames();
598         while (e.hasMoreElements())
599         {
600             String JavaDoc name = e.nextElement().toString();
601             String JavaDoc attrib = request.getAttribute(name).toString();
602             table.addElement(new tr().addElement(new td().addElement(name))
603                                         .addElement(new td().addElement(attrib)));
604         }
605
606         // Request Parameter
607
table.addElement(space);
608         table.addElement(new tr().addElement(new td().addElement(new h3("Req Parameters")) ));
609         e = request.getParameterNames();
610         while (e.hasMoreElements())
611         {
612             String JavaDoc name = (String JavaDoc)e.nextElement();
613             String JavaDoc para = request.getParameter(name);
614             table.addElement(new tr().addElement(new td().addElement(name))
615                                         .addElement(new td().addElement(para)));
616         }
617
618         // Request Header
619
table.addElement(space);
620         table.addElement(new tr().addElement(new td().addElement(new h3("Req Header")) ));
621         e = request.getHeaderNames();
622         while (e.hasMoreElements())
623         {
624             String JavaDoc name = (String JavaDoc)e.nextElement();
625             if (!name.equals("Cockie"))
626             {
627                 String JavaDoc hdr = request.getHeader(name);
628                 table.addElement(new tr().addElement(new td().addElement(name))
629                                             .addElement(new td().addElement(hdr)));
630             }
631         }
632
633         // Request Cookies
634
table.addElement(space);
635         table.addElement(new tr().addElement(new td().addElement(new h3("Req Cookies")) ));
636         Cookie[] cc = request.getCookies();
637         if (cc != null)
638         {
639             for (int i = 0; i < cc.length; i++)
640             {
641                 // Name and Comment
642
table.addElement(new tr().addElement(new td().addElement(cc[i].getName() ))
643                                             .addElement(new td().addElement(cc[i].getValue()) ));
644                 table.addElement(new tr().addElement(new td().addElement(cc[i].getName()+": Comment" ))
645                                             .addElement(new td().addElement(cc[i].getComment()) ));
646                 table.addElement(new tr().addElement(new td().addElement(cc[i].getName()+": Domain" ))
647                                             .addElement(new td().addElement(cc[i].getDomain()) ));
648                 table.addElement(new tr().addElement(new td().addElement(cc[i].getName()+": Max Age" ))
649                                             .addElement(new td().addElement(""+ cc[i].getMaxAge()) ));
650                 table.addElement(new tr().addElement(new td().addElement(cc[i].getName()+": Path" ))
651                                             .addElement(new td().addElement(cc[i].getPath()) ));
652                 table.addElement(new tr().addElement(new td().addElement(cc[i].getName()+": Is Secure" ))
653                                             .addElement(new td().addElement(cc[i].getSecure() ? "true" : "false") ));
654                 table.addElement(new tr().addElement(new td().addElement(cc[i].getName()+": Version" ))
655                                             .addElement(new td().addElement("" + cc[i].getVersion()) ));
656             }
657         } // Cookies
658

659         // Request Session Info
660
table.addElement(space);
661         table.addElement(new tr().addElement(new td().addElement(new h3("Req Session")) ));
662         HttpSession session = request.getSession(true);
663         table.addElement(new tr().addElement(new td().addElement("Session ID"))
664                                     .addElement(new td().addElement(session.getId() )));
665         Timestamp ts = new Timestamp(session.getCreationTime());
666         table.addElement(new tr().addElement(new td().addElement("Created"))
667                                     .addElement(new td().addElement(ts.toString() )));
668         ts = new Timestamp(session.getLastAccessedTime());
669         table.addElement(new tr().addElement(new td().addElement("Accessed"))
670                                     .addElement(new td().addElement(ts.toString() )));
671         table.addElement(new tr().addElement(new td().addElement("Request Session ID"))
672                                     .addElement(new td().addElement(request.getRequestedSessionId() )));
673         table.addElement(new tr().addElement(new td().addElement(".. via Cookie"))
674                                     .addElement(new td().addElement("" + request.isRequestedSessionIdFromCookie() )));
675         table.addElement(new tr().addElement(new td().addElement(".. via URL"))
676                                     .addElement(new td().addElement("" + request.isRequestedSessionIdFromURL() )));
677         table.addElement(new tr().addElement(new td().addElement("Valid"))
678                                     .addElement(new td().addElement("" + request.isRequestedSessionIdValid() )));
679
680         // Request Session Attributes
681
table.addElement(space);
682         table.addElement(new tr().addElement(new td().addElement(new h3("Session Attributes")) ));
683         e = session.getAttributeNames();
684         while (e.hasMoreElements())
685         {
686             String JavaDoc name = (String JavaDoc)e.nextElement();
687             String JavaDoc attrib = session.getAttribute(name).toString();
688             table.addElement(new tr().addElement(new td().addElement(name))
689                                         .addElement(new td().addElement(attrib)));
690         }
691
692         // Response Info
693
table.addElement(space);
694         table.addElement(new tr().addElement(new td().addElement(new h3("Response")) ));
695         table.addElement(new tr().addElement(new td().addElement("Buffer Size"))
696                                     .addElement(new td().addElement(String.valueOf(response.getBufferSize()) )));
697         table.addElement(new tr().addElement(new td().addElement("Character Encoding"))
698                                     .addElement(new td().addElement(response.getCharacterEncoding() )));
699         table.addElement(new tr().addElement(new td().addElement("Locale"))
700                                     .addElement(new td().addElement(response.getLocale()==null ? "null" : response.getLocale().toString())));
701
702         // Servlet
703
table.addElement(space);
704         table.addElement(new tr().addElement(new td().addElement(new h3("Servlet")) ));
705         table.addElement(new tr().addElement(new td().addElement("Name"))
706                                         .addElement(new td().addElement(servlet.getServletName())));
707         table.addElement(new tr().addElement(new td().addElement("Info"))
708                                         .addElement(new td().addElement(servlet.getServletInfo())));
709
710         // Servlet Init
711
table.addElement(space);
712         table.addElement(new tr().addElement(new td().addElement(new h3("Servlet Init Parameter")) ));
713         e = servlet.getInitParameterNames();
714         // same as: servlet.getServletConfig().getInitParameterNames();
715
while (e.hasMoreElements())
716         {
717             String JavaDoc name = (String JavaDoc)e.nextElement();
718             String JavaDoc para = servlet.getInitParameter(name);
719             table.addElement(new tr().addElement(new td().addElement(name))
720                                         .addElement(new td().addElement(para)));
721         }
722
723         // Servlet Context
724
table.addElement(space);
725         table.addElement(new tr().addElement(new td().addElement(new h3("Servlet Context")) ));
726         ServletContext servCtx = servlet.getServletContext();
727         e = servCtx.getAttributeNames();
728         while (e.hasMoreElements())
729         {
730             String JavaDoc name = (String JavaDoc)e.nextElement();
731             String JavaDoc attrib = servCtx.getAttribute(name).toString();
732             table.addElement(new tr().addElement(new td().addElement(name))
733                                         .addElement(new td().addElement(attrib)));
734         }
735
736         // Servlet Context
737
table.addElement(space);
738         table.addElement(new tr().addElement(new td().addElement(new h3("Servlet Context Init Parameter")) ));
739         e = servCtx.getInitParameterNames();
740         while (e.hasMoreElements())
741         {
742             String JavaDoc name = (String JavaDoc)e.nextElement();
743             String JavaDoc attrib = servCtx.getInitParameter(name).toString();
744             table.addElement(new tr().addElement(new td().addElement(name))
745                                         .addElement(new td().addElement(attrib)));
746         }
747
748         /* */
749         return table;
750     } // getServletInfo
751

752 } // WEnv
753
Popular Tags