org.apache.velocity.tools.view

## Class ServletUtils

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

    public class ServletUtils
    extends Object

A set of utility methods for supporting and using VelocityTools in the servlet environment.

Version:
  $Id: ServletUtils.java 471244 2006-11-04 18:34:38Z henning $

### Field Summary

Fields
`static String` `ALT_VELOCITY_VIEW_KEY`
`static String` `CONFIGURATION_KEY` Key used to access a live `FactoryConfiguration` previously placed in the ServletContext attributes.
`static ServletUtils` `INSTANCE`
`static String` `SHARED_CONFIG_PARAM`
`static String` `VELOCITY_VIEW_KEY`

### Constructor Summary

Constructors
`protected` `ServletUtils()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static String` `combinePath(String before, String after)` If end is null, this will return start and vice versa.
`static Object` `findTool(String key, javax.servlet.http.HttpServletRequest request)`
`static Object` `findTool(String key, javax.servlet.http.HttpServletRequest request, javax.servlet.ServletContext application)`
`static Object` `findTool(String key, javax.servlet.ServletContext application)`
`static Object` `findTool(String key, String toolboxKey, javax.servlet.http.HttpServletRequest request)`
`static Object` `findTool(String key, String toolboxKey, javax.servlet.http.HttpServletRequest request, javax.servlet.ServletContext application)`
`static Object` `findTool(String key, String toolboxKey, javax.servlet.ServletContext application)`
`static FactoryConfiguration` `getConfiguration(javax.servlet.ServletContext application)`
`static FactoryConfiguration` `getConfiguration(String path, javax.servlet.ServletContext application)`
`static InputStream` `getInputStream(String path, javax.servlet.ServletContext application)`
`ServletUtils` `getInstance()`
`static Object` `getMutex(javax.servlet.http.HttpSession session, String key, Object caller)` Returns a mutex (lock object) unique to the specified session and stored under the specified key to allow for reliable synchronization on the session.
`static String` `getPath(javax.servlet.http.HttpServletRequest request)` Retrieves the path for the specified request regardless of whether this is a direct request or an include by the RequestDispatcher.
`static URL` `getURL(String path, javax.servlet.ServletContext application)`
`static VelocityView` `getVelocityView(javax.servlet.FilterConfig config)` Returns the shared `VelocityView` for the specified `FilterConfig`'s context.
`static VelocityView` `getVelocityView(JeeConfig config)` Returns the shared `VelocityView` for the specified `JeeConfig`'s context.
`static VelocityView` `getVelocityView(javax.servlet.ServletConfig config)` Returns the shared `VelocityView` for the specified `ServletConfig`'s context.
`static VelocityView` `getVelocityView(javax.servlet.ServletContext application)` Returns the shared `VelocityView` for the specified `ServletContext`.
`static VelocityView` `getVelocityView(javax.servlet.ServletContext application, boolean createIfMissing)` Returns the shared `VelocityView` for the specified `ServletContext`.
`protected static boolean` `isWebappResource(String path)`

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

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

### Field Detail

#### VELOCITY_VIEW_KEY

    public static final String VELOCITY_VIEW_KEY

#### SHARED_CONFIG_PARAM

    public static final String SHARED_CONFIG_PARAM

See Also:
  Constant Field Values

#### ALT_VELOCITY_VIEW_KEY

    public static final String ALT_VELOCITY_VIEW_KEY

See Also:
  Constant Field Values

#### CONFIGURATION_KEY

    public static final String CONFIGURATION_KEY

Key used to access a live `FactoryConfiguration` previously placed in the ServletContext attributes.

See Also:
  Constant Field Values

#### INSTANCE

    public static final ServletUtils INSTANCE

### Constructor Detail

#### ServletUtils

    protected ServletUtils()

### Method Detail

#### getInstance

    public ServletUtils getInstance()

#### getPath

    public static String getPath(javax.servlet.http.HttpServletRequest request)

Retrieves the path for the specified request regardless of whether this is a direct request or an include by the RequestDispatcher.

Parameters:
  `request` - servlet request
Returns:
  request path

#### getVelocityView

    public static VelocityView getVelocityView(javax.servlet.ServletConfig config)

Returns the shared `VelocityView` for the specified `ServletConfig`'s context. If one has not yet been created, it will create, store it for future access, and then return it.

Parameters:
  `config` - servlet config
Returns:
  VelocityView instance

#### getVelocityView

    public static VelocityView getVelocityView(javax.servlet.FilterConfig config)

Returns the shared `VelocityView` for the specified `FilterConfig`'s context. If one has not yet been created, it will create, store it for future access, and then return it.

Parameters:
  `config` - filter config
Returns:
  VelocityView instance

#### getVelocityView

    public static VelocityView getVelocityView(JeeConfig config)

Returns the shared `VelocityView` for the specified `JeeConfig`'s context. If one has not yet been created, it will create, store it for future access, and then return it.

Parameters:
  `config` - configuration parameters container (webapp, servlet or filter)
Returns:
  VelocityView instance

#### getVelocityView

    public static VelocityView getVelocityView(javax.servlet.ServletContext application)

Returns the shared `VelocityView` for the specified `ServletContext`. If one has not yet been created, it will create one, store it for future access, and then return it.

Parameters:
  `application` - servlet context
Returns:
  VelocityView instance

#### getVelocityView

    public static VelocityView getVelocityView(javax.servlet.ServletContext application,
                                               boolean createIfMissing)

Returns the shared `VelocityView` for the specified `ServletContext`. If one has not yet been created and the second parameter is `true`, then it will create one, store it for future access, and return it.

Parameters:
  `application` - servlet context
  `createIfMissing` - whether to create VelocityView if not yet built
Returns:
  VelocityView instance

#### findTool

    public static Object findTool(String key,
                                  javax.servlet.ServletContext application)

#### findTool

    public static Object findTool(String key,
                                  String toolboxKey,
                                  javax.servlet.ServletContext application)

#### findTool

    public static Object findTool(String key,
                                  javax.servlet.http.HttpServletRequest request)

#### findTool

    public static Object findTool(String key,
                                  String toolboxKey,
                                  javax.servlet.http.HttpServletRequest request)

#### findTool

    public static Object findTool(String key,
                                  javax.servlet.http.HttpServletRequest request,
                                  javax.servlet.ServletContext application)

#### findTool

    public static Object findTool(String key,
                                  String toolboxKey,
                                  javax.servlet.http.HttpServletRequest request,
                                  javax.servlet.ServletContext application)

#### isWebappResource

    protected static boolean isWebappResource(String path)

#### getInputStream

    public static InputStream getInputStream(String path,
                                             javax.servlet.ServletContext application)

#### getURL

    public static URL getURL(String path,
                             javax.servlet.ServletContext application)

#### getConfiguration

    public static FactoryConfiguration getConfiguration(javax.servlet.ServletContext application)

#### getConfiguration

    public static FactoryConfiguration getConfiguration(String path,
                                                        javax.servlet.ServletContext application)

#### getMutex

    public static Object getMutex(javax.servlet.http.HttpSession session,
                                  String key,
                                  Object caller)

Returns a mutex (lock object) unique to the specified session and stored under the specified key to allow for reliable synchronization on the session.

Parameters:
  `session` - HTTP session
  `key` - mutex key
  `caller` - caller object
Returns:
  session mutex object

#### combinePath

    public static String combinePath(String before,
                                     String after)

If end is null, this will return start and vice versa. If neither is null, this will append the end to the start, making sure that there is only one '/' character between the two values.

Parameters:
  `before` - start path
  `after` - end path
Returns:
  combined path