Package com.atlassian.confluence.servlet
Class ConfluenceVelocityServlet
- java.lang.Object
-
- javax.servlet.GenericServlet
-
- javax.servlet.http.HttpServlet
-
- com.atlassian.confluence.servlet.ConfluenceVelocityServlet
-
- All Implemented Interfaces:
Serializable,javax.servlet.Servlet,javax.servlet.ServletConfig
public class ConfluenceVelocityServlet extends javax.servlet.http.HttpServlet2006-06-14 CONF-6355: An improved WW VelocityServlet which doesn't load velocity twice!
We have copied code here because we can't override the WebWorkVelocityServlet as it calls VelocityServlet.init() which loads another entire identical instance of Velocity (beyond the VelocityManager's instance), and the two are used interchangeably.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_CONTENT_TYPEThe default content type for the response
-
Constructor Summary
Constructors Constructor Description ConfluenceVelocityServlet()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.apache.velocity.context.ContextcreateContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)voiddoGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)Handles GET - calls doRequest()voiddoPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)Handle a POST request - calls doRequest()protected voiddoRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)Handles all requestsprotected voiderror(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Exception cause)Invoked when there is an error thrown in any part of doRequest() processing.protected StringgetEncoding()org.apache.velocity.TemplategetTemplate(String name, String encoding)Retrieves the requested template with the specified character encoding.protected org.apache.velocity.TemplatehandleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, org.apache.velocity.context.Context context)voidinit(javax.servlet.ServletConfig servletConfig)protected voidmergeTemplate(org.apache.velocity.Template template, org.apache.velocity.context.Context context, javax.servlet.http.HttpServletResponse response)Copy of the method from WebworkVelocityServlet, adding a flush for the writer to get around problems we were having with truncated content when a filter started talking directly to the servletresponse writer without the struts writer having been flushed in the meanwhile.protected voidsetContentType(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)Sets the content type of the response.-
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service
-
-
-
-
Field Detail
-
DEFAULT_CONTENT_TYPE
public static final String DEFAULT_CONTENT_TYPE
The default content type for the response- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public void init(javax.servlet.ServletConfig servletConfig) throws javax.servlet.ServletException- Specified by:
initin interfacejavax.servlet.Servlet- Overrides:
initin classjavax.servlet.GenericServlet- Throws:
javax.servlet.ServletException
-
createContext
protected org.apache.velocity.context.Context createContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
-
handleRequest
protected org.apache.velocity.Template handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, org.apache.velocity.context.Context context) throws Exception- Throws:
Exception
-
getEncoding
protected String getEncoding()
-
getTemplate
public org.apache.velocity.Template getTemplate(String name, String encoding) throws org.apache.velocity.exception.ResourceNotFoundException, org.apache.velocity.exception.ParseErrorException, Exception
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:
org.apache.velocity.exception.ResourceNotFoundException- if template not found from any available source.org.apache.velocity.exception.ParseErrorException- if template cannot be parsed due to syntax (or other) error.Exception- if an error occurs in template initialization- Since:
- 2.3
-
doGet
public void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOExceptionHandles GET - calls doRequest()- Overrides:
doGetin classjavax.servlet.http.HttpServlet- Throws:
javax.servlet.ServletExceptionIOException
-
doPost
public void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOExceptionHandle a POST request - calls doRequest()- Overrides:
doPostin classjavax.servlet.http.HttpServlet- Throws:
javax.servlet.ServletExceptionIOException
-
doRequest
protected void doRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOExceptionHandles all requests- Parameters:
request- HttpServletRequest object containing client requestresponse- HttpServletResponse object for the response- Throws:
javax.servlet.ServletExceptionIOException
-
setContentType
protected void setContentType(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)Sets the content type of the response. This is available to be overriden by a derived class.The default implementation is :
response.setContentType( defaultContentType );
where defaultContentType is set to the value of the default.contentType property, or "text/html" if that is not set.
- Parameters:
request- servlet request from clientresponse- servlet reponse to client
-
mergeTemplate
protected void mergeTemplate(org.apache.velocity.Template template, org.apache.velocity.context.Context context, javax.servlet.http.HttpServletResponse response) throws org.apache.velocity.exception.ResourceNotFoundException, org.apache.velocity.exception.ParseErrorException, org.apache.velocity.exception.MethodInvocationException, IOException, UnsupportedEncodingException, ExceptionCopy of the method from WebworkVelocityServlet, adding a flush for the writer to get around problems we were having with truncated content when a filter started talking directly to the servletresponse writer without the struts writer having been flushed in the meanwhile.TODO: When this gets fixed in WebWork, remove this method.
- Throws:
org.apache.velocity.exception.ResourceNotFoundExceptionorg.apache.velocity.exception.ParseErrorExceptionorg.apache.velocity.exception.MethodInvocationExceptionIOExceptionUnsupportedEncodingExceptionException
-
error
protected void error(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Exception cause) throws javax.servlet.ServletException, IOExceptionInvoked 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.ServletExceptionIOException
-
-