Jsp基本语法
Jsp语法分为3类:脚本元素、指令元素、动作元素。
jsp的脚本元素有以下4个:
1. 隐藏注释:<%--这是客户端不可见的隐藏注释--%>
2. 声明(declarations):<%!这是声明%>
3. 脚本段(scriptlets):<%这是脚本段%>
4. 表达式(expression):<%=这是表达式%>
jsp的指令元素有以下3个:
指令主要用来提供整个JSP网页相关的信息,并且用来设定JSP页面的相关属性。
一、page指令
功能:设定整个JSP网页的属性和相关功能。
语法:<%@ page attribute1="value1" attribute2="value2" %>
标签元素:<jsp:directive.page attribute1="value1" attribute2="value2" />
page指令元素的属性
language="language" 指定JSP Container要用什么语言来编译JSP网页。目前只可以使用Java语言,不过不排除增加其它语言。默认值为Java。
extends="className" 定义此JSP页面产生的Servlet是继承自哪个父类。必须为实现Http
指令主要用来提供整个JSP网页相关的信息,并且用来设定JSP页面的相关属性。
一、page指令
功能:设定整个JSP网页的属性和相关功能。
语法:<%@ page attribute1="value1" attribute2="value2" %>
标签元素:<jsp:directive.page attribute1="value1" attribute2="value2" />
page指令元素的属性
language="language" 指定JSP Container要用什么语言来编译JSP网页。目前只可以使用Java语言,不过不排除增加其它语言。默认值为Java。
extends="className" 定义此JSP页面产生的Servlet是继承自哪个父类。必须为实现Http
JspPage接口的类。JSP规范对不完全理解其隐意的情况下使用此属性提出警告。
import="importList" 定义此JSP页面可以使用哪些Java API。用逗号分隔列出一个或多个全质类名。此列表用于在生成的java servlet中创建相应的导入语句。以下包是自动包含的,不必被指出:java.lang.*;java.servlet.*;java.servlet.jsp.*;java.servlet.htt.*
session="true|false" 指明JSP页面是否需要一个HTTP会话,如果为true,那么产生的servlet将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。
buffer="none|size in kb" 指定输出流缓存的大小。有效值是nkb或没有。缺省为8kb。
authflush="true|false: 决定输出流的缓冲区是否要自动清除。当值为true时缓存满时将被自动刷新,当值为false时,缓冲区满会抛出溢出异常。缺省值为true。
isThreadSafe="true" 此JSP页面能处理来自多个线程的同步请求,此值为true,否则为false,生成的servlet表明它实现了SingleThreadMode接口。SingleThreadMode已经声明不赞成使用(deprecate)
info="text" 表示此JSP页面的相关信息,由getServletInfo()方法返回的。
isErrorPage="true|false" 如果此页面被用作处理异常错误的页面,则为true。在这种情况
import="importList" 定义此JSP页面可以使用哪些Java API。用逗号分隔列出一个或多个全质类名。此列表用于在生成的java servlet中创建相应的导入语句。以下包是自动包含的,不必被指出:java.lang.*;java.servlet.*;java.servlet.jsp.*;java.servlet.htt.*
session="true|false" 指明JSP页面是否需要一个HTTP会话,如果为true,那么产生的servlet将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。
buffer="none|size in kb" 指定输出流缓存的大小。有效值是nkb或没有。缺省为8kb。
authflush="true|false: 决定输出流的缓冲区是否要自动清除。当值为true时缓存满时将被自动刷新,当值为false时,缓冲区满会抛出溢出异常。缺省值为true。
isThreadSafe="true" 此JSP页面能处理来自多个线程的同步请求,此值为true,否则为false,生成的servlet表明它实现了SingleThreadMode接口。SingleThreadMode已经声明不赞成使用(deprecate)
info="text" 表示此JSP页面的相关信息,由getServletInfo()方法返回的。
isErrorPage="true|false" 如果此页面被用作处理异常错误的页面,则为true。在这种情况
下,页面可被指定为另一页面page指令元素中errorPage属性的取值。指定此属性为true将使exception隐含变量对此页面可用。缺省值为false。
errorPage="error_url" 表示如果发生异常错误,网页会被重新指向一个URL页面。错误页面必须在其page指令元素中指定isErrorPage="true"
contentType="ctinfo" 表示将在生成servlet中使用的MIME类型和可选字符解码。
pageEncoding="ctinfo" 表示JSP页面的编码方式。
isELIgnored="true|false" 表示是否在此JSP网页中执行或忽略EL表达式。如果为true时JSP Container将忽略EL表达式。
二、include指令
功能:在JSP编译时插入包含一个文件。包含的过程是静态的,包含的文件可以是JSP、HTML、文本或是Java程序。
语法:<%@ include file="relativeURLspec" %>
标签元素:<jsp:directive.include file="relativeURLspec" />
errorPage="error_url" 表示如果发生异常错误,网页会被重新指向一个URL页面。错误页面必须在其page指令元素中指定isErrorPage="true"
contentType="ctinfo" 表示将在生成servlet中使用的MIME类型和可选字符解码。
pageEncoding="ctinfo" 表示JSP页面的编码方式。
isELIgnored="true|false" 表示是否在此JSP网页中执行或忽略EL表达式。如果为true时JSP Container将忽略EL表达式。
二、include指令
功能:在JSP编译时插入包含一个文件。包含的过程是静态的,包含的文件可以是JSP、HTML、文本或是Java程序。
语法:<%@ include file="relativeURLspec" %>
标签元素:<jsp:directive.include file="relativeURLspec" />
注意:include指令元素和行为元素主要有两个方面的不同点。
1.include指令是静态包含,执行时间是在编译阶段执行,引入的内容为静态文要,在编译成servlet时就和包含者融合到一起。所以file不能是一个变量,也不能在file后接任何参数。
2.include行为是动态包含,执行时间是在请求阶段执行,引入的内容在执行页面时被请求时动态生成再包含到页面中。
三、taglib指令
功能:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
语法:<%@ taglib uri="tabLibraryURI" prefix"tagPrefix" %>
标签元素:<jsp:directive.taglib uri="tabLibraryURI" prefix"tagPrefix" />
page指令元素的属性
uri="tagLibraryURI" 标签库描述器的URI,主要是说是tagLibrary的存放位置。
prefix="tagPrefix" 用于标识在页面后面部分使用定制标签的唯一前缀。
1.include指令是静态包含,执行时间是在编译阶段执行,引入的内容为静态文要,在编译成servlet时就和包含者融合到一起。所以file不能是一个变量,也不能在file后接任何参数。
2.include行为是动态包含,执行时间是在请求阶段执行,引入的内容在执行页面时被请求时动态生成再包含到页面中。
三、taglib指令
功能:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
语法:<%@ taglib uri="tabLibraryURI" prefix"tagPrefix" %>
标签元素:<jsp:directive.taglib uri="tabLibraryURI" prefix"tagPrefix" />
page指令元素的属性
uri="tagLibraryURI" 标签库描述器的URI,主要是说是tagLibrary的存放位置。
prefix="tagPrefix" 用于标识在页面后面部分使用定制标签的唯一前缀。
jsp的常用动作元素:
<jsp:attribute>
说明
该元素为另外一个JSP动作定义了一个属性值。还可以与<jsp:element>动作结合,从而创建一个模板文本标记元素。
语法
<jsp:attribute name="attrName" [trim="true|false"]>
Attribute value, typically created by nested JSP elements
</jsp:attribute>
属性
该元素为另外一个JSP动作定义了一个属性值。还可以与<jsp:element>动作结合,从而创建一个模板文本标记元素。
语法
<jsp:attribute name="attrName" [trim="true|false"]>
Attribute value, typically created by nested JSP elements
</jsp:attribute>
属性
名称 java类型 动态值 描述
name String 不接受 待赋值属性的名字。如果不与<jsp:element>配合,所命名的属性必须接受动态值
trim boolean 不接受 是否除去体计算结果中前导和后续空白字符
示例
<jsp:include>
<jsp:attribute name="page">
${someValue}
</jsp:attribute>
</jsp:include>
<jsp:element name="a">
<jsp:attribute name="href">
name String 不接受 待赋值属性的名字。如果不与<jsp:element>配合,所命名的属性必须接受动态值
trim boolean 不接受 是否除去体计算结果中前导和后续空白字符
示例
<jsp:include>
<jsp:attribute name="page">
${someValue}
</jsp:attribute>
</jsp:include>
<jsp:element name="a">
<jsp:attribute name="href">
<c:url value="${someURL}" />
</jsp:attribute>
</jsp:element>
</jsp:attribute>
</jsp:element>
<jsp:body>
说明
用于为一个动作元素定义体。仅当动作属性由<jsp:attribute>元素定义时,该元素才是必须的。
语法
<jsp:body>
Body content
</jsp:body>
用于为一个动作元素定义体。仅当动作属性由<jsp:attribute>元素定义时,该元素才是必须的。
语法
<jsp:body>
Body content
</jsp:body>
示例
<jsp:plugin type="applet" code="Clock.class" Codebase="applet" jreversion="1.2">
<jsp:attribute name="width">160</jsp:attribute>
<jsp:attribute name="height">150</jsp:attribute>
<jsp:body>
<jsp:params>
<jsp:param name="bgcolor" value="#ff0000" />
</jsp:params>
<jsp:fallback>
Plugin tag OBJECT or EMBED not supported by brower.
</jsp:fallback>
</jsp:body>
</jsp:plugin>
<jsp:declaration>
说明
声明块的JSP Document表示形式,对应于<%! declaration %>。
语法
<jsp:declaration>declaration</jsp:declaration>
示例
<jsp:declaration> int iLocalVar = 0 ; </jsp:declaration>
声明块的JSP Document表示形式,对应于<%! declaration %>。
语法
<jsp:declaration>declaration</jsp:declaration>
示例
<jsp:declaration> int iLocalVar = 0 ; </jsp:declaration>
<jsp:directive>
说明
指令元素的JSP Document表示。
语法
语法 1 <%@ page %>
<jsp:directive.page attributes="attributes" />
语法 2 <%@ taglib %>
<jsp:directive.taglib attributes="attributes" />
语法 3 <%@ include %>
<jsp:directive.include file="pageOrContextRelativePath" />
语法 4 <%@ tag %>
<jsp:directive.tag attributes="attributes" />
语法
语法 1 <%@ page %>
<jsp:directive.page attributes="attributes" />
语法 2 <%@ taglib %>
<jsp:directive.taglib attributes="attributes" />
语法 3 <%@ include %>
<jsp:directive.include file="pageOrContextRelativePath" />
语法 4 <%@ tag %>
<jsp:directive.tag attributes="attributes" />
语法 5 <%@ attribute %>
<jsp:directive.attribute attributes="attributes" />
语法 6 <%@ variable %>
<jsp:directive.variable attributes="attributes" />
示例
<jsp:directive.page language="java" pageEncoding="GB2312">
<jsp:directive.taglib prefix="plusir" uri="plusirTAG">
<jsp:directive.include file="list.jsp">
<jsp:directive.attribute attributes="attributes" />
语法 6 <%@ variable %>
<jsp:directive.variable attributes="attributes" />
示例
<jsp:directive.page language="java" pageEncoding="GB2312">
<jsp:directive.taglib prefix="plusir" uri="plusirTAG">
<jsp:directive.include file="list.jsp">
<jsp:doBody>
说明
只能用于标记文件中,它将计算相应的定制动作体,并把输出结果添加到调用页面的输出流,或者将输出保存在一个变量中。
语法
<jsp:doBody [var="var" | varReader="varReader"]
jsp和html哪个更好 [scope="page|request|session|application"]/>
属性
名称 java类型 动态值 描述
scope String 不接受 变量的作用域
var String 不接受 将计算结果保存为一个String的变量的名字
varReader String 不接受 用于保存计算结果并将结果作为一个java.io.Reader加以提供的变量名
语法
<jsp:doBody [var="var" | varReader="varReader"]
jsp和html哪个更好 [scope="page|request|session|application"]/>
属性
名称 java类型 动态值 描述
scope String 不接受 变量的作用域
var String 不接受 将计算结果保存为一个String的变量的名字
varReader String 不接受 用于保存计算结果并将结果作为一个java.io.Reader加以提供的变量名
示例
<jsp:doBody />
<jsp:doBody var="result" />
<jsp:element>
说明
动态创建一个XML元素,并将其添加到响应中。此动作主要用于JSP Document。
语法
语法 1:没有体
<jsp:element name="elementName" />
语法 2:有体
动态创建一个XML元素,并将其添加到响应中。此动作主要用于JSP Document。
语法
语法 1:没有体
<jsp:element name="elementName" />
语法 2:有体
<jsp:element name="elementName" />
<jsp:attribute> and/or <jsp:body> action
</jsp:element>
属性
名称 java类型 动态值 描述
name String 接受 所生成元素的名字
示例
<jsp:element name="a">
<jsp:attribute name="href">somepage.jsp</jsp:attribute>
<jsp:body>Some text</jsp:body>
</jsp:element>
<jsp:attribute> and/or <jsp:body> action
</jsp:element>
属性
名称 java类型 动态值 描述
name String 接受 所生成元素的名字
示例
<jsp:element name="a">
<jsp:attribute name="href">somepage.jsp</jsp:attribute>
<jsp:body>Some text</jsp:body>
</jsp:element>
<jsp:expression>
<jsp:expression>
说明
表达式块的JSP Document表示形式,对应于<%= expression %>。
语法
<jsp:expression>expression</jsp:expression>
示例
<jsp:expression>String</jsp:expression>
说明
表达式块的JSP Document表示形式,对应于<%= expression %>。
语法
<jsp:expression>expression</jsp:expression>
示例
<jsp:expression>String</jsp:expression>
<jsp:ballback>
说明
只能用于<jsp:plugin>动作体内,对于不支持HTML<embed>或<object>元素的浏览器,此动作体指定了其可用的模板文件。
语法
<jsp:fallback>
Fallback body
</jsp:fallback>
示例
<jsp:plugin type="applet" code="Clock.class" codebase="applet"
Jreversion="1.2" width="160" height="150">
<jsp:fallback>
Plugin tag OBJECT or EMBED not supported by brower.
只能用于<jsp:plugin>动作体内,对于不支持HTML<embed>或<object>元素的浏览器,此动作体指定了其可用的模板文件。
语法
<jsp:fallback>
Fallback body
</jsp:fallback>
示例
<jsp:plugin type="applet" code="Clock.class" codebase="applet"
Jreversion="1.2" width="160" height="150">
<jsp:fallback>
Plugin tag OBJECT or EMBED not supported by brower.
</jsp:fallback>
</jsp:plugin>
</jsp:plugin>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论