Execute the desired operation.

In general, `Action` classes are the main public face of each feature. In addition, they are also the 'glue' that brings together all the other items related to the feature - Model Object, DAO, JSP, and SQL statements. Thus, an `Action` typically references all of these kinds of items, in some way.

{@link hirondelle.web4j.action.ActionImpl} is a base implementation of `Action`, and has a number of methods for common operations. It in turn has several template subclasses (ActionTemplateXXX), corresponding to specific combinations of operations.

An important point to understand is the separation of validation into two distinct parts - hard validation, and soft validation - see {@link hirondelle.web4j.security.ApplicationFirewall} for more information.

Mapping of incoming requests to an {@link hirondelle.web4j.action.Action} is done by {@link hirondelle.web4j.request.RequestParserImpl}. By default, it uses a simple mapping scheme which requires no configuration.

The main tool for building Model Objects out of submitted forms is {@link hirondelle.web4j.model.ModelFromRequest}.