View Javadoc

1   /*
2    * $Id: DefaultServlet.java,v 1.3 2005/03/11 14:23:21 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.dataservice.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     
27     /*** Do same on POST requests as GET requests */
28     public void doPost(HttpServletRequest request,
29                       HttpServletResponse response) throws ServletException, IOException {
30        doGet(request, response);
31     }
32     
33     /*** Need to do something better than this... */
34     protected void doError(HttpServletResponse response, String title, Throwable th) throws IOException {
35        log.error(title, th);
36  //    response.sendError(response.SC_INTERNAL_SERVER_ERROR, title);
37        try {
38           try {
39              response.setContentType("text/html");
40           }
41           catch (RuntimeException re) {
42              //if we can't set the type, some stuff has probably already been written out. Write out the message in plain
43              response.getWriter().println("------------------------------------------------------------------");
44              if (title != null) {
45                 response.getWriter().println(ServletHelper.makeSafeForHtml(title));
46              }
47              if (th != null) {
48                 th.printStackTrace(response.getWriter());
49              }
50              return;
51           }
52           response.getWriter().print(ServletHelper.exceptionAsHtmlPage(title, th));
53        }
54        catch (IOException ioe) {
55           log.error("Could not getWriter() on response to give error details to user");
56        }
57     }
58  
59  }