1
2
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
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 }