[
https://issues.apache.org/jira/browse/TILES-522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053680#comment-13053680
]
Antonio Petrelli commented on TILES-522:
----------------------------------------
There is problem I should have noticed before.
When you use PageContext.include you are sure you are putting stuff in JSP
response stream. When you are using RequestDispatcher.include you are putting
stuff in HttpResponse stream, that might be different.
In my experience, I noticed that writing to HttpResponse when there is a JSP
page, things appear *before* the intended places.
Probably there is some sort of "precendence" of HttpResponse over JSP page
context.
> Performance of TemplateAttributeRender in Tomcat
> ------------------------------------------------
>
> Key: TILES-522
> URL: https://issues.apache.org/jira/browse/TILES-522
> Project: Tiles
> Issue Type: Task
> Components: tiles-core
> Affects Versions: 2.2.2
> Environment: Java6, Java7, Tomcat6
> Reporter: Mck SembWever
> Priority: Minor
> Labels: performance
> Attachments: TILES-522.patch
>
>
> TeamplateAttributeRender.write(..) boils down to using
> JspRuntimeLibrary.include(..)
> In Tomcat-6 this involves wrapping the request and response (a number of
> times?) and going through security checks (again and again and again...).
> At FINN.no we're getting scores of requests per second per jvm and seeing
> this method becoming a bottleneck, mainly due to thread contention in the
> security checks.
> The method can be sped up by calling, if possible,
> requestDispatcher.include(..)
> For example we have overridden TemplateAttributeRender like
> public void write(
> final Object template,
> final Attribute attribute,
> final TilesRequestContext request) throws IOException {
> if(request instanceof JspTilesRequestContext && template instanceof
> String){
> try {
> ((JspTilesRequestContext) request)
> .getPageContext()
> .getServletContext()
> .getRequestDispatcher((String)template)
> .include((ServletRequest) request.getRequest(),
> (ServletResponse) request.getResponse());
> } catch (ServletException ex) {
> throw new TilesIOException(ex);
> }
> }else{
> super.write(template, attribute, request);
> }
> }
> I doubt that this is an appropriate patch to apply, it hides superclass
> functionality, but maybe there is a better place to apply it?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira