Package org.apache.jasper.compiler
Class JspDocumentParser
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.apache.jasper.compiler.JspDocumentParser
-
- All Implemented Interfaces:
TagConstants
,org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
,org.xml.sax.ext.LexicalHandler
class JspDocumentParser extends org.xml.sax.helpers.DefaultHandler implements org.xml.sax.ext.LexicalHandler, TagConstants
Class implementing a parser for a JSP document, that is, a JSP page in XML syntax.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
JspDocumentParser.EnableDTDValidationException
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringBuilder
charBuffer
private JspCompilationContext
ctxt
private Node
current
private boolean
directivesOnly
private static JspDocumentParser.EnableDTDValidationException
ENABLE_DTD_VALIDATION_EXCEPTION
private ErrorDispatcher
err
private boolean
inDTD
private boolean
isTagFile
private boolean
isTop
private boolean
isValidating
private static java.lang.String
JSP_URI
private static java.lang.String
JSP_VERSION
private static java.lang.String
LEXICAL_HANDLER_PROPERTY
private org.xml.sax.Locator
locator
private PageInfo
pageInfo
private ParserController
parserController
private java.lang.String
path
private Node
scriptlessBodyNode
private Mark
startMark
private int
tagDependentNesting
private boolean
tagDependentPending
-
Fields inherited from interface org.apache.jasper.compiler.TagConstants
ATTRIBUTE_ACTION, ATTRIBUTE_DIRECTIVE_ACTION, BODY_ACTION, DECLARATION_ACTION, DIRECTIVE_ACTION, DOBODY_ACTION, ELEMENT_ACTION, EXPRESSION_ACTION, FALLBACK_ACTION, FORWARD_ACTION, GET_PROPERTY_ACTION, INCLUDE_ACTION, INCLUDE_DIRECTIVE_ACTION, INVOKE_ACTION, JSP_ATTRIBUTE_ACTION, JSP_ATTRIBUTE_DIRECTIVE_ACTION, JSP_BODY_ACTION, JSP_DECLARATION_ACTION, JSP_DOBODY_ACTION, JSP_ELEMENT_ACTION, JSP_EXPRESSION_ACTION, JSP_FALLBACK_ACTION, JSP_FORWARD_ACTION, JSP_GET_PROPERTY_ACTION, JSP_INCLUDE_ACTION, JSP_INCLUDE_DIRECTIVE_ACTION, JSP_INVOKE_ACTION, JSP_OUTPUT_ACTION, JSP_PAGE_DIRECTIVE_ACTION, JSP_PARAM_ACTION, JSP_PARAMS_ACTION, JSP_PLUGIN_ACTION, JSP_ROOT_ACTION, JSP_SCRIPTLET_ACTION, JSP_SET_PROPERTY_ACTION, JSP_TAG_DIRECTIVE_ACTION, JSP_TAGLIB_DIRECTIVE_ACTION, JSP_TEXT_ACTION, JSP_TEXT_ACTION_END, JSP_USE_BEAN_ACTION, JSP_VARIABLE_DIRECTIVE_ACTION, OUTPUT_ACTION, PAGE_DIRECTIVE_ACTION, PARAM_ACTION, PARAMS_ACTION, PLUGIN_ACTION, ROOT_ACTION, SCRIPTLET_ACTION, SET_PROPERTY_ACTION, TAG_DIRECTIVE_ACTION, TAGLIB_DIRECTIVE_ACTION, TEXT_ACTION, URN_JSPTAGDIR, URN_JSPTLD, USE_BEAN_ACTION, VARIABLE_DIRECTIVE_ACTION
-
-
Constructor Summary
Constructors Constructor Description JspDocumentParser(ParserController pc, java.lang.String path, boolean isTagFile, boolean directivesOnly)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addInclude(Node parent, java.util.List files)
private void
addTaglibInfo(java.lang.String prefix, java.lang.String uri)
void
characters(char[] buf, int offset, int len)
private void
checkPrefix(java.lang.String uri, java.lang.String qName)
private void
checkPrefixes(java.lang.String uri, java.lang.String qName, org.xml.sax.Attributes attrs)
private void
checkScriptingBody(Node.ScriptingElement scriptingElem)
void
comment(char[] buf, int offset, int len)
void
endCDATA()
void
endDTD()
void
endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
void
endEntity(java.lang.String name)
void
endPrefixMapping(java.lang.String prefix)
void
error(org.xml.sax.SAXParseException e)
void
fatalError(org.xml.sax.SAXParseException e)
private static java.lang.String
getBodyType(Node.CustomTag custom)
private static javax.xml.parsers.SAXParser
getSAXParser(boolean validating, JspDocumentParser jspDocParser)
private boolean
isTagDependent(Node n)
static Node.Nodes
parse(ParserController pc, java.lang.String path, java.util.jar.JarFile jarFile, Node parent, boolean isTagFile, boolean directivesOnly, java.lang.String pageEnc, java.lang.String jspConfigPageEnc, boolean isEncodingSpecifiedInProlog)
private Node
parseCustomAction(java.lang.String qName, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes nonTaglibAttrs, org.xml.sax.Attributes nonTaglibXmlnsAttrs, org.xml.sax.Attributes taglibAttrs, Mark start, Node parent)
private Node
parseStandardAction(java.lang.String qName, java.lang.String localName, org.xml.sax.Attributes nonTaglibAttrs, org.xml.sax.Attributes nonTaglibXmlnsAttrs, org.xml.sax.Attributes taglibAttrs, Mark start, Node parent)
private void
processChars()
private void
processIncludeDirective(java.lang.String fname, Node parent)
void
setDocumentLocator(org.xml.sax.Locator locator)
void
startCDATA()
void
startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
void
startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attrs)
void
startEntity(java.lang.String name)
void
startPrefixMapping(java.lang.String prefix, java.lang.String uri)
-
-
-
Field Detail
-
JSP_VERSION
private static final java.lang.String JSP_VERSION
- See Also:
- Constant Field Values
-
LEXICAL_HANDLER_PROPERTY
private static final java.lang.String LEXICAL_HANDLER_PROPERTY
- See Also:
- Constant Field Values
-
JSP_URI
private static final java.lang.String JSP_URI
- See Also:
- Constant Field Values
-
ENABLE_DTD_VALIDATION_EXCEPTION
private static final JspDocumentParser.EnableDTDValidationException ENABLE_DTD_VALIDATION_EXCEPTION
-
parserController
private ParserController parserController
-
ctxt
private JspCompilationContext ctxt
-
pageInfo
private PageInfo pageInfo
-
path
private java.lang.String path
-
charBuffer
private java.lang.StringBuilder charBuffer
-
current
private Node current
-
scriptlessBodyNode
private Node scriptlessBodyNode
-
locator
private org.xml.sax.Locator locator
-
startMark
private Mark startMark
-
inDTD
private boolean inDTD
-
isValidating
private boolean isValidating
-
err
private ErrorDispatcher err
-
isTagFile
private boolean isTagFile
-
directivesOnly
private boolean directivesOnly
-
isTop
private boolean isTop
-
tagDependentNesting
private int tagDependentNesting
-
tagDependentPending
private boolean tagDependentPending
-
-
Constructor Detail
-
JspDocumentParser
public JspDocumentParser(ParserController pc, java.lang.String path, boolean isTagFile, boolean directivesOnly)
-
-
Method Detail
-
parse
public static Node.Nodes parse(ParserController pc, java.lang.String path, java.util.jar.JarFile jarFile, Node parent, boolean isTagFile, boolean directivesOnly, java.lang.String pageEnc, java.lang.String jspConfigPageEnc, boolean isEncodingSpecifiedInProlog) throws JasperException
- Throws:
JasperException
-
addInclude
private void addInclude(Node parent, java.util.List files) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
startElement
public void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXException
- Specified by:
startElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
characters
public void characters(char[] buf, int offset, int len)
- Specified by:
characters
in interfaceorg.xml.sax.ContentHandler
- Overrides:
characters
in classorg.xml.sax.helpers.DefaultHandler
-
processChars
private void processChars() throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
endElement
public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException
- Specified by:
endElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
- Specified by:
setDocumentLocator
in interfaceorg.xml.sax.ContentHandler
- Overrides:
setDocumentLocator
in classorg.xml.sax.helpers.DefaultHandler
-
comment
public void comment(char[] buf, int offset, int len) throws org.xml.sax.SAXException
- Specified by:
comment
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
startCDATA
public void startCDATA() throws org.xml.sax.SAXException
- Specified by:
startCDATA
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
endCDATA
public void endCDATA() throws org.xml.sax.SAXException
- Specified by:
endCDATA
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
startEntity
public void startEntity(java.lang.String name) throws org.xml.sax.SAXException
- Specified by:
startEntity
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
endEntity
public void endEntity(java.lang.String name) throws org.xml.sax.SAXException
- Specified by:
endEntity
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
startDTD
public void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException
- Specified by:
startDTD
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
endDTD
public void endDTD() throws org.xml.sax.SAXException
- Specified by:
endDTD
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
fatalError
public void fatalError(org.xml.sax.SAXParseException e) throws org.xml.sax.SAXException
- Specified by:
fatalError
in interfaceorg.xml.sax.ErrorHandler
- Overrides:
fatalError
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
error
public void error(org.xml.sax.SAXParseException e) throws org.xml.sax.SAXException
- Specified by:
error
in interfaceorg.xml.sax.ErrorHandler
- Overrides:
error
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws org.xml.sax.SAXException
- Specified by:
startPrefixMapping
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startPrefixMapping
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
endPrefixMapping
public void endPrefixMapping(java.lang.String prefix) throws org.xml.sax.SAXException
- Specified by:
endPrefixMapping
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endPrefixMapping
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
parseStandardAction
private Node parseStandardAction(java.lang.String qName, java.lang.String localName, org.xml.sax.Attributes nonTaglibAttrs, org.xml.sax.Attributes nonTaglibXmlnsAttrs, org.xml.sax.Attributes taglibAttrs, Mark start, Node parent) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
parseCustomAction
private Node parseCustomAction(java.lang.String qName, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes nonTaglibAttrs, org.xml.sax.Attributes nonTaglibXmlnsAttrs, org.xml.sax.Attributes taglibAttrs, Mark start, Node parent) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
addTaglibInfo
private void addTaglibInfo(java.lang.String prefix, java.lang.String uri) throws JasperException
- Throws:
JasperException
-
checkScriptingBody
private void checkScriptingBody(Node.ScriptingElement scriptingElem) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
processIncludeDirective
private void processIncludeDirective(java.lang.String fname, Node parent) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
checkPrefixes
private void checkPrefixes(java.lang.String uri, java.lang.String qName, org.xml.sax.Attributes attrs)
-
checkPrefix
private void checkPrefix(java.lang.String uri, java.lang.String qName)
-
getSAXParser
private static javax.xml.parsers.SAXParser getSAXParser(boolean validating, JspDocumentParser jspDocParser) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getBodyType
private static java.lang.String getBodyType(Node.CustomTag custom)
-
isTagDependent
private boolean isTagDependent(Node n)
-
-