org.apache.struts.action

Class RequestProcessor

public class RequestProcessor extends Object

RequestProcessor contains the processing logic that the {@link ActionServlet} 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: $Rev: 379703 $ $Date: 2006-02-22 06:17:05 +0000 (Wed, 22 Feb 2006) $

Field Summary
protected HashMapactions

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

static StringINCLUDE_PATH_INFO

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

static StringINCLUDE_SERVLET_PATH

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

protected static Loglog

Commons Logging instance.

protected ModuleConfigmoduleConfig

The ModuleConfiguration with which we are associated.

protected ActionServletservlet

The servlet with which we are associated.

Method Summary
voiddestroy()

Clean up in preparation for a shutdown of this application.

protected voiddoForward(String uri, HttpServletRequest request, HttpServletResponse response)

Do a forward to specified URI using a RequestDispatcher.

protected voiddoInclude(String uri, HttpServletRequest request, HttpServletResponse response)

Do an include of specified URI using a RequestDispatcher.

protected MessageResourcesgetInternal()

Return the MessageResources instance containing our internal message strings.

protected ServletContextgetServletContext()

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

voidinit(ActionServlet servlet, ModuleConfig moduleConfig)

Initialize this request processor instance.

protected voidinternalModuleRelativeForward(String uri, HttpServletRequest request, HttpServletResponse response)

Do a module relative forward to specified URI using request dispatcher.

protected voidinternalModuleRelativeInclude(String uri, HttpServletRequest request, HttpServletResponse response)

Do a module relative include to specified URI using request dispatcher.

protected voidlog(String message)

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

protected voidlog(String message, Throwable exception)

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

voidprocess(HttpServletRequest request, HttpServletResponse response)

Process an HttpServletRequest and create the corresponding HttpServletResponse or dispatch to another resource.

protected ActionprocessActionCreate(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

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

protected ActionFormprocessActionForm(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

Retrieve and return the ActionForm associated with this mapping, creating and retaining one if necessary.

protected ActionForwardprocessActionPerform(HttpServletRequest request, HttpServletResponse response, Action action, ActionForm form, ActionMapping mapping)

Ask the specified Action instance to handle this request.

protected voidprocessCachedMessages(HttpServletRequest request, HttpServletResponse response)

Removes any ActionMessages object stored in the session under Globals.MESSAGE_KEY and Globals.ERROR_KEY if the messages' isAccessed method returns true.

protected voidprocessContent(HttpServletRequest request, HttpServletResponse response)

Set the default content type (with optional character encoding) for all responses if requested.

protected ActionForwardprocessException(HttpServletRequest request, HttpServletResponse response, Exception exception, ActionForm form, ActionMapping mapping)

Ask our exception handler to handle the exception.

protected booleanprocessForward(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

Process a forward requested by this mapping (if any).

protected voidprocessForwardConfig(HttpServletRequest request, HttpServletResponse response, ForwardConfig forward)

Forward or redirect to the specified destination, by the specified mechanism.

protected booleanprocessInclude(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

Process an include requested by this mapping (if any).

protected voidprocessLocale(HttpServletRequest request, HttpServletResponse response)

Automatically select a Locale for the current user, if requested.

protected ActionMappingprocessMapping(HttpServletRequest request, HttpServletResponse response, String path)

Select the mapping used to process the selection path for this request.

protected HttpServletRequestprocessMultipart(HttpServletRequest request)

If this is a multipart request, wrap it with a special wrapper.

protected voidprocessNoCache(HttpServletRequest request, HttpServletResponse response)

Set the no-cache headers for all responses, if requested.

protected StringprocessPath(HttpServletRequest request, HttpServletResponse response)

Identify and return the path component (from the request URI) that we will use to select an ActionMapping with which to dispatch.

protected voidprocessPopulate(HttpServletRequest request, HttpServletResponse response, ActionForm form, ActionMapping mapping)

Populate the properties of the specified ActionForm instance from the request parameters included with this request.

protected booleanprocessPreprocess(HttpServletRequest request, HttpServletResponse response)

General-purpose preprocessing hook that can be overridden as required by subclasses.

protected booleanprocessRoles(HttpServletRequest request, 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 booleanprocessValidate(HttpServletRequest request, HttpServletResponse response, ActionForm form, ActionMapping mapping)

If this request was not cancelled, and the request's {@link ActionMapping} has not disabled validation, call the validate method of the specified {@link ActionForm}, and forward to the input path if there were any errors.

Field Detail

actions

protected 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.

INCLUDE_PATH_INFO

public static final String INCLUDE_PATH_INFO

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

INCLUDE_SERVLET_PATH

public static final String INCLUDE_SERVLET_PATH

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

log

protected static Log log

Commons Logging instance.

moduleConfig

protected ModuleConfig moduleConfig

The ModuleConfiguration with which we are associated.

servlet

protected ActionServlet servlet

The servlet with which we are associated.

Method Detail

destroy

public void destroy()

Clean up in preparation for a shutdown of this application.

doForward

protected void doForward(String uri, HttpServletRequest request, HttpServletResponse response)

Do a forward to specified URI using a RequestDispatcher. 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

Since: Struts 1.1

doInclude

protected void doInclude(String uri, HttpServletRequest request, HttpServletResponse response)

Do an include of specified URI using a RequestDispatcher. 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

Since: Struts 1.1

getInternal

protected MessageResources getInternal()

Return the MessageResources instance containing our internal message strings.

getServletContext

protected ServletContext getServletContext()

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

init

public void init(ActionServlet servlet, ModuleConfig moduleConfig)

Initialize this request processor instance.

Parameters: servlet The ActionServlet we are associated with moduleConfig The ModuleConfig we are associated with.

Throws: ServletException If an error occor during initialization

internalModuleRelativeForward

protected void internalModuleRelativeForward(String uri, HttpServletRequest request, HttpServletResponse response)

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

Since: Struts 1.1

internalModuleRelativeInclude

protected void internalModuleRelativeInclude(String uri, HttpServletRequest request, HttpServletResponse response)

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

Since: Struts 1.1

log

protected void log(String message)

Deprecated: Use commons-logging instead. This will be removed in a release after Struts 1.2.

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

Parameters: message The message to be logged

log

protected void log(String message, Throwable exception)

Deprecated: Use commons-logging instead. This will be removed in a release after Struts 1.2.

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

process

public void process(HttpServletRequest request, HttpServletResponse response)

Process an HttpServletRequest and create the corresponding HttpServletResponse or dispatch to another resource.

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

Throws: IOException if an input/output error occurs ServletException if a processing exception occurs

processActionCreate

protected Action processActionCreate(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

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: IOException if an input/output error occurs

processActionForm

protected ActionForm processActionForm(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

Retrieve and return the ActionForm associated with this mapping, creating and retaining one if necessary. If there is no ActionForm 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

processActionPerform

protected ActionForward processActionPerform(HttpServletRequest request, HttpServletResponse response, Action action, ActionForm form, ActionMapping mapping)

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: IOException if an input/output error occurs ServletException if a servlet exception occurs

processCachedMessages

protected void processCachedMessages(HttpServletRequest request, HttpServletResponse response)

Removes any ActionMessages object stored in the session under Globals.MESSAGE_KEY and Globals.ERROR_KEY if the messages' isAccessed method returns true. This allows messages to be stored in the session, display one time, and be released here.

Parameters: request The servlet request we are processing. response The servlet response we are creating.

Since: Struts 1.2

processContent

protected void processContent(HttpServletRequest request, 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(HttpServletRequest request, HttpServletResponse response, Exception exception, ActionForm form, ActionMapping mapping)

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: IOException if an input/output error occurs ServletException if a servlet exception occurs

processForward

protected boolean processForward(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

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

processForwardConfig

protected void processForwardConfig(HttpServletRequest request, HttpServletResponse response, ForwardConfig forward)

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: IOException if an input/output error occurs ServletException if a servlet exception occurs

processInclude

protected boolean processInclude(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

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

processLocale

protected void processLocale(HttpServletRequest request, 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(HttpServletRequest request, HttpServletResponse response, String path)

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: IOException if an input/output error occurs

processMultipart

protected HttpServletRequest processMultipart(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(HttpServletRequest request, 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 String processPath(HttpServletRequest request, HttpServletResponse response)

Identify and return the path component (from the request URI) that we will use to select an ActionMapping with which to dispatch. 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: IOException if an input/output error occurs

processPopulate

protected void processPopulate(HttpServletRequest request, HttpServletResponse response, ActionForm form, ActionMapping mapping)

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: ServletException if thrown by RequestUtils.populate()

processPreprocess

protected boolean processPreprocess(HttpServletRequest request, 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(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)

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: IOException if an input/output error occurs ServletException if a servlet exception occurs

processValidate

protected boolean processValidate(HttpServletRequest request, HttpServletResponse response, ActionForm form, ActionMapping mapping)

If this request was not cancelled, and the request's {@link ActionMapping} has not disabled validation, call the validate method of the specified {@link ActionForm}, and forward to the input path 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: IOException if an input/output error occurs ServletException if a servlet exception occurs InvalidCancelException if a cancellation is attempted without the proper action configuration

Copyright © 2000-2008 - The Apache Software Foundation