# Package org.springframework.web.servlet.mvc

Standard controller implementations for the servlet MVC framework that comes with Spring.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Controller | Base Controller interface, representing a component that receives `HttpServletRequest` and `HttpServletResponse` instances just like a `HttpServlet` but is able to participate in an MVC workflow.
  LastModified | Supports last-modified HTTP requests to facilitate content caching.

- Class Summary
  Class | Description
  --- | ---
  AbstractController | Convenient superclass for controller implementations, using the Template Method design pattern.
  AbstractUrlViewController | Abstract base class for `Controllers` that return a view name based on the request URL.
  HttpRequestHandlerAdapter | Adapter to use the plain `HttpRequestHandler` interface with the generic `DispatcherServlet`.
  ParameterizableViewController | Trivial controller that always returns a named view.
  ServletForwardingController | Spring Controller implementation that forwards to a named servlet, i.e.
  ServletWrappingController | Spring Controller implementation that wraps a servlet instance which it manages internally.
  SimpleControllerHandlerAdapter | Adapter to use the plain `Controller` workflow interface with the generic `DispatcherServlet`.
  UrlFilenameViewController | Simple `Controller` implementation that transforms the virtual path of a URL into a view name and returns that view.
  WebContentInterceptor | Interceptor that checks and prepares request and response.

## Package org.springframework.web.servlet.mvc Description

Standard controller implementations for the servlet MVC framework that comes with Spring. Provides both abstract base classes and concrete implementations for often seen use cases.

A `Controller` - as defined in this package - is analogous to a Struts `Action`. Usually `Controllers` are JavaBeans to allow easy configuration. Controllers define the `C` from so-called MVC paradigm and can be used in conjunction with the `ModelAndView` to achieve interactive applications. The view might be represented by a HTML interface, but, because of model and the controller being completely independent of the view, PDF views are possible, as well as for instance Excel views.

How to actually set up a (web)application using the MVC framework Spring provides is explained in more detail in the MVC-Step-by-Step tutorial, also provided in this package (or have a look here for an online version). The classes contained by this package explain in more detail the actual workflow of some of the abstract and concrete controller and how to extend and fully use their functionality.

Especially useful to read, while getting into the Spring MVC framework are the following:

- Controller
- BaseCommandController
- ParameterizableViewController