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 Stringprivate Compilerprivate JspCompilationContextprivate booleanprivate ErrorDispatcherprivate booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate StringFields inherited from interface 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 voidcomparePageEncodings(String jspConfigPageEnc) private voiddetermineSyntaxAndEncoding(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.NodesParses the JSP page or tag file with the given path name.private JarFilegetJarFile(URL jarFileUrl) private StringgetJspConfigPageEncoding(String absFileName) private StringgetPageEncodingForJspSyntax(JspReader jspReader, Mark startMark) private StringgetPageEncodingFromDirective(Attributes attrs, String attrName) private booleanhasJspRoot(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 StringresolveFileName(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:
FileNotFoundExceptionJasperExceptionIOException
-
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:
FileNotFoundExceptionJasperExceptionIOException
-
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:
FileNotFoundExceptionJasperExceptionIOException
-
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:
FileNotFoundExceptionJasperExceptionIOException
-
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:
JasperExceptionIOException
-
getPageEncodingForJspSyntax
private String getPageEncodingForJspSyntax(JspReader jspReader, Mark startMark) throws JasperException - Throws:
JasperException
-
getPageEncodingFromDirective
-
resolveFileName
-
hasJspRoot
- Throws:
JasperException
-
getJarFile
- Throws:
IOException
-