View Javadoc
1 /* 2 * Angkor Web Framework 3 * 4 * Distributable under LGPL license. 5 * See terms of license at gnu.org. 6 */ 7 8 package com.tirsen.angkor.jsp; 9 10 import com.tirsen.angkor.Application; 11 import com.tirsen.angkor.Debug; 12 import com.tirsen.angkor.RenderContext; 13 import com.tirsen.angkor.process.ExecuteContext; 14 import com.tirsen.angkor.process.Pipeline; 15 import org.apache.log4j.Category; 16 17 import javax.servlet.Filter; 18 import javax.servlet.FilterChain; 19 import javax.servlet.FilterConfig; 20 import javax.servlet.ServletException; 21 import javax.servlet.ServletRequest; 22 import javax.servlet.ServletResponse; 23 import javax.servlet.http.HttpServletRequest; 24 import javax.servlet.http.HttpServletResponse; 25 import java.io.IOException; 26 27 /*** 28 * A servlet filter acting as the main entry point to the Angkor engine, passes the request 29 * to RenderContext where the actual engine is implemented. 30 * 31 * <!-- $Id: PrerenderFilter.java,v 1.3 2002/10/09 21:37:37 tirsen Exp $ --> 32 * 33 * @author $Author: tirsen $ 34 * @version $Revision: 1.3 $ 35 */ 36 public class PrerenderFilter implements Filter 37 { 38 private static final Category logger = Category.getInstance(Debug.LOGGER_NAME); 39 40 public static final String REGISTRY_NAME = "_angkor_prerendered_registry"; 41 42 private FilterConfig filterConfig; 43 44 public FilterConfig getFilterConfig() 45 { 46 return filterConfig; 47 } 48 49 public void setFilterConfig(FilterConfig filterConfig) 50 { 51 this.filterConfig = filterConfig; 52 } 53 54 public void init(FilterConfig config) throws ServletException 55 { 56 } 57 58 public void doFilter(ServletRequest sRequest, ServletResponse sResponse, FilterChain chain) 59 throws IOException, ServletException 60 { 61 HttpServletRequest request = (HttpServletRequest) sRequest; 62 HttpServletResponse response = (HttpServletResponse) sResponse; 63 64 RenderContext context = new RenderContext(request, response); 65 66 Application application = context.getApplication(); 67 Pipeline pipeline = application.createPrerenderPipeline(); 68 ExecuteContext exec; 69 try 70 { 71 exec = pipeline.createExecuteContext(context); 72 pipeline.execute(exec); 73 } 74 catch (Exception e) 75 { 76 throw new ServletException(e); 77 } 78 PrerenderedComponentsRegistry registry = (PrerenderedComponentsRegistry) 79 exec.getAttribute(PrerenderValve.PrerenderedComponentsRegistryAttribute); 80 sRequest.setAttribute(REGISTRY_NAME, registry); 81 82 // the processing could end up redirecting the request or sending an error or anything else 83 // make sure not to write on a commited response 84 if (!response.isCommitted()) chain.doFilter(sRequest, sResponse); 85 } 86 87 public void destroy() 88 { 89 } 90 }

This page was automatically generated by Maven