View Javadoc

1   /*
2    * $Id: DefaultServlet.java,v 1.2 2004/11/03 00:17:56 mch Exp $
3    */
4   
5   package org.astrogrid.webapp;
6   
7   import java.io.IOException;
8   import javax.servlet.ServletException;
9   import javax.servlet.http.HttpServlet;
10  import javax.servlet.http.HttpServletRequest;
11  import javax.servlet.http.HttpServletResponse;
12  import org.apache.commons.logging.Log;
13  import org.apache.commons.logging.LogFactory;
14  import org.astrogrid.datacenter.service.ServletHelper;
15  
16  /***
17   * A 'standard' servlet that provides standard methods for the standard
18   * datacenter servlet.
19   *
20   * @author mch
21   */
22  public abstract class DefaultServlet extends HttpServlet {
23     
24     Log log = LogFactory.getLog(DefaultServlet.class);
25     
26     /*** Do same on POST requests as GET requests */
27     public void doPost(HttpServletRequest request,
28                       HttpServletResponse response) throws ServletException, IOException {
29        doGet(request, response);
30     }
31     
32     /*** Need to do something better than this... */
33     protected void doError(HttpServletResponse response, String title, Throwable th) throws IOException {
34        log.error(title, th);
35        try {
36           try {
37              response.setContentType("text/html");
38           }
39           catch (RuntimeException re) {
40              //if we can't set the type, some stuff has probably already been written out. Write out the message in plain
41              response.getWriter().println("------------------------------------------------------------------");
42              if (title != null) {
43                 response.getWriter().println(ServletHelper.makeSafeForHtml(title));
44              }
45              if (th != null) {
46                 th.printStackTrace(response.getWriter());
47              }
48              return;
49           }
50           response.getWriter().print(ServletHelper.exceptionAsHtmlPage(title, th, null));
51        }
52        catch (IOException ioe) {
53           log.error("Could not getWriter() on response to give error details to user");
54        }
55     }
56  
57  }