@@ -128,38 +128,25 @@ public void run ()
128
128
}.start ();
129
129
}
130
130
131
- protected void doGet (final HttpServletRequest request , final HttpServletResponse response )
131
+ protected void doError (final HttpServletRequest request , final HttpServletResponse response )
132
132
throws IOException
133
133
{
134
+ response .setStatus (HttpServletResponse .SC_NOT_FOUND );
134
135
response .setHeader ("Content-Type" , "text/html" );
135
136
final PrintWriter stream = response .getWriter ();
136
- stream .write ("<html>\n " );
137
- stream .write ("<head>\n " );
138
- if (this .htmlHead != null )
139
- stream .write (this .htmlHead );
140
- stream .write ("</head>\n " );
141
- stream .write ("<body>\n " );
142
- final String path = request .getPathInfo ();
143
- if ((path == null ) || path .equals ("/" ))
144
- this .doGetMain (request , response );
145
- else if (path .equals ("/event-log" ))
146
- this .doGetEventLog (request , response );
147
- else
148
- this .doGetError (request , response );
149
- stream .write ("</body>\n " );
150
- stream .write ("</html>\n " );
137
+ this .doPageHeader (request , response , stream );
138
+ stream .write ("<p>invalid URI</p>\n " );
139
+ this .doPageFooter (request , response , stream );
151
140
stream .close ();
152
-
153
141
}
154
142
155
- protected void doGetError (final HttpServletRequest request , final HttpServletResponse response )
156
- throws IOException
157
- {}
158
-
159
- protected void doGetEventLog (final HttpServletRequest request , final HttpServletResponse response )
143
+ protected void doEventLog (final HttpServletRequest request , final HttpServletResponse response )
160
144
throws IOException
161
145
{
146
+ response .setStatus (HttpServletResponse .SC_OK );
147
+ response .setHeader ("Content-Type" , "text/html" );
162
148
final PrintWriter stream = response .getWriter ();
149
+ this .doPageHeader (request , response , stream );
163
150
final EventFilter filter = new EventFilter (request );
164
151
synchronized (this .appender .monitor ) {
165
152
this .appender .drainEvents ();
@@ -170,20 +157,65 @@ protected void doGetEventLog (final HttpServletRequest request, final HttpServle
170
157
stream .write (this .layout .doLayout (event ));
171
158
stream .write (this .layout .getPresentationFooter ());
172
159
}
160
+ this .doPageFooter (request , response , stream );
161
+ stream .close ();
173
162
}
174
163
175
- protected void doGetMain (final HttpServletRequest request , final HttpServletResponse response )
164
+ protected void doGet (final HttpServletRequest request , final HttpServletResponse response )
176
165
throws IOException
177
166
{
167
+ final String path = request .getPathInfo ();
168
+ if ((path == null ) || path .equals ("/" ))
169
+ this .doMain (request , response );
170
+ else if (path .equals ("/event-log" ))
171
+ this .doEventLog (request , response );
172
+ else
173
+ this .doError (request , response );
174
+ }
175
+
176
+ protected void doMain (final HttpServletRequest request , final HttpServletResponse response )
177
+ throws IOException
178
+ {
179
+ final String requestUri = request .getRequestURI ();
180
+ final String query = request .getQueryString ();
181
+ if (!requestUri .endsWith ("/" )) {
182
+ response .setStatus (HttpServletResponse .SC_MOVED_TEMPORARILY );
183
+ response .setHeader ("Location" , requestUri + "/" + ((query != null ) ? query : "" ));
184
+ response .getOutputStream ().close ();
185
+ return ;
186
+ }
187
+ response .setStatus (HttpServletResponse .SC_OK );
188
+ response .setHeader ("Content-Type" , "text/html" );
178
189
final PrintWriter stream = response .getWriter ();
179
-
190
+ this . doPageHeader ( request , response , stream );
180
191
stream .write ("<iframe class=\" EventLog\" src=\" ./event-log" );
181
- final String query = request .getQueryString ();
182
192
if ((query != null ) && !query .isEmpty ()) {
183
193
stream .write ("?" );
184
194
stream .write (query );
185
- stream .write ("\" frameborder=\" 0\" scrolling=\" auto\" />" );
186
195
}
196
+ stream .write ("\" frameborder=\" 0\" scrolling=\" auto\" />" );
197
+ this .doPageFooter (request , response , stream );
198
+ stream .close ();
199
+ }
200
+
201
+ protected void doPageFooter (
202
+ @ SuppressWarnings ("unused" ) final HttpServletRequest request ,
203
+ @ SuppressWarnings ("unused" ) final HttpServletResponse response , final PrintWriter stream )
204
+ {
205
+ stream .write ("</body>\n " );
206
+ stream .write ("</html>\n " );
207
+ }
208
+
209
+ protected void doPageHeader (
210
+ @ SuppressWarnings ("unused" ) final HttpServletRequest request ,
211
+ @ SuppressWarnings ("unused" ) final HttpServletResponse response , final PrintWriter stream )
212
+ {
213
+ stream .write ("<html>\n " );
214
+ stream .write ("<head>\n " );
215
+ if (this .htmlHead != null )
216
+ stream .write (this .htmlHead );
217
+ stream .write ("</head>\n " );
218
+ stream .write ("<body>\n " );
187
219
}
188
220
189
221
private EventViewerAppender appender ;
@@ -204,7 +236,7 @@ public EventFilter (final HttpServletRequest request)
204
236
super ();
205
237
this .levelValue = request .getParameter ("level" );
206
238
this .mdcValues = null ;
207
- final Enumeration <String > parameterNames = request .getParameterNames ();
239
+ @ SuppressWarnings ( "unchecked" ) final Enumeration <String > parameterNames = request .getParameterNames ();
208
240
while (parameterNames .hasMoreElements ()) {
209
241
final String parameterName = parameterNames .nextElement ();
210
242
if (!parameterName .startsWith ("mdc." ))
0 commit comments