org.benow.web.servlet
Class HandlerServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.benow.web.servlet.BasicServlet
              extended by org.benow.web.servlet.HandlerServlet
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
Direct Known Subclasses:
HttpServiceProviderServlet, WebServiceServlet

public abstract class HandlerServlet
extends BasicServlet

Responds to request by getting pooled request handler, created by descendant.

Author:
andy
See Also:
#doGet(HandlerServletRequest, HttpServletResponse), createHandler(), RequestHandler, Serialized Form

Nested Class Summary
 class HandlerServlet.RequestHandlerPool
           
 
Field Summary
static org.benow.java.config.entry.ClassConfigurationEntry CFG_ERROR_HANDLERS
           
protected static java.util.List<org.benow.error.ErrorHandler> errorHandlers
           
 
Fields inherited from class org.benow.web.servlet.BasicServlet
externalURLHttp, externalURLHttps
 
Constructor Summary
HandlerServlet()
           
 
Method Summary
protected  void _doGet(java.lang.String url, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           
protected  boolean beforeHandle(RequestHandler handler, java.lang.String url, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          do something before the request is handled.
protected abstract  RequestHandler createHandler()
           
protected  void doHandleRequest(RequestHandler handler, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String url)
           
 void doPost(javax.servlet.http.HttpServletRequest arg0, javax.servlet.http.HttpServletResponse arg1)
           
 void onUnexpectedError(java.lang.Throwable t)
           
 
Methods inherited from class org.benow.web.servlet.BasicServlet
doGet, init, logHit
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CFG_ERROR_HANDLERS

public static final org.benow.java.config.entry.ClassConfigurationEntry CFG_ERROR_HANDLERS

errorHandlers

protected static java.util.List<org.benow.error.ErrorHandler> errorHandlers
Constructor Detail

HandlerServlet

public HandlerServlet()
Method Detail

_doGet

protected void _doGet(java.lang.String url,
                      javax.servlet.http.HttpServletRequest request,
                      javax.servlet.http.HttpServletResponse response)
               throws java.lang.Throwable
Specified by:
_doGet in class BasicServlet
Throws:
java.lang.Throwable

beforeHandle

protected boolean beforeHandle(RequestHandler handler,
                               java.lang.String url,
                               javax.servlet.http.HttpServletRequest request,
                               javax.servlet.http.HttpServletResponse response)
do something before the request is handled.

Parameters:
handler -
url - requested url
request -
response -
Returns:
true if handler is to handle, false to abort delivery

doHandleRequest

protected void doHandleRequest(RequestHandler handler,
                               javax.servlet.http.HttpServletRequest request,
                               javax.servlet.http.HttpServletResponse response,
                               java.lang.String url)
                        throws java.lang.Throwable
Throws:
java.lang.Throwable

createHandler

protected abstract RequestHandler createHandler()
Returns:
an new handler to handle the request

doPost

public final void doPost(javax.servlet.http.HttpServletRequest arg0,
                         javax.servlet.http.HttpServletResponse arg1)
                  throws javax.servlet.ServletException,
                         java.io.IOException
Overrides:
doPost in class javax.servlet.http.HttpServlet
Throws:
javax.servlet.ServletException
java.io.IOException

onUnexpectedError

public void onUnexpectedError(java.lang.Throwable t)