org.apache.struts.action
public class ActionServlet extends HttpServlet
ActionServlet provides the "controller" in the Model-View-Controller (MVC) design pattern for web applications that is commonly known as "Model 2". This nomenclature originated with a description in the JavaServerPages Specification, version 0.92, and has persisted ever since (in the absence of a better name).
Generally, a "Model 2" application is architected as follows:
RequestProcessor
selects and invokes an Action class to perform
the requested business logic, or delegates the response to another resource.Action
classes can manipulate the state of the application's
interaction with the user, typically by creating or modifying JavaBeans
that are stored as request or session attributes (depending on how long
they need to be available). Such JavaBeans represent the "model"
component of an MVC architecture.Action
classes generally return an ActionForward to indicate
which resource should handle the response. If the Action
does not return null, the RequestProcessor
forwards or
redirects to the specified resource (by utilizing
RequestDispatcher.forward
or Response.sendRedirect
)
so as to produce the next page of the user interface.The standard version of RequestsProcessor
implements the
following logic for each incoming HTTP request. You can override
some or all of this functionality by subclassing this object and
implementing your own version of the processing.
Action
interface).
Action
class,
instantiate an instance of that class and cache it for future use.ActionForm
bean
associated with this mapping.execute
method of this Action
class, passing
on a reference to the mapping that was used, the relevant form-bean
(if any), and the request and the response that were passed to the
controller by the servlet container (thereby providing access to any
specialized properties of the mapping itself as well as to the
ServletContext).
The standard version of ActionServlet
is configured based
on the following servlet initialization parameters, which you will specify
in the web application deployment descriptor (/WEB-INF/web.xml
)
for your application. Subclasses that specialize this servlet are free to
define additional initialization parameters.
ModuleConfigFactory
used to create the implementation of the
ModuleConfig
interface.
[org.apache.struts.config.impl.DefaultModuleConfigFactory]
java.lang.Integer
) will default to null (rather than 0).
(Since Struts 1.1) [false] org.apache.commons.digester.RuleSet
instances that should be added to the Digester
that will
be processing struts-config.xml
files. By default, only
the RuleSet
for the standard configuration elements is
loaded. (Since Struts 1.1)Version: $Rev: 264684 $ $Date: 2005-08-30 04:08:01 +0100 (Tue, 30 Aug 2005) $
Field Summary | |
---|---|
protected String | config Comma-separated list of context-relative path(s) to our configuration resource(s) for the default module. |
protected Digester | configDigester The Digester used to produce ModuleConfig objects from a Struts configuration file. |
protected boolean | convertNull The flag to request backwards-compatible conversions for form bean properties of the Java wrapper class types. |
protected FastHashMap | dataSources The JDBC data sources that has been configured for this module, if any, keyed by the servlet context attribute under which they are stored. |
protected MessageResources | internal The resources object for our internal resources. |
protected String | internalName The Java base name of our internal resources. |
protected static Log | log Commons Logging instance. |
protected RequestProcessor | processor The |
protected String[] | registrations The set of public identifiers, and corresponding resource names, for the versions of the configuration file DTDs that we know about. |
protected String | servletMapping The URL pattern to which we are mapped in our web application deployment descriptor. |
protected String | servletName The servlet name under which we are registered in our web application deployment descriptor. |
Method Summary | |
---|---|
void | addRuleSets() Add any custom RuleSet instances to configDigester that have
been specified in the |
void | addServletMapping(String servletName, String urlPattern) Remember a servlet mapping from our web application deployment descriptor, if it is for this servlet. |
void | destroy() Gracefully shut down this controller servlet, releasing any resources that were allocated at initialization. |
protected void | destroyConfigDigester() Gracefully release any configDigester instance that we have created. |
protected void | destroyInternal() Gracefully terminate use of the internal MessageResources. |
protected void | destroyModules() Gracefully terminate use of any modules associated with this application (if any). |
void | doGet(HttpServletRequest request, HttpServletResponse response) Process an HTTP "GET" request. |
void | doPost(HttpServletRequest request, HttpServletResponse response) Process an HTTP "POST" request. |
MessageResources | getInternal() Return the |
protected ModuleConfig | getModuleConfig(HttpServletRequest request) Return the module configuration object for the currently selected module. |
RequestProcessor | getProcessorForModule(ModuleConfig config) Returns the RequestProcessor for the given module or null if one does not exist. |
protected RequestProcessor | getRequestProcessor(ModuleConfig config) Look up and return the RequestProcessor responsible for the specified module, creating a new one if necessary. |
void | handleConfigException(String path, Exception e) Simplifies exception handling in the |
void | init() Initialize this servlet. |
protected Digester | initConfigDigester() Create (if needed) and return a new |
protected void | initInternal() Initialize our internal MessageResources bundle. |
protected ModuleConfig | initModuleConfig(String prefix, String paths) Initialize the module configuration information for the specified module. |
protected void | initModuleConfigFactory() Initialize the factory used to create the module configuration. |
protected void | initModuleDataSources(ModuleConfig config) Initialize the data sources for the specified module. |
protected void | initModuleMessageResources(ModuleConfig config) Initialize the application |
protected void | initModulePlugIns(ModuleConfig config) Initialize the plug ins for the specified module. |
protected void | initModulePrefixes(ServletContext context) Saves a String[] of module prefixes in the ServletContext under Globals.MODULE_PREFIXES_KEY. |
protected void | initOther() Initialize other global characteristics of the controller servlet. |
protected void | initServlet() Initialize the servlet mapping under which our controller servlet is being accessed. |
boolean | isValidating() Check the status of the |
protected void | parseModuleConfigFile(Digester digester, String path) Parses one module config file. |
protected void | process(HttpServletRequest request, HttpServletResponse response) Perform the standard request processing for this request, and create the corresponding response. |
Comma-separated list of context-relative path(s) to our configuration resource(s) for the default module.
The Digester used to produce ModuleConfig objects from a Struts configuration file.
Since: Struts 1.1
The flag to request backwards-compatible conversions for form bean properties of the Java wrapper class types.
Since: Struts 1.1
The JDBC data sources that has been configured for this module, if any, keyed by the servlet context attribute under which they are stored.
The resources object for our internal resources.
The Java base name of our internal resources.
Since: Struts 1.1
Commons Logging instance.
Since: Struts 1.1
The RequestProcessor
instance we will use to process
all incoming requests.
Since: Struts 1.1
The set of public identifiers, and corresponding resource names, for the versions of the configuration file DTDs that we know about. There MUST be an even number of Strings in this list!
The URL pattern to which we are mapped in our web application deployment descriptor.
The servlet name under which we are registered in our web application deployment descriptor.
Add any custom RuleSet instances to configDigester that have
been specified in the rulesets
init parameter.
Throws: ServletException
Remember a servlet mapping from our web application deployment descriptor, if it is for this servlet.
Parameters: servletName The name of the servlet being mapped urlPattern The URL pattern to which this servlet is mapped
Gracefully shut down this controller servlet, releasing any resources that were allocated at initialization.
Gracefully release any configDigester instance that we have created.
Since: Struts 1.1
Gracefully terminate use of the internal MessageResources.
Gracefully terminate use of any modules associated with this application (if any).
Since: Struts 1.1
Process an HTTP "GET" request.
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 servlet exception occurs
Process an HTTP "POST" request.
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 servlet exception occurs
Return the MessageResources
instance containing our
internal message strings.
Since: Struts 1.1
Return the module configuration object for the currently selected module.
Parameters: request The servlet request we are processing
Since: Struts 1.1
Returns the RequestProcessor for the given module or null if one does not exist. This method will not create a RequestProcessor.
Parameters: config The ModuleConfig.
Look up and return the RequestProcessor responsible for the specified module, creating a new one if necessary.
Parameters: config The module configuration for which to acquire and return a RequestProcessor.
Throws: ServletException if we cannot instantiate a RequestProcessor instance
Since: Struts 1.1
Simplifies exception handling in the parseModuleConfigFile
method.
Parameters: path e
Throws: UnavailableException as a wrapper around Exception
Initialize this servlet. Most of the processing has been factored into support methods so that you can override particular functionality at a fairly granular level.
Throws: ServletException if we cannot configure ourselves correctly
Create (if needed) and return a new Digester
instance that has been initialized to process Struts module
configuration files and configure a corresponding ModuleConfig
object (which must be pushed on to the evaluation stack before parsing
begins).
Throws: ServletException if a Digester cannot be configured
Since: Struts 1.1
Initialize our internal MessageResources bundle.
Throws: ServletException if we cannot initialize these resources
Initialize the module configuration information for the specified module.
Parameters: prefix Module prefix for this module paths Comma-separated list of context-relative resource path(s) for this modules's configuration resource(s)
Throws: ServletException if initialization cannot be performed
Since: Struts 1.1
Initialize the factory used to create the module configuration.
Since: Struts 1.2
Initialize the data sources for the specified module.
Parameters: config ModuleConfig information for this module
Throws: ServletException if initialization cannot be performed
Since: Struts 1.1
Initialize the application MessageResources
for the specified
module.
Parameters: config ModuleConfig information for this module
Throws: ServletException if initialization cannot be performed
Since: Struts 1.1
Initialize the plug ins for the specified module.
Parameters: config ModuleConfig information for this module
Throws: ServletException if initialization cannot be performed
Since: Struts 1.1
Saves a String[] of module prefixes in the ServletContext under Globals.MODULE_PREFIXES_KEY. NOTE - the "" prefix for the default module is not included in this list.
Parameters: context The servlet context.
Since: Struts 1.2
Initialize other global characteristics of the controller servlet.
Throws: ServletException if we cannot initialize these resources
Initialize the servlet mapping under which our controller servlet
is being accessed. This will be used in the &html:form>
tag to generate correct destination URLs for form submissions.
Throws: ServletException if error happens while scanning web.xml
Check the status of the validating
initialization parameter.
Returns: true if the module Digester should validate.
Parses one module config file.
Parameters: digester Digester instance that does the parsing path The path to the config file to parse.
Throws: UnavailableException if file cannot be read or parsed
Since: Struts 1.2
Perform the standard request processing for this request, and create the corresponding response.
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 servlet exception is thrown