Package org.apache.jasper.compiler
Class ParserController
java.lang.Object
org.apache.jasper.compiler.ParserController
- All Implemented Interfaces:
TagConstants
Controller for the parsing of a JSP page.
The same ParserController instance is used for a JSP page and any JSP segments included by it (via an include directive), where each segment may be provided in standard or XML syntax. This class selects and invokes the appropriate parser for the JSP page and its included segments.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private Compiler
private JspCompilationContext
private boolean
private ErrorDispatcher
private boolean
private boolean
private boolean
private boolean
private boolean
private String
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_URI, 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 -
Method Summary
Modifier and TypeMethodDescriptionprivate void
comparePageEncodings
(String jspConfigPageEnc) private void
determineSyntaxAndEncoding
(String absFileName, JarFile jarFile, String jspConfigPageEnc) Determines the syntax (standard or XML) and page encoding properties for the given file, and stores them in the 'isXml' and 'sourceEnc' instance variables, respectively.private Node.Nodes
Parses the JSP page or tag file with the given path name.private JarFile
getJarFile
(URL jarFileUrl) private String
getJspConfigPageEncoding
(String absFileName) private String
getPageEncodingForJspSyntax
(JspReader jspReader, Mark startMark) private String
getPageEncodingFromDirective
(Attributes attrs, String attrName) private boolean
hasJspRoot
(JspReader reader) Parses a JSP page or tag file.Processes an include directive with the given path.parseTagFileDirectives
(String inFileName) Extracts tag file directive information from the tag file with the given name.private String
resolveFileName
(String inFileName)
-
Field Details
-
CHARSET
- See Also:
-
ctxt
-
compiler
-
err
-
isXml
private boolean isXml -
baseDirStack
-
isEncodingSpecifiedInProlog
private boolean isEncodingSpecifiedInProlog -
hasBom
private boolean hasBom -
sourceEnc
-
isDefaultPageEncoding
private boolean isDefaultPageEncoding -
isTagFile
private boolean isTagFile -
directiveOnly
private boolean directiveOnly
-
-
Constructor Details
-
ParserController
-
-
Method Details
-
getJspCompilationContext
-
getCompiler
-
parse
public Node.Nodes parse(String inFileName) throws FileNotFoundException, JasperException, IOException Parses a JSP page or tag file. This is invoked by the compiler.- Parameters:
inFileName
- The path to the JSP page or tag file to be parsed.- Throws:
FileNotFoundException
JasperException
IOException
-
parse
public Node.Nodes parse(String inFileName, Node parent, URL jarFileUrl) throws FileNotFoundException, JasperException, IOException Processes an include directive with the given path.- Parameters:
inFileName
- The path to the resource to be included.parent
- The parent node of the include directive.jarFile
- The JAR file from which to read the included resource, or null of the included resource is to be read from the filesystem- Throws:
FileNotFoundException
JasperException
IOException
-
parseTagFileDirectives
public Node.Nodes parseTagFileDirectives(String inFileName) throws FileNotFoundException, JasperException, IOException Extracts tag file directive information from the tag file with the given name. This is invoked by the compiler- Parameters:
inFileName
- The name of the tag file to be parsed.- Throws:
FileNotFoundException
JasperException
IOException
-
doParse
private Node.Nodes doParse(String inFileName, Node parent, URL jarFileUrl) throws FileNotFoundException, JasperException, IOException Parses the JSP page or tag file with the given path name.- Parameters:
inFileName
- The name of the JSP page or tag file to be parsed.parent
- The parent node (non-null when processing an include directive)isTagFile
- true if file to be parsed is tag file, and false if it is a regular JSP pagedirectivesOnly
- true if the file to be parsed is a tag file and we are only interested in the directives needed for constructing a TagFileInfo.jarFile
- The JAR file from which to read the JSP page or tag file, or null if the JSP page or tag file is to be read from the filesystem- Throws:
FileNotFoundException
JasperException
IOException
-
comparePageEncodings
- Throws:
JasperException
-
getJspConfigPageEncoding
- Throws:
JasperException
-
determineSyntaxAndEncoding
private void determineSyntaxAndEncoding(String absFileName, JarFile jarFile, String jspConfigPageEnc) throws JasperException, IOException Determines the syntax (standard or XML) and page encoding properties for the given file, and stores them in the 'isXml' and 'sourceEnc' instance variables, respectively.- Throws:
JasperException
IOException
-
getPageEncodingForJspSyntax
private String getPageEncodingForJspSyntax(JspReader jspReader, Mark startMark) throws JasperException - Throws:
JasperException
-
getPageEncodingFromDirective
-
resolveFileName
-
hasJspRoot
- Throws:
JasperException
-
getJarFile
- Throws:
IOException
-