KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quadcap > app > qws > ActionList


1 package com.quadcap.app.qws;
2
3 /* Copyright 1999 - 2003 Quadcap Software. All rights reserved.
4  *
5  * This software is distributed under the Quadcap Free Software License.
6  * This software may be used or modified for any purpose, personal or
7  * commercial. Open Source redistributions are permitted. Commercial
8  * redistribution of larger works derived from, or works which bundle
9  * this software requires a "Commercial Redistribution License"; see
10  * http://www.quadcap.com/purchase.
11  *
12  * Redistributions qualify as "Open Source" under one of the following terms:
13  *
14  * Redistributions are made at no charge beyond the reasonable cost of
15  * materials and delivery.
16  *
17  * Redistributions are accompanied by a copy of the Source Code or by an
18  * irrevocable offer to provide a copy of the Source Code for up to three
19  * years at the cost of materials and delivery. Such redistributions
20  * must allow further use, modification, and redistribution of the Source
21  * Code under substantially the same terms as this license.
22  *
23  * Redistributions of source code must retain the copyright notices as they
24  * appear in each source code file, these license terms, and the
25  * disclaimer/limitation of liability set forth as paragraph 6 below.
26  *
27  * Redistributions in binary form must reproduce this Copyright Notice,
28  * these license terms, and the disclaimer/limitation of liability set
29  * forth as paragraph 6 below, in the documentation and/or other materials
30  * provided with the distribution.
31  *
32  * The Software is provided on an "AS IS" basis. No warranty is
33  * provided that the Software is free of defects, or fit for a
34  * particular purpose.
35  *
36  * Limitation of Liability. Quadcap Software shall not be liable
37  * for any damages suffered by the Licensee or any third party resulting
38  * from use of the Software.
39  */

40
41 import java.io.IOException JavaDoc;
42
43 import java.util.Enumeration JavaDoc;
44 import java.util.HashMap JavaDoc;
45
46 import javax.servlet.RequestDispatcher JavaDoc;
47 import javax.servlet.ServletConfig JavaDoc;
48 import javax.servlet.ServletContext JavaDoc;
49 import javax.servlet.ServletException JavaDoc;
50
51 import javax.servlet.http.HttpServletRequest JavaDoc;
52 import javax.servlet.http.HttpServletResponse JavaDoc;
53
54 import com.quadcap.http.server22.WebApplication;
55 import com.quadcap.http.server22.WebServer;
56
57 /**
58  * Implement the 'list' action, which sets the "applications" request
59  * attribute to be a HashMap of 'context' -> 'application'. Each
60  * 'application' object is a HashMap containing the interesting properties
61  * of that application.
62  *
63  * @author Stan Bailes
64  */

65 public class ActionList implements Action {
66     ServletConfig JavaDoc config;
67     WebServer server;
68     
69     public void init(ServletConfig JavaDoc config) {
70         this.config = config;
71         ServletContext JavaDoc context = config.getServletContext();
72         this.server = (WebServer)context.getAttribute("server");
73     }
74     
75     public void service(HttpServletRequest JavaDoc request,
76                         HttpServletResponse JavaDoc response)
77         throws Exception JavaDoc
78     {
79         HashMap JavaDoc map = new HashMap JavaDoc();
80         Enumeration JavaDoc names = server.getContextRoots();
81         while (names.hasMoreElements()) {
82             String JavaDoc root = names.nextElement().toString();
83             WebApplication app = server.getContextForRoot(root);
84             HashMap JavaDoc appMap = makeMap(app);
85             map.put(root, appMap);
86         }
87         request.setAttribute("applications", map);
88         forward(request, response, "/list.jsp");
89     }
90
91     final HashMap JavaDoc makeMap(WebApplication app) {
92         HashMap JavaDoc map = new HashMap JavaDoc();
93         map.put("display-name", app.getDisplayName());
94         map.put("root-path", app.getRootPath());
95         //map.put("session-timeout", new Integer(app.getSessionTimeout()));
96
//map.put("error-page", app.getErrorPage());
97
//map.put("init-parameters", getInitParameters(app));
98
//map.put("attributes", getAttributes(app));
99
//map.put("servlets", getServlets(app));
100
//map.put("sessions", getSessions(app));
101
return map;
102     }
103
104     final HashMap JavaDoc getInitParameters(WebApplication app) {
105         HashMap JavaDoc map = new HashMap JavaDoc();
106         Enumeration JavaDoc e = app.getInitParameterNames();
107         while (e.hasMoreElements()) {
108             String JavaDoc name = e.nextElement().toString();
109             String JavaDoc param = app.getInitParameter(name);
110             map.put(name, param);
111         }
112         return map;
113     }
114
115     final HashMap JavaDoc getAttributes(WebApplication app) {
116         HashMap JavaDoc map = new HashMap JavaDoc();
117         Enumeration JavaDoc e = app.getAttributeNames();
118         while (e.hasMoreElements()) {
119             String JavaDoc name = e.nextElement().toString();
120             Object JavaDoc attr = app.getAttribute(name);
121             map.put(name, attr);
122         }
123         return map;
124     }
125
126 // final HashMap getServlets(WebApplication app) {
127
// HashMap map = new HashMap();
128
// return map;
129
// }
130

131 // final HashMap getSessions(WebApplication app) {
132
// HashMap map = new HashMap();
133
// return map;
134
// }
135

136     public void forward(HttpServletRequest JavaDoc request,
137                         HttpServletResponse JavaDoc response,
138                         String JavaDoc page)
139         throws ServletException JavaDoc, IOException JavaDoc
140     {
141         ServletContext JavaDoc context = config.getServletContext();
142         RequestDispatcher JavaDoc rd = context.getRequestDispatcher(page);
143         rd.forward(request, response);
144     }
145
146 }
147
Popular Tags