KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > winstone > ErrorServlet


1 /*
2  * Copyright 2003-2006 Rick Knowles <winstone-devel at lists sourceforge net>
3  * Distributed under the terms of either:
4  * - the common development and distribution license (CDDL), v1.0; or
5  * - the GNU Lesser General Public License, v2.1 or later
6  */

7 package winstone;
8
9 import java.io.IOException JavaDoc;
10 import java.io.PrintWriter JavaDoc;
11 import java.io.StringWriter JavaDoc;
12 import java.io.Writer JavaDoc;
13 import java.util.Date JavaDoc;
14
15 import javax.servlet.ServletException JavaDoc;
16 import javax.servlet.ServletRequest JavaDoc;
17 import javax.servlet.ServletResponse JavaDoc;
18 import javax.servlet.http.HttpServlet JavaDoc;
19
20 /**
21  * A simple servlet that writes out the body of the error
22  *
23  * @author <a HREF="mailto:rick_knowles@hotmail.com">Rick Knowles</a>
24  * @version $Id: ErrorServlet.java,v 1.3 2006/02/28 07:32:47 rickknowles Exp $
25  */

26 public class ErrorServlet extends HttpServlet JavaDoc {
27     
28     public void service(ServletRequest JavaDoc request, ServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc {
29         
30         Integer JavaDoc sc = (Integer JavaDoc) request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
31         String JavaDoc msg = (String JavaDoc) request.getAttribute(RequestDispatcher.ERROR_MESSAGE);
32         Throwable JavaDoc err = (Throwable JavaDoc) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
33         
34         StringWriter JavaDoc sw = new StringWriter JavaDoc();
35         PrintWriter JavaDoc pw = new PrintWriter JavaDoc(sw);
36         if (err != null) {
37             err.printStackTrace(pw);
38         } else {
39             pw.println("(none)");
40         }
41         pw.flush();
42          
43         // If we are here there was no error servlet, so show the default error page
44
String JavaDoc output = Launcher.RESOURCES.getString("WinstoneResponse.ErrorPage",
45                 new String JavaDoc[] { sc + "", (msg == null ? "" : msg), sw.toString(),
46                 Launcher.RESOURCES.getString("ServerVersion"),
47                         "" + new Date JavaDoc() });
48         response.setContentLength(output.getBytes(response.getCharacterEncoding()).length);
49         Writer JavaDoc out = response.getWriter();
50         out.write(output);
51         out.flush();
52     }
53 }
54
Popular Tags