org.apache.velocity.tools.view

## Class VelocityViewFilter

- java.lang.Object
- - org.apache.velocity.tools.view.VelocityViewFilter

All Implemented Interfaces:
  javax.servlet.Filter

    public class VelocityViewFilter
    extends Object
    implements javax.servlet.Filter

A filter to ensure VelocityTools `Toolbox`es are available in the request/session/application scopes. This can simplify the process of integration with other frameworks.

VelocityViewFilter supports the following configuration parameters in web.xml:

org.apache.velocity.tools
  Path and name of the toolbox configuration file. The path must be relative to the web application root directory. If this parameter is not found, the servlet will check for a toolbox file at '/WEB-INF/tools.xml'.
org.apache.velocity.properties
  Path and name of the Velocity configuration file. The path must be relative to the web application root directory. If this parameter is not present, Velocity will check for a properties file at '/WEB-INF/velocity.properties'. If no file is found there, then Velocity is initialized with the settings in the classpath at 'org.apache.velocity.tools.view.velocity.properties'.
org.apache.velocity.tools.loadDefaults
  By default, this is `false`. If set to `true`, then the default toolbox configuration will be added prior to your (if any) custom configuration.
org.apache.velocity.tools.cleanConfiguration
  By default, this is `false`. If set to `true`, then then the final toolbox configuration (the combination of any custom one(s) provided by yourself and/or the default configuration(s)) will have all invalid tools, properties, and/or data removed prior to configuring the ToolboxFactory for this servlet by a `ConfigurationCleaner`
org.apache.velocity.tools.shared.config
  By default, this is `true`. If set to `false`, then the `VelocityView` used by this filter will not be shared with other VelocityViewFilters, `VelocityViewServlet`s or org.apache.velocity.tools.view.jsp.VelocityViewTag's in the application.
org.apache.velocity.tools.context.key
  If you set a value for this property, this filter will create and prepare a `ViewToolContext` for each request, and then place it into the request attributes under the key you set. This is primarily for those who use this filter WITHOUT sharing a config (i.e. non-shared VelocityView), letting them retrieve the context as the request attribute.
org.apache.velocity.tools.view.class
  Allows to specify a custom class (inheriting from VelocityView) as the View class.

Version:
  $Id: VelocityViewFilter.java 611011 2008-01-11 01:32:59Z nbubna $

### Field Summary

Fields
`static String` `CONTEXT_KEY`

### Constructor Summary

Constructors
Constructor and Description
`VelocityViewFilter()`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected org.apache.velocity.context.Context` `createContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)`
`void` `destroy()`
`void` `doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain)` Simply prepares the request (and/or session) toolbox(es) for other filters, servlets or whatnot to use.
`protected String` `findInitParameter(String key)` Looks up an init parameter with the specified key in either the FilterConfig or, failing that, in the ServletContext.
`protected String` `getContextKey()`
`protected javax.servlet.FilterConfig` `getFilterConfig()`
`protected VelocityView` `getVelocityView()`
`void` `init(javax.servlet.FilterConfig config)` Initializes VelocityView used to process requests.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### CONTEXT_KEY

    public static final String CONTEXT_KEY

See Also:
  Constant Field Values

### Constructor Detail

#### VelocityViewFilter

    public VelocityViewFilter()

### Method Detail

#### init

    public void init(javax.servlet.FilterConfig config)
              throws javax.servlet.ServletException

Initializes VelocityView used to process requests. Called by the servlet container on loading.

Specified by:
  `init` in interface `javax.servlet.Filter`
Parameters:
  `config` - filter configuation
Throws:
  `javax.servlet.ServletException`

#### getFilterConfig

    protected javax.servlet.FilterConfig getFilterConfig()

#### getVelocityView

    protected VelocityView getVelocityView()

#### getContextKey

    protected String getContextKey()

#### findInitParameter

    protected String findInitParameter(String key)

Looks up an init parameter with the specified key in either the FilterConfig or, failing that, in the ServletContext.

Parameters:
  `key` - init parameter key
Returns:
  found value or null

#### doFilter

    public void doFilter(javax.servlet.ServletRequest request,
                         javax.servlet.ServletResponse response,
                         javax.servlet.FilterChain chain)
                  throws IOException,
                         javax.servlet.ServletException

Simply prepares the request (and/or session) toolbox(es) for other filters, servlets or whatnot to use. If a context key has been provided in the init-params of the filter or webapp, then this will also create a `ViewToolContext` and put it in the request attributes under that key.

Specified by:
  `doFilter` in interface `javax.servlet.Filter`
Throws:
  `IOException`
  `javax.servlet.ServletException`

#### createContext

    protected org.apache.velocity.context.Context createContext(javax.servlet.http.HttpServletRequest request,
                                                                javax.servlet.http.HttpServletResponse response)

#### destroy

    public void destroy()

Specified by:
  `destroy` in interface `javax.servlet.Filter`