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.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
37 try {
38 try {
39 response.setContentType("text/html");
40 }
41 catch (RuntimeException re) {
42
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 }