Class PageFilter

  • All Implemented Interfaces:
    RequestConstants, javax.servlet.Filter

    public class PageFilter
    extends java.lang.Object
    implements javax.servlet.Filter, RequestConstants
    Main SiteMesh filter for applying Decorators to entire Pages.
    Version:
    $Revision: 1.6 $
    Author:
    Joe Walnes, Scott Farquhar
    • Constructor Summary

      Constructors 
      Constructor Description
      PageFilter()  
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      protected void applyDecorator​(Page page, Decorator decorator, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Apply Decorator to Page and write to the response.
      void destroy()
      Shutdown filter.
      void doFilter​(javax.servlet.ServletRequest rq, javax.servlet.ServletResponse rs, javax.servlet.FilterChain chain)
      Main method of the Filter.
      private java.lang.String extractRequestPath​(javax.servlet.http.HttpServletRequest request)  
      javax.servlet.FilterConfig getFilterConfig()
      Deprecated.
      Not needed in final version of Servlet 2.3 API - replaced by init().
      void init​(javax.servlet.FilterConfig filterConfig)
      Set FilterConfig, and get instance of DecoratorMapper.
      protected Page parsePage​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)
      Continue in filter-chain, writing all content to buffer and parsing into returned Page object.
      void setFilterConfig​(javax.servlet.FilterConfig filterConfig)
      Deprecated.
      Not needed in final version of Servlet 2.3 API - replaced by init().
      private void writeOriginal​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Page page)
      Write the original page data to the response.
      • Methods inherited from class java.lang.Object

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

      • filterConfig

        private javax.servlet.FilterConfig filterConfig
    • Constructor Detail

      • PageFilter

        public PageFilter()
    • Method Detail

      • doFilter

        public void doFilter​(javax.servlet.ServletRequest rq,
                             javax.servlet.ServletResponse rs,
                             javax.servlet.FilterChain chain)
                      throws java.io.IOException,
                             javax.servlet.ServletException
        Main method of the Filter.

        Checks if the Filter has been applied this request. If not, parses the page and applies Decorator (if found).

        Specified by:
        doFilter in interface javax.servlet.Filter
        Throws:
        java.io.IOException
        javax.servlet.ServletException
      • extractRequestPath

        private java.lang.String extractRequestPath​(javax.servlet.http.HttpServletRequest request)
      • init

        public void init​(javax.servlet.FilterConfig filterConfig)
        Set FilterConfig, and get instance of DecoratorMapper.
        Specified by:
        init in interface javax.servlet.Filter
      • getFilterConfig

        public javax.servlet.FilterConfig getFilterConfig()
        Deprecated.
        Not needed in final version of Servlet 2.3 API - replaced by init().
      • setFilterConfig

        public void setFilterConfig​(javax.servlet.FilterConfig filterConfig)
        Deprecated.
        Not needed in final version of Servlet 2.3 API - replaced by init().
      • destroy

        public void destroy()
        Shutdown filter.
        Specified by:
        destroy in interface javax.servlet.Filter
      • parsePage

        protected Page parsePage​(javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response,
                                 javax.servlet.FilterChain chain)
                          throws java.io.IOException,
                                 javax.servlet.ServletException
        Continue in filter-chain, writing all content to buffer and parsing into returned Page object. If Page is not parseable, null is returned.

        To debug the PageWriter, add the following to the servlet configuration:

         <init-param>
             <param-name>debug.pagewriter</param-name>
             <param-value>true</param-value>
         </init-param>
         

        Throws:
        java.io.IOException
        javax.servlet.ServletException
      • applyDecorator

        protected void applyDecorator​(Page page,
                                      Decorator decorator,
                                      javax.servlet.http.HttpServletRequest request,
                                      javax.servlet.http.HttpServletResponse response)
                               throws javax.servlet.ServletException,
                                      java.io.IOException
        Apply Decorator to Page and write to the response.
        Throws:
        javax.servlet.ServletException
        java.io.IOException
      • writeOriginal

        private void writeOriginal​(javax.servlet.http.HttpServletRequest request,
                                   javax.servlet.http.HttpServletResponse response,
                                   Page page)
                            throws java.io.IOException
        Write the original page data to the response.
        Throws:
        java.io.IOException