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 classJspDocumentParser.EnableDTDValidationException
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringBuildercharBufferprivate JspCompilationContextctxtprivate Nodecurrentprivate booleandirectivesOnlyprivate static JspDocumentParser.EnableDTDValidationExceptionENABLE_DTD_VALIDATION_EXCEPTIONprivate ErrorDispatchererrprivate booleaninDTDprivate booleanisTagFileprivate booleanisTopprivate booleanisValidatingprivate static java.lang.StringJSP_URIprivate static java.lang.StringJSP_VERSIONprivate static java.lang.StringLEXICAL_HANDLER_PROPERTYprivate org.xml.sax.Locatorlocatorprivate PageInfopageInfoprivate ParserControllerparserControllerprivate java.lang.Stringpathprivate NodescriptlessBodyNodeprivate MarkstartMarkprivate inttagDependentNestingprivate booleantagDependentPending-
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 voidaddInclude(Node parent, java.util.List files)private voidaddTaglibInfo(java.lang.String prefix, java.lang.String uri)voidcharacters(char[] buf, int offset, int len)private voidcheckPrefix(java.lang.String uri, java.lang.String qName)private voidcheckPrefixes(java.lang.String uri, java.lang.String qName, org.xml.sax.Attributes attrs)private voidcheckScriptingBody(Node.ScriptingElement scriptingElem)voidcomment(char[] buf, int offset, int len)voidendCDATA()voidendDTD()voidendElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)voidendEntity(java.lang.String name)voidendPrefixMapping(java.lang.String prefix)voiderror(org.xml.sax.SAXParseException e)voidfatalError(org.xml.sax.SAXParseException e)private static java.lang.StringgetBodyType(Node.CustomTag custom)private static javax.xml.parsers.SAXParsergetSAXParser(boolean validating, JspDocumentParser jspDocParser)private booleanisTagDependent(Node n)static Node.Nodesparse(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 NodeparseCustomAction(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 NodeparseStandardAction(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 voidprocessChars()private voidprocessIncludeDirective(java.lang.String fname, Node parent)voidsetDocumentLocator(org.xml.sax.Locator locator)voidstartCDATA()voidstartDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)voidstartElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attrs)voidstartEntity(java.lang.String name)voidstartPrefixMapping(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:
startElementin interfaceorg.xml.sax.ContentHandler- Overrides:
startElementin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException
-
characters
public void characters(char[] buf, int offset, int len)- Specified by:
charactersin interfaceorg.xml.sax.ContentHandler- Overrides:
charactersin 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:
endElementin interfaceorg.xml.sax.ContentHandler- Overrides:
endElementin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException
-
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
- Specified by:
setDocumentLocatorin interfaceorg.xml.sax.ContentHandler- Overrides:
setDocumentLocatorin classorg.xml.sax.helpers.DefaultHandler
-
comment
public void comment(char[] buf, int offset, int len) throws org.xml.sax.SAXException- Specified by:
commentin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
startCDATA
public void startCDATA() throws org.xml.sax.SAXException- Specified by:
startCDATAin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
endCDATA
public void endCDATA() throws org.xml.sax.SAXException- Specified by:
endCDATAin 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:
startEntityin 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:
endEntityin 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:
startDTDin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
endDTD
public void endDTD() throws org.xml.sax.SAXException- Specified by:
endDTDin 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:
fatalErrorin interfaceorg.xml.sax.ErrorHandler- Overrides:
fatalErrorin 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:
errorin interfaceorg.xml.sax.ErrorHandler- Overrides:
errorin 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:
startPrefixMappingin interfaceorg.xml.sax.ContentHandler- Overrides:
startPrefixMappingin 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:
endPrefixMappingin interfaceorg.xml.sax.ContentHandler- Overrides:
endPrefixMappingin 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)
-
-