Class ImportSupport

  • All Implemented Interfaces:
    java.io.Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.TryCatchFinally, ParamParent
    Direct Known Subclasses:
    ImportTag, ImportTag

    public abstract class ImportSupport
    extends javax.servlet.jsp.tagext.BodyTagSupport
    implements javax.servlet.jsp.tagext.TryCatchFinally, ParamParent

    Support for tag handlers for <import>, the general-purpose text-importing mechanism for JSTL 1.0. The rtexprvalue and expression- evaluating libraries each have handlers that extend this class.

    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String charEncoding  
      protected java.lang.String context  
      static java.lang.String DEFAULT_ENCODING
      Default character encoding for response.
      private boolean isAbsoluteUrl  
      private ParamSupport.ParamManager params  
      private java.io.Reader r  
      private int scope  
      protected java.lang.String url  
      private java.lang.String urlWithParams  
      static java.lang.String VALID_SCHEME_CHARS
      Valid characters in a scheme.
      private java.lang.String var  
      private java.lang.String varReader  
      • Fields inherited from class javax.servlet.jsp.tagext.BodyTagSupport

        bodyContent
      • Fields inherited from class javax.servlet.jsp.tagext.TagSupport

        id, pageContext
      • Fields inherited from interface javax.servlet.jsp.tagext.BodyTag

        EVAL_BODY_BUFFERED, EVAL_BODY_TAG
      • Fields inherited from interface javax.servlet.jsp.tagext.IterationTag

        EVAL_BODY_AGAIN
      • Fields inherited from interface javax.servlet.jsp.tagext.Tag

        EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
    • Constructor Summary

      Constructors 
      Constructor Description
      ImportSupport()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private java.io.Reader acquireReader()  
      private java.lang.String acquireString()  
      void addParameter​(java.lang.String name, java.lang.String value)
      Adds a parameter to this tag's URL.
      void doCatch​(java.lang.Throwable t)  
      int doEndTag()  
      void doFinally()  
      int doStartTag()  
      private void init()  
      private boolean isAbsoluteUrl()
      Returns true if our current URL is absolute, false otherwise.
      static boolean isAbsoluteUrl​(java.lang.String url)
      Returns true if our current URL is absolute, false otherwise.
      void release()  
      void setScope​(java.lang.String scope)  
      void setVar​(java.lang.String var)  
      void setVarReader​(java.lang.String varReader)  
      static java.lang.String stripSession​(java.lang.String url)
      Strips a servlet session ID from url.
      private java.lang.String targetUrl()
      Returns our URL (potentially with parameters)
      • Methods inherited from class javax.servlet.jsp.tagext.BodyTagSupport

        doAfterBody, doInitBody, getBodyContent, getPreviousOut, setBodyContent
      • Methods inherited from class javax.servlet.jsp.tagext.TagSupport

        findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.servlet.jsp.tagext.Tag

        getParent, setPageContext, setParent
    • Field Detail

      • VALID_SCHEME_CHARS

        public static final java.lang.String VALID_SCHEME_CHARS

        Valid characters in a scheme.

        RFC 1738 says the following:

        Scheme names consist of a sequence of characters. The lower case letters "a"--"z", digits, and the characters plus ("+"), period ("."), and hyphen ("-") are allowed. For resiliency, programs interpreting URLs should treat upper case letters as equivalent to lower case in scheme names (e.g., allow "HTTP" as well as "http").

        We treat as absolute any URL that begins with such a scheme name, followed by a colon.

        See Also:
        Constant Field Values
      • DEFAULT_ENCODING

        public static final java.lang.String DEFAULT_ENCODING
        Default character encoding for response.
        See Also:
        Constant Field Values
      • url

        protected java.lang.String url
      • context

        protected java.lang.String context
      • charEncoding

        protected java.lang.String charEncoding
      • var

        private java.lang.String var
      • scope

        private int scope
      • varReader

        private java.lang.String varReader
      • r

        private java.io.Reader r
      • isAbsoluteUrl

        private boolean isAbsoluteUrl
      • urlWithParams

        private java.lang.String urlWithParams
    • Constructor Detail

      • ImportSupport

        public ImportSupport()
    • Method Detail

      • init

        private void init()
      • doStartTag

        public int doStartTag()
                       throws javax.servlet.jsp.JspException
        Specified by:
        doStartTag in interface javax.servlet.jsp.tagext.Tag
        Overrides:
        doStartTag in class javax.servlet.jsp.tagext.BodyTagSupport
        Throws:
        javax.servlet.jsp.JspException
      • doEndTag

        public int doEndTag()
                     throws javax.servlet.jsp.JspException
        Specified by:
        doEndTag in interface javax.servlet.jsp.tagext.Tag
        Overrides:
        doEndTag in class javax.servlet.jsp.tagext.BodyTagSupport
        Throws:
        javax.servlet.jsp.JspException
      • doCatch

        public void doCatch​(java.lang.Throwable t)
                     throws java.lang.Throwable
        Specified by:
        doCatch in interface javax.servlet.jsp.tagext.TryCatchFinally
        Throws:
        java.lang.Throwable
      • doFinally

        public void doFinally()
        Specified by:
        doFinally in interface javax.servlet.jsp.tagext.TryCatchFinally
      • release

        public void release()
        Specified by:
        release in interface javax.servlet.jsp.tagext.Tag
        Overrides:
        release in class javax.servlet.jsp.tagext.BodyTagSupport
      • setVar

        public void setVar​(java.lang.String var)
      • setVarReader

        public void setVarReader​(java.lang.String varReader)
      • setScope

        public void setScope​(java.lang.String scope)
      • addParameter

        public void addParameter​(java.lang.String name,
                                 java.lang.String value)
        Description copied from interface: ParamParent
        Adds a parameter to this tag's URL. The intent is that the <param> subtag will call this to register URL parameters. Assumes that 'name' and 'value' are appropriately encoded and do not contain any meaningful metacharacters; in order words, escaping is the responsibility of the caller.
        Specified by:
        addParameter in interface ParamParent
        See Also:
        ParamSupport
      • acquireString

        private java.lang.String acquireString()
                                        throws java.io.IOException,
                                               javax.servlet.jsp.JspException
        Throws:
        java.io.IOException
        javax.servlet.jsp.JspException
      • acquireReader

        private java.io.Reader acquireReader()
                                      throws java.io.IOException,
                                             javax.servlet.jsp.JspException
        Throws:
        java.io.IOException
        javax.servlet.jsp.JspException
      • targetUrl

        private java.lang.String targetUrl()
        Returns our URL (potentially with parameters)
      • isAbsoluteUrl

        private boolean isAbsoluteUrl()
                               throws javax.servlet.jsp.JspTagException
        Returns true if our current URL is absolute, false otherwise.
        Throws:
        javax.servlet.jsp.JspTagException
      • isAbsoluteUrl

        public static boolean isAbsoluteUrl​(java.lang.String url)
        Returns true if our current URL is absolute, false otherwise.
      • stripSession

        public static java.lang.String stripSession​(java.lang.String url)
        Strips a servlet session ID from url. The session ID is encoded as a URL "path parameter" beginning with "jsessionid=". We thus remove anything we find between ";jsessionid=" (inclusive) and either EOS or a subsequent ';' (exclusive).