package com.ack.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Map the location of the servlet to handle at error
* with the supplied status code
*
...
404
/servlet/com.ack.web.servlet.ServletErrorHandler
*/
public class ServletErrorHandler extends HttpServlet {
public void doGet( HttpServletRequest req, HttpServletResponse res )
throws ServletException, IOException {
res.setContentType( "text/html" );
PrintWriter pw = res.getWriter();
String statusCode = getRequestAttribute( req,
"javax.servlet.error.status_code",
"status code not supplied" );
String errorMsg = getRequestAttribute( req,
"javax.servlet.error.message",
"error msg not supplied" );
pw.println( "Error Code: " + statusCode + "
" );
pw.println( "Error Message: " + errorMsg + "" );
pw.println( "
Problem accessing: " + req.getRequestURI() + "
" );
pw.println( "
" );
pw.println( new java.util.Date( System.currentTimeMillis() ) );
}
private String getRequestAttribute( HttpServletRequest req,
String name,
String defaultValue ) {
Object value = req.getAttribute( name );
return ( value != null ) ? value.toString() : defaultValue;
}
}