Class VelocityServlet

java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
org.apache.velocity.servlet.VelocityServlet
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public abstract class VelocityServlet extends javax.servlet.http.HttpServlet
Deprecated.
This servlet has been replaced by VelocityViewServlet, available from the Velocity-Tools sub-project. VelocityViewServlet provides support for quick, clean MVC web development. VelocityServlet will be removed in a future version of Velocity.
Base class which simplifies the use of Velocity with Servlets. Extend this class, implement the handleRequest() method, and add your data to the context. Then call getTemplate("myTemplate.wm"). This class puts some things into the context object that you should be aware of:
 "req" - The HttpServletRequest object
 "res" - The HttpServletResponse object
 
There are other methods you can override to access, alter or control any part of the request processing chain. Please see the javadocs for more information on :
  • loadConfiguration() : for setting up the Velocity runtime
  • createContext() : for creating and loading the Context
  • setContentType() : for changing the content type on a request by request basis
  • handleRequest() : you must implement this
  • mergeTemplate() : the template rendering process
  • requestCleanup() : post rendering resource or other cleanup
  • error() : error handling

If you put a String with key "contentType" object into the context within either your servlet or within your template, then that will be used to override the default content type specified in the properties file.
Author:
Dave Bryson, Jon S. Stevens, Geir Magnusson Jr., Kent Johnson, Daniel Rall $Id: VelocityServlet.java 463298 2006-10-12 16:10:32Z henning $
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Deprecated.
    The HTTP content type context key.
    static final String
    Deprecated.
    The default content type for the response
    static final String
    Deprecated.
    Encoding for the output stream
    protected static final String
    Deprecated.
    This is the string that is looked for when getInitParameter is called (org.apache.velocity.properties).
    static final String
    Deprecated.
    The context key for the HTTP request object.
    static final String
    Deprecated.
    The context key for the HTTP response object.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated.
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected String
    chooseCharacterEncoding(javax.servlet.http.HttpServletRequest request)
    Deprecated.
    Chooses the output character encoding to be used as the value for the "charset=" portion of the HTTP Content-Type header (and thus returned by response.getCharacterEncoding()).
    protected Context
    createContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
    Deprecated.
    Returns a context suitable to pass to the handleRequest() method

    Default implementation will create a VelocityContext object, put the HttpServletRequest and HttpServletResponse into the context accessable via the keys VelocityServlet.REQUEST and VelocityServlet.RESPONSE, respectively.
    void
    doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
    Deprecated.
    Handles HTTP GET requests by calling doRequest(HttpServletRequest, HttpServletResponse).
    void
    doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
    Deprecated.
    Handles HTTP POST requests by calling doRequest(HttpServletRequest, HttpServletResponse).
    protected void
    doRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
    Deprecated.
    Handles all requests (by default).
    protected void
    error(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Exception cause)
    Deprecated.
    Invoked when there is an error thrown in any part of doRequest() processing.
    Deprecated.
    Retrieves the requested template.
    getTemplate(String name, String encoding)
    Deprecated.
    Retrieves the requested template with the specified character encoding.
    protected Template
    handleRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Context ctx)
    Deprecated.
    Implement this method to add your application data to the context, calling the getTemplate() method to produce your return value.
    protected Template
    void
    init(javax.servlet.ServletConfig config)
    Deprecated.
    Performs initialization of this servlet.
    protected void
    initVelocity(javax.servlet.ServletConfig config)
    Deprecated.
    Initializes the Velocity runtime, first calling loadConfiguration(ServletConvig) to get a java.util.Properties of configuration information and then calling Velocity.init().
    protected Properties
    loadConfiguration(javax.servlet.ServletConfig config)
    Deprecated.
    Use VelocityViewServlet from the Velocity Tools library instead.
    protected void
    mergeTemplate(Template template, Context context, javax.servlet.http.HttpServletResponse response)
    Deprecated.
    merges the template with the context.
    protected void
    requestCleanup(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Context context)
    Deprecated.
    A cleanup routine which is called at the end of the doRequest(HttpServletRequest, HttpServletResponse) processing sequence, allowing a derived class to do resource cleanup or other end of process cycle tasks.
    protected void
    setContentType(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
    Deprecated.
    Sets the content type of the response, defaulting to defaultContentType if not overriden.

    Methods inherited from class javax.servlet.http.HttpServlet

    doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service

    Methods inherited from class javax.servlet.GenericServlet

    destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • REQUEST

      public static final String REQUEST
      Deprecated.
      The context key for the HTTP request object.
      See Also:
    • RESPONSE

      public static final String RESPONSE
      Deprecated.
      The context key for the HTTP response object.
      See Also:
    • CONTENT_TYPE

      public static final String CONTENT_TYPE
      Deprecated.
      The HTTP content type context key.
      See Also:
    • DEFAULT_CONTENT_TYPE

      public static final String DEFAULT_CONTENT_TYPE
      Deprecated.
      The default content type for the response
      See Also:
    • DEFAULT_OUTPUT_ENCODING

      public static final String DEFAULT_OUTPUT_ENCODING
      Deprecated.
      Encoding for the output stream
      See Also:
    • INIT_PROPS_KEY

      protected static final String INIT_PROPS_KEY
      Deprecated.
      This is the string that is looked for when getInitParameter is called (org.apache.velocity.properties).
      See Also:
  • Constructor Details

    • VelocityServlet

      public VelocityServlet()
      Deprecated.
  • Method Details

    • init

      public void init(javax.servlet.ServletConfig config) throws javax.servlet.ServletException
      Deprecated.
      Performs initialization of this servlet. Called by the servlet container on loading.
      Specified by:
      init in interface javax.servlet.Servlet
      Overrides:
      init in class javax.servlet.GenericServlet
      Parameters:
      config - The servlet configuration to apply.
      Throws:
      javax.servlet.ServletException
    • initVelocity

      protected void initVelocity(javax.servlet.ServletConfig config) throws javax.servlet.ServletException
      Deprecated.
      Initializes the Velocity runtime, first calling loadConfiguration(ServletConvig) to get a java.util.Properties of configuration information and then calling Velocity.init(). Override this to do anything to the environment before the initialization of the singelton takes place, or to initialize the singleton in other ways.
      Parameters:
      config -
      Throws:
      javax.servlet.ServletException
    • loadConfiguration

      protected Properties loadConfiguration(javax.servlet.ServletConfig config) throws IOException, FileNotFoundException
      Deprecated.
      Use VelocityViewServlet from the Velocity Tools library instead.
      Loads the configuration information and returns that information as a Properties, which will be used to initialize the Velocity runtime.

      Currently, this method gets the initialization parameter VelocityServlet.INIT_PROPS_KEY, which should be a file containing the configuration information.

      To configure your Servlet Spec 2.2 compliant servlet runner to pass this to you, put the following in your WEB-INF/web.xml file
          <servlet>
            <servlet-name> YourServlet &lt/servlet-name>
            <servlet-class> your.package.YourServlet </servlet-class>
            <init-param>
               <param-name> org.apache.velocity.properties </param-name>
               <param-value> velocity.properties </param-value>
            </init-param>
          </servlet>
         
      Alternately, if you wish to configure an entire context in this fashion, you may use the following:
          <context-param>
             <param-name> org.apache.velocity.properties </param-name>
             <param-value> velocity.properties </param-value>
             <description> Path to Velocity configuration </description>
          </context-param>
         
      Derived classes may do the same, or take advantage of this code to do the loading for them via :
            Properties p = super.loadConfiguration( config );
         
      and then add or modify the configuration values from the file.
      Parameters:
      config - ServletConfig passed to the servlets init() function Can be used to access the real path via ServletContext (hint)
      Returns:
      java.util.Properties loaded with configuration values to be used to initialize the Velocity runtime.
      Throws:
      FileNotFoundException - if a specified file is not found.
      IOException - I/O problem accessing the specified file, if specified.
    • doGet

      public void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException
      Deprecated.
      Handles HTTP GET requests by calling doRequest(HttpServletRequest, HttpServletResponse).
      Overrides:
      doGet in class javax.servlet.http.HttpServlet
      Parameters:
      request -
      response -
      Throws:
      javax.servlet.ServletException
      IOException
    • doPost

      public void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException
      Deprecated.
      Handles HTTP POST requests by calling doRequest(HttpServletRequest, HttpServletResponse).
      Overrides:
      doPost in class javax.servlet.http.HttpServlet
      Parameters:
      request -
      response -
      Throws:
      javax.servlet.ServletException
      IOException
    • doRequest

      protected void doRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException
      Deprecated.
      Handles all requests (by default).
      Parameters:
      request - HttpServletRequest object containing client request
      response - HttpServletResponse object for the response
      Throws:
      javax.servlet.ServletException
      IOException
    • requestCleanup

      protected void requestCleanup(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Context context)
      Deprecated.
      A cleanup routine which is called at the end of the doRequest(HttpServletRequest, HttpServletResponse) processing sequence, allowing a derived class to do resource cleanup or other end of process cycle tasks.
      Parameters:
      request - servlet request from client
      response - servlet reponse
      context - context created by the createContext() method
    • mergeTemplate

      protected void mergeTemplate(Template template, Context context, javax.servlet.http.HttpServletResponse response) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException, IOException, UnsupportedEncodingException, Exception
      Deprecated.
      merges the template with the context. Only override this if you really, really really need to. (And don't call us with questions if it breaks :)
      Parameters:
      template - template object returned by the handleRequest() method
      context - context created by the createContext() method
      response - servlet reponse (use this to get the output stream or Writer
      Throws:
      ResourceNotFoundException
      ParseErrorException
      MethodInvocationException
      IOException
      UnsupportedEncodingException
      Exception
    • setContentType

      protected void setContentType(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Deprecated.
      Sets the content type of the response, defaulting to defaultContentType if not overriden. Delegates to chooseCharacterEncoding(HttpServletRequest) to select the appropriate character encoding.
      Parameters:
      request - The servlet request from the client.
      response - The servlet reponse to the client.
    • chooseCharacterEncoding

      protected String chooseCharacterEncoding(javax.servlet.http.HttpServletRequest request)
      Deprecated.
      Chooses the output character encoding to be used as the value for the "charset=" portion of the HTTP Content-Type header (and thus returned by response.getCharacterEncoding()). Called by setContentType(HttpServletRequest, HttpServletResponse) if an encoding isn't already specified by Content-Type. By default, chooses the value of RuntimeSingleton's output.encoding property.
      Parameters:
      request - The servlet request from the client.
      Returns:
      The chosen character encoding.
    • createContext

      protected Context createContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Deprecated.
      Returns a context suitable to pass to the handleRequest() method

      Default implementation will create a VelocityContext object, put the HttpServletRequest and HttpServletResponse into the context accessable via the keys VelocityServlet.REQUEST and VelocityServlet.RESPONSE, respectively.
      Parameters:
      request - servlet request from client
      response - servlet reponse to client
      Returns:
      context
    • getTemplate

      Deprecated.
      Retrieves the requested template.
      Parameters:
      name - The file name of the template to retrieve relative to the template root.
      Returns:
      The requested template.
      Throws:
      ResourceNotFoundException - if template not found from any available source.
      ParseErrorException - if template cannot be parsed due to syntax (or other) error.
      Exception - if an error occurs in template initialization
    • getTemplate

      public Template getTemplate(String name, String encoding) throws ResourceNotFoundException, ParseErrorException, Exception
      Deprecated.
      Retrieves the requested template with the specified character encoding.
      Parameters:
      name - The file name of the template to retrieve relative to the template root.
      encoding - the character encoding of the template
      Returns:
      The requested template.
      Throws:
      ResourceNotFoundException - if template not found from any available source.
      ParseErrorException - if template cannot be parsed due to syntax (or other) error.
      Exception - if an error occurs in template initialization
      Since:
      Velocity v1.1
    • handleRequest

      protected Template handleRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Context ctx) throws Exception
      Deprecated.
      Implement this method to add your application data to the context, calling the getTemplate() method to produce your return value.

      In the event of a problem, you may handle the request directly and return null or throw a more meaningful exception for the error handler to catch.
      Parameters:
      request - servlet request from client
      response - servlet reponse
      ctx - The context to add your data to.
      Returns:
      The template to merge with your context or null, indicating that you handled the processing.
      Throws:
      Exception
      Since:
      Velocity v1.1
    • handleRequest

      protected Template handleRequest(Context ctx) throws Exception
      Implement this method to add your application data to the context, calling the getTemplate() method to produce your return value.

      In the event of a problem, you may simple return null or throw a more meaningful exception.
      Parameters:
      ctx - The context to add your data to.
      Returns:
      The template to merge with your context.
      Throws:
      Exception
    • error

      protected void error(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Exception cause) throws javax.servlet.ServletException, IOException
      Deprecated.
      Invoked when there is an error thrown in any part of doRequest() processing.

      Default will send a simple HTML response indicating there was a problem.
      Parameters:
      request - original HttpServletRequest from servlet container.
      response - HttpServletResponse object from servlet container.
      cause - Exception that was thrown by some other part of process.
      Throws:
      javax.servlet.ServletException
      IOException