Save This Page
Home » freemarker-2.3.13 » freemarker.ext.servlet » [javadoc | source]
freemarker.ext.servlet
public class: FreemarkerServlet [javadoc | source]
java.lang.Object
   javax.servlet.GenericServlet
      javax.servlet.http.HttpServlet
         freemarker.ext.servlet.FreemarkerServlet

All Implemented Interfaces:
    Serializable, Servlet, ServletConfig

This is a general-purpose FreeMarker view servlet.

The main features are:

The servlet will rethrow the errors occurring during template processing, wrapped into ServletException, except if the class name of the class set by the template_exception_handler contains the substring "Debug". If it contains "Debug", then it is assumed that the template exception handler prints the error message to the page, thus FreemarkerServlet will suppress the exception, and logs the problem with the servlet logger (javax.servlet.GenericServlet.log(...)).

Supported init-params are:

Field Summary
public static final  long serialVersionUID     
public static final  String KEY_REQUEST     
public static final  String KEY_REQUEST_PRIVATE     
public static final  String KEY_REQUEST_PARAMETERS     
public static final  String KEY_SESSION     
public static final  String KEY_APPLICATION     
public static final  String KEY_APPLICATION_PRIVATE     
public static final  String KEY_JSP_TAGLIBS     
protected  boolean debug     
Method from freemarker.ext.servlet.FreemarkerServlet Summary:
createConfiguration,   createModel,   createObjectWrapper,   createRequestParametersHashModel,   createTemplateLoader,   deduceLocale,   doGet,   doPost,   getConfiguration,   getObjectWrapper,   getTemplatePath,   init,   initializeServletContext,   initializeSession,   postTemplateProcess,   preTemplateProcess,   preprocessRequest,   requestUrlToTemplatePath
Methods from javax.servlet.http.HttpServlet:
service
Methods from javax.servlet.GenericServlet:
destroy,   getInitParameter,   getInitParameterNames,   getServletConfig,   getServletContext,   getServletInfo,   getServletName,   init,   init,   log,   log,   service
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from freemarker.ext.servlet.FreemarkerServlet Detail:
 protected Configuration createConfiguration() 
    This method is called from #init() to create the FreeMarker configuration object that this servlet will use for template loading. This is a hook that allows you to custom-configure the configuration object in a subclass. The default implementation returns a new Configuration instance.
 protected TemplateModel createModel(ObjectWrapper wrapper,
    ServletContext servletContext,
    HttpServletRequest request,
    HttpServletResponse response) throws TemplateModelException 
 protected ObjectWrapper createObjectWrapper() 
    This method is called from #init() to create the FreeMarker object wrapper object that this servlet will use for adapting request, session, and servlet context attributes into template models.. This is a hook that allows you to custom-configure the wrapper object in a subclass. The default implementation returns a wrapper that depends on the value of ObjectWrapper init parameter. If simple is specified, ObjectWrapper#SIMPLE_WRAPPER is used; if jython is specified, freemarker.ext.jython.JythonWrapper is used. In every other case ObjectWrapper#DEFAULT_WRAPPER is used.
 protected HttpRequestParametersHashModel createRequestParametersHashModel(HttpServletRequest request) 
 protected TemplateLoader createTemplateLoader(String templatePath) throws IOException 
 protected Locale deduceLocale(String templatePath,
    HttpServletRequest request,
    HttpServletResponse response) 
    Returns the locale used for the Configuration#getTemplate(String, Locale) call. The base implementation simply returns the locale setting of the configuration. Override this method to provide different behaviour, i.e. to use the locale indicated in the request.
 public  void doGet(HttpServletRequest request,
    HttpServletResponse response) throws IOException, ServletException 
 public  void doPost(HttpServletRequest request,
    HttpServletResponse response) throws IOException, ServletException 
 protected Configuration getConfiguration() 
 protected ObjectWrapper getObjectWrapper() 
 protected final String getTemplatePath() 
 public  void init() throws ServletException 
 protected  void initializeServletContext(HttpServletRequest request,
    HttpServletResponse response) throws IOException, ServletException 
    Called when servlet detects in a request processing that application-global (that is, ServletContext-specific) attributes are not yet set. This is a generic hook you might use in subclasses to perform a specific action on first request in the context. By default it does nothing.
 protected  void initializeSession(HttpServletRequest request,
    HttpServletResponse response) throws IOException, ServletException 
    Called when servlet detects in a request processing that session-global (that is, HttpSession-specific) attributes are not yet set. This is a generic hook you might use in subclasses to perform a specific action on first request in the session. By default it does nothing. It is only invoked on newly created sessions; it is not invoked when a replicated session is reinstantiated in another servlet container.
 protected  void postTemplateProcess(HttpServletRequest request,
    HttpServletResponse response,
    Template template,
    TemplateModel data) throws IOException, ServletException 
    Called after the execution returns from template.process(). This is a generic hook you might use in subclasses to perform a specific action after the template is processed. It will be invoked even if the template processing throws an exception. By default does nothing.
 protected boolean preTemplateProcess(HttpServletRequest request,
    HttpServletResponse response,
    Template template,
    TemplateModel data) throws IOException, ServletException 
    Called before the execution is passed to template.process(). This is a generic hook you might use in subclasses to perform a specific action before the template is processed. By default does nothing. A typical action to perform here is to inject application-specific objects into the model root

    Example: Expose the Serlvet context path as "baseDir" for all templates:

    ((SimpleHash) data).put("baseDir", request.getContextPath() + "/");
    return true;
    
 protected boolean preprocessRequest(HttpServletRequest request,
    HttpServletResponse response) throws IOException, ServletException 
    Called as the first step in request processing, before the templating mechanism is put to work. By default does nothing and returns false. This method is typically overridden to manage serving of non-template resources (i.e. images) that reside in the template directory.
 protected String requestUrlToTemplatePath(HttpServletRequest request) 
    Maps the request URL to a template path that is passed to Configuration#getTemplate(String, Locale) . You can override it (i.e. to provide advanced rewriting capabilities), but you are strongly encouraged to call the overridden method first, then only modify its return value.