Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.struts.action
Class RequestProcessor

    java.lang.Object
      |
      +--org.apache.struts.action.RequestProcessor

Direct Known Subclasses:
  TilesRequestProcessor

public class RequestProcessor
extends java.lang.Object

RequestProcessor contains the processing logic that the Struts controller servlet performs as it receives each servlet request from the container. You can customize the request processing behavior by subclassing this class and overriding the method(s) whose behavior you are interested in changing.

Since:
  Struts 1.1
Version:
  $Revision: 1.1 $ $Date: 2003/08/22 08:14:18 $
Author:
  Craig R. McClanahan, Cedric Dumoulin

Field Summary
`protected java.util.HashMap` | `actions` The set of Action instances that have been created and initialized, keyed by the fully qualified Java class name of the Action class.
`protected ModuleConfig` | `appConfig` Deprecated. use moduleConfig instead.
`static java.lang.String` | `INCLUDE_PATH_INFO` The request attribute under which the path information is stored for processing during a RequestDispatcher.include() call.
`static java.lang.String` | `INCLUDE_SERVLET_PATH` The request attribute under which the servlet path information is stored for processing during a RequestDispatcher.include() call.
`protected static org.apache.commons.logging.Log` | `log` Commons Logging instance.
`protected ModuleConfig` | `moduleConfig` The ModuleConfiguration we are associated with.
`protected ActionServlet` | `servlet` The controller servlet we are associated with.

Constructor Summary
`RequestProcessor()`

Method Summary
`void` | `destroy()` Clean up in preparation for a shutdown of this application.
`protected void` | `doForward(java.lang.String uri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Do a forward to specified uri using request dispatcher.
`protected void` | `doInclude(java.lang.String uri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Do an include of specified uri using request dispatcher.
`int` | `getDebug()` Deprecated. Configure the logging detail level in your underlying logging implementation
`protected MessageResources` | `getInternal()` Return the `MessageResources` instance containing our internal message strings.
`protected javax.servlet.ServletContext` | `getServletContext()` Return the ServletContext for the web application we are running in.
`void` | `init(ActionServlet servlet, ModuleConfig moduleConfig)` Initialize this request processor instance.
`protected void` | `internalModuleRelativeForward(java.lang.String uri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Do a module relative forward to specified uri using request dispatcher.
`protected void` | `internalModuleRelativeInclude(java.lang.String uri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Do a module relative include to specified uri using request dispatcher.
`protected void` | `log(java.lang.String message)` Log the specified message to the servlet context log for this web application.
`protected void` | `log(java.lang.String message, java.lang.Throwable exception)` Log the specified message and exception to the servlet context log for this web application.
`void` | `process(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Process an `HttpServletRequest` and create the corresponding `HttpServletResponse`.
`protected Action` | `processActionCreate(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)` Return an `Action` instance that will be used to process the current request, creating a new one if necessary.
`protected ActionForm` | `processActionForm(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)` Retrieve and return the `ActionForm` bean associated with this mapping, creating and stashing one if necessary.
`protected void` | `processActionForward(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionForward forward)` Deprecated. Use processForwardConfig() instead.
`protected ActionForward` | `processActionPerform(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Action action, ActionForm form, ActionMapping mapping)` Ask the specified `Action` instance to handle this request.
`protected void` | `processContent(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Set the default content type (with optional character encoding) for all responses if requested.
`protected ActionForward` | `processException(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Exception exception, ActionForm form, ActionMapping mapping)` Ask our exception handler to handle the exception.
`protected boolean` | `processForward(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)` Process a forward requested by this mapping (if any).
`protected void` | `processForwardConfig(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ForwardConfig forward)` Forward or redirect to the specified destination, by the specified mechanism.
`protected boolean` | `processInclude(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)` Process an include requested by this mapping (if any).
`protected void` | `processLocale(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Automatically select a Locale for the current user, if requested.
`protected ActionMapping` | `processMapping(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String path)` Select the mapping used to process the selection path for this request.
`protected javax.servlet.http.HttpServletRequest` | `processMultipart(javax.servlet.http.HttpServletRequest request)` If this is a multipart request, wrap it with a special wrapper.
`protected void` | `processNoCache(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Set the no-cache headers for all responses, if requested.
`protected java.lang.String` | `processPath(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Identify and return the path component (from the request URI) that we will use to select an ActionMapping to dispatch with.
`protected void` | `processPopulate(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionForm form, ActionMapping mapping)` Populate the properties of the specified ActionForm instance from the request parameters included with this request.
`protected boolean` | `processPreprocess(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` General-purpose preprocessing hook that can be overridden as required by subclasses.
`protected boolean` | `processRoles(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)` If this action is protected by security roles, make sure that the current user possesses at least one of them.
`protected boolean` | `processValidate(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionForm form, ActionMapping mapping)` If this request was not cancelled, and the request's `ActionMapping` has not disabled validation, call the `validate()` method of the specified `ActionForm`, and forward back to the input form if there were any errors.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### INCLUDE_PATH_INFO

    public static final java.lang.String INCLUDE_PATH_INFO

  The request attribute under which the path information is stored for processing during a RequestDispatcher.include() call.

  See Also:
    Constant Field Values

### INCLUDE_SERVLET_PATH

    public static final java.lang.String INCLUDE_SERVLET_PATH

  The request attribute under which the servlet path information is stored for processing during a RequestDispatcher.include() call.

  See Also:
    Constant Field Values

### actions

    protected java.util.HashMap actions

  The set of Action instances that have been created and initialized, keyed by the fully qualified Java class name of the Action class.

### appConfig

    protected ModuleConfig appConfig

  Deprecated. use moduleConfig instead.

  The ModuleConfiguration we are associated with.

### moduleConfig

    protected ModuleConfig moduleConfig

  The ModuleConfiguration we are associated with.

### log

    protected static org.apache.commons.logging.Log log

  Commons Logging instance.

### servlet

    protected ActionServlet servlet

  The controller servlet we are associated with.

Constructor Detail

### RequestProcessor

    public RequestProcessor()

Method Detail

### destroy

    public void destroy()

  Clean up in preparation for a shutdown of this application.

### init

    public void init(ActionServlet servlet,
                     ModuleConfig moduleConfig)
              throws javax.servlet.ServletException

  Initialize this request processor instance.

  Parameters:
    `servlet` - The ActionServlet we are associated with
    `moduleConfig` - The ModuleConfig we are associated with.
  Throws:
    `javax.servlet.ServletException` - If an error occor during initialization

### process

    public void process(javax.servlet.http.HttpServletRequest request,
                        javax.servlet.http.HttpServletResponse response)
                 throws java.io.IOException,
                        javax.servlet.ServletException

  Process an `HttpServletRequest` and create the corresponding `HttpServletResponse`.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a processing exception occurs

### processActionCreate

    protected Action processActionCreate(javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response,
                                         ActionMapping mapping)
                                  throws java.io.IOException

  Return an `Action` instance that will be used to process the current request, creating a new one if necessary.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `mapping` - The mapping we are using
  Throws:
    `java.io.IOException` - if an input/output error occurs

### processActionForm

    protected ActionForm processActionForm(javax.servlet.http.HttpServletRequest request,
                                           javax.servlet.http.HttpServletResponse response,
                                           ActionMapping mapping)

  Retrieve and return the `ActionForm` bean associated with this mapping, creating and stashing one if necessary. If there is no form bean associated with this mapping, return `null`.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `mapping` - The mapping we are using

### processActionForward

    protected void processActionForward(javax.servlet.http.HttpServletRequest request,
                                        javax.servlet.http.HttpServletResponse response,
                                        ActionForward forward)
                                 throws java.io.IOException,
                                        javax.servlet.ServletException

  Deprecated. Use processForwardConfig() instead.

  Forward or redirect to the specified destination, by the specified mechanism. This method takes the old ActionForward object as parameter. User should use `processForwardConfig(HttpServletRequest, HttpServletResponse,ForwardConfig)` when possible.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `forward` - The ActionForward controlling where we go next
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet exception occurs

### processForwardConfig

    protected void processForwardConfig(javax.servlet.http.HttpServletRequest request,
                                        javax.servlet.http.HttpServletResponse response,
                                        ForwardConfig forward)
                                 throws java.io.IOException,
                                        javax.servlet.ServletException

  Forward or redirect to the specified destination, by the specified mechanism. This method uses a ForwardConfig object instead an ActionForward.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `forward` - The ForwardConfig controlling where we go next
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet exception occurs

### processActionPerform

    protected ActionForward processActionPerform(javax.servlet.http.HttpServletRequest request,
                                                 javax.servlet.http.HttpServletResponse response,
                                                 Action action,
                                                 ActionForm form,
                                                 ActionMapping mapping)
                                          throws java.io.IOException,
                                                 javax.servlet.ServletException

  Ask the specified `Action` instance to handle this request. Return the `ActionForward` instance (if any) returned by the called `Action` for further processing.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `action` - The Action instance to be used
    `form` - The ActionForm instance to pass to this Action
    `mapping` - The ActionMapping instance to pass to this Action
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet exception occurs

### processContent

    protected void processContent(javax.servlet.http.HttpServletRequest request,
                                  javax.servlet.http.HttpServletResponse response)

  Set the default content type (with optional character encoding) for all responses if requested. NOTE - This header will be overridden automatically if a `RequestDispatcher.forward()` call is ultimately invoked.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating

### processException

    protected ActionForward processException(javax.servlet.http.HttpServletRequest request,
                                             javax.servlet.http.HttpServletResponse response,
                                             java.lang.Exception exception,
                                             ActionForm form,
                                             ActionMapping mapping)
                                      throws java.io.IOException,
                                             javax.servlet.ServletException

  Ask our exception handler to handle the exception. Return the `ActionForward` instance (if any) returned by the called `ExceptionHandler`.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are processing
    `exception` - The exception being handled
    `form` - The ActionForm we are processing
    `mapping` - The ActionMapping we are using
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet exception occurs

### processForward

    protected boolean processForward(javax.servlet.http.HttpServletRequest request,
                                     javax.servlet.http.HttpServletResponse response,
                                     ActionMapping mapping)
                              throws java.io.IOException,
                                     javax.servlet.ServletException

  Process a forward requested by this mapping (if any). Return `true` if standard processing should continue, or `false` if we have already handled this request.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `mapping` - The ActionMapping we are using
    `java.io.IOException`
    `javax.servlet.ServletException`

### processInclude

    protected boolean processInclude(javax.servlet.http.HttpServletRequest request,
                                     javax.servlet.http.HttpServletResponse response,
                                     ActionMapping mapping)
                              throws java.io.IOException,
                                     javax.servlet.ServletException

  Process an include requested by this mapping (if any). Return `true` if standard processing should continue, or `false` if we have already handled this request.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `mapping` - The ActionMapping we are using
    `java.io.IOException`
    `javax.servlet.ServletException`

### processLocale

    protected void processLocale(javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response)

  Automatically select a Locale for the current user, if requested. NOTE - configuring Locale selection will trigger the creation of a new `HttpSession` if necessary.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating

### processMapping

    protected ActionMapping processMapping(javax.servlet.http.HttpServletRequest request,
                                           javax.servlet.http.HttpServletResponse response,
                                           java.lang.String path)
                                    throws java.io.IOException

  Select the mapping used to process the selection path for this request. If no mapping can be identified, create an error response and return `null`.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `path` - The portion of the request URI for selecting a mapping
  Throws:
    `java.io.IOException` - if an input/output error occurs

### processMultipart

    protected javax.servlet.http.HttpServletRequest processMultipart(javax.servlet.http.HttpServletRequest request)

  If this is a multipart request, wrap it with a special wrapper. Otherwise, return the request unchanged.

  Parameters:
    `request` - The HttpServletRequest we are processing

### processNoCache

    protected void processNoCache(javax.servlet.http.HttpServletRequest request,
                                  javax.servlet.http.HttpServletResponse response)

  Set the no-cache headers for all responses, if requested. NOTE - This header will be overridden automatically if a `RequestDispatcher.forward()` call is ultimately invoked.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating

### processPath

    protected java.lang.String processPath(javax.servlet.http.HttpServletRequest request,
                                           javax.servlet.http.HttpServletResponse response)
                                    throws java.io.IOException

  Identify and return the path component (from the request URI) that we will use to select an ActionMapping to dispatch with. If no such path can be identified, create an error response and return `null`.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
  Throws:
    `java.io.IOException` - if an input/output error occurs

### processPopulate

    protected void processPopulate(javax.servlet.http.HttpServletRequest request,
                                   javax.servlet.http.HttpServletResponse response,
                                   ActionForm form,
                                   ActionMapping mapping)
                            throws javax.servlet.ServletException

  Populate the properties of the specified ActionForm instance from the request parameters included with this request. In addition, request attribute `Globals.CANCEL_KEY` will be set if the request was submitted with a button created by `CancelTag`.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `form` - The ActionForm instance we are populating
    `mapping` - The ActionMapping we are using
  Throws:
    `javax.servlet.ServletException` - if thrown by RequestUtils.populate()

### processPreprocess

    protected boolean processPreprocess(javax.servlet.http.HttpServletRequest request,
                                        javax.servlet.http.HttpServletResponse response)

  General-purpose preprocessing hook that can be overridden as required by subclasses. Return `true` if you want standard processing to continue, or `false` if the response has already been completed. The default implementation does nothing.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating

### processRoles

    protected boolean processRoles(javax.servlet.http.HttpServletRequest request,
                                   javax.servlet.http.HttpServletResponse response,
                                   ActionMapping mapping)
                            throws java.io.IOException,
                                   javax.servlet.ServletException

  If this action is protected by security roles, make sure that the current user possesses at least one of them. Return `true` to continue normal processing, or `false` if an appropriate response has been created and processing should terminate.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `mapping` - The mapping we are using
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet exception occurs

### processValidate

    protected boolean processValidate(javax.servlet.http.HttpServletRequest request,
                                      javax.servlet.http.HttpServletResponse response,
                                      ActionForm form,
                                      ActionMapping mapping)
                               throws java.io.IOException,
                                      javax.servlet.ServletException

  If this request was not cancelled, and the request's `ActionMapping` has not disabled validation, call the `validate()` method of the specified `ActionForm`, and forward back to the input form if there were any errors. Return `true` if we should continue processing, or `false` if we have already forwarded control back to the input form.

  Parameters:
    `request` - The servlet request we are processing
    `response` - The servlet response we are creating
    `form` - The ActionForm instance we are populating
    `mapping` - The ActionMapping we are using
  Throws:
    `java.io.IOException` - if an input/output error occurs
    `javax.servlet.ServletException` - if a servlet exception occurs

### internalModuleRelativeForward

    protected void internalModuleRelativeForward(java.lang.String uri,
                                                 javax.servlet.http.HttpServletRequest request,
                                                 javax.servlet.http.HttpServletResponse response)
                                          throws java.io.IOException,
                                                 javax.servlet.ServletException

  Do a module relative forward to specified uri using request dispatcher. Uri is relative to the current module. The real uri is compute by prefixing the module name. This method is used internally and is not part of the public API. It is advised to not use it in subclasses.

  Parameters:
    `uri` - Module-relative URI to forward to
    `request` - Current page request
    `response` - Current page response
    `java.io.IOException`
    `javax.servlet.ServletException`
  Since:
    Struts 1.1

### internalModuleRelativeInclude

    protected void internalModuleRelativeInclude(java.lang.String uri,
                                                 javax.servlet.http.HttpServletRequest request,
                                                 javax.servlet.http.HttpServletResponse response)
                                          throws java.io.IOException,
                                                 javax.servlet.ServletException

  Do a module relative include to specified uri using request dispatcher. Uri is relative to the current module. The real uri is compute by prefixing the module name. This method is used internally and is not part of the public API. It is advised to not use it in subclasses.

  Parameters:
    `uri` - Module-relative URI to include
    `request` - Current page request
    `response` - Current page response
    `java.io.IOException`
    `javax.servlet.ServletException`
  Since:
    Struts 1.1

### doForward

    protected void doForward(java.lang.String uri,
                             javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)
                      throws java.io.IOException,
                             javax.servlet.ServletException

  Do a forward to specified uri using request dispatcher. This method is used by all internal method needing to do a forward.

  Parameters:
    `uri` - Context-relative URI to forward to
    `request` - Current page request
    `response` - Current page response
    `java.io.IOException`
    `javax.servlet.ServletException`
  Since:
    Struts 1.1

### doInclude

    protected void doInclude(java.lang.String uri,
                             javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)
                      throws java.io.IOException,
                             javax.servlet.ServletException

  Do an include of specified uri using request dispatcher. This method is used by all internal method needing to do an include

  Parameters:
    `uri` - Context-relative URI to include
    `request` - Current page request
    `response` - Current page response
    `java.io.IOException`
    `javax.servlet.ServletException`
  Since:
    Struts 1.1

### getDebug

    public int getDebug()

  Deprecated. Configure the logging detail level in your underlying logging implementation

  Return the debugging detail level that has been configured for our controller servlet.

### getInternal

    protected MessageResources getInternal()

  Return the `MessageResources` instance containing our internal message strings.

### getServletContext

    protected javax.servlet.ServletContext getServletContext()

  Return the ServletContext for the web application we are running in.

### log

    protected void log(java.lang.String message)

  Log the specified message to the servlet context log for this web application.

  Parameters:
    `message` - The message to be logged

### log

    protected void log(java.lang.String message,
                       java.lang.Throwable exception)

  Log the specified message and exception to the servlet context log for this web application.

  Parameters:
    `message` - The message to be logged
    `exception` - The exception to be logged

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2003 - Apache Software Foundation