Class PageFilter

java.lang.Object
com.opensymphony.module.sitemesh.filter.PageFilter
All Implemented Interfaces:
RequestConstants, jakarta.servlet.Filter

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

    Fields
    Modifier and Type
    Field
    Description
    private Factory
     
    private jakarta.servlet.FilterConfig
     

    Fields inherited from interface com.opensymphony.module.sitemesh.RequestConstants

    DECORATOR, FILTER_APPLIED, PAGE, ROBOT, USING_STREAM
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    applyDecorator(Page page, Decorator decorator, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
    Apply Decorator to Page and write to the response.
    void
    Shutdown filter.
    void
    doFilter(jakarta.servlet.ServletRequest rq, jakarta.servlet.ServletResponse rs, jakarta.servlet.FilterChain chain)
    Main method of the Filter.
    private String
    extractRequestPath(jakarta.servlet.http.HttpServletRequest request)
     
    jakarta.servlet.FilterConfig
    Deprecated.
    Not needed in final version of Servlet 2.3 API - replaced by init().
    void
    init(jakarta.servlet.FilterConfig filterConfig)
    Set FilterConfig, and get instance of DecoratorMapper.
    protected Page
    parsePage(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain chain)
    Continue in filter-chain, writing all content to buffer and parsing into returned Page object.
    void
    setFilterConfig(jakarta.servlet.FilterConfig filterConfig)
    Deprecated.
    Not needed in final version of Servlet 2.3 API - replaced by init().
    private void
    writeOriginal(jakarta.servlet.http.HttpServletRequest request, jakarta.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 Details

    • filterConfig

      private jakarta.servlet.FilterConfig filterConfig
    • factory

      private Factory factory
  • Constructor Details

    • PageFilter

      public PageFilter()
  • Method Details

    • doFilter

      public void doFilter(jakarta.servlet.ServletRequest rq, jakarta.servlet.ServletResponse rs, jakarta.servlet.FilterChain chain) throws IOException, jakarta.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 jakarta.servlet.Filter
      Throws:
      IOException
      jakarta.servlet.ServletException
    • extractRequestPath

      private String extractRequestPath(jakarta.servlet.http.HttpServletRequest request)
    • init

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

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

      public void setFilterConfig(jakarta.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 jakarta.servlet.Filter
    • parsePage

      protected Page parsePage(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain chain) throws IOException, jakarta.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:
      IOException
      jakarta.servlet.ServletException
    • applyDecorator

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

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