1. 模板元素
a. 指静态的HTML/XML内容
2. 注释
n HTML注释:在客户端显示注释 <!--comment[<%=expression%>]-->
n 隐藏注释:写在JSP程序中,但不发给客户 <%--commnet--%>
3. 脚本元素
a. 声明(Declaration)
n 声明就是在JSP程序中声明合法变量和方法
eg.1-1
<%!String getDate()
{
return new java.util.Date().toLocaleString();
}
int count=10;
%>
b. 表达式(Expression)
n 表达式就是<%=和%>之间的代码。
c. Scriptlets
n 位于<%和%>之间。是合法的Java代码。
4. 指令元素
a.页面指令
n 格式<%page attribute=”value”…%>
属性
描述
默认值
例子
language
定义要使用的脚本语言,目前只能是”Java”
Java
language=”java”
import
和一般的Java import一样,用”,”隔开包或者类列表
默认忽略
import=”java.io.*,javax.servlet.jsp.*”
session
指定一个Http会话中这个页面是否参与
True
session=”true”
buffer
指定到客户输出流的缓冲模式,如果是none,则不缓冲,如果指定数值,那么输出就不小于这个值的缓冲区进行缓冲
不小于8K,根据不同的服务器可设置
Buffer=”64kb”
autoFlash
true缓冲区满时,到客户端输出被刷新;false缓冲区满时,出现运行异常,表示缓冲溢出
true
autoFlash=”true”
info
关于JSP页面的信息,定义一个字符串,可以使用servlet.getServletInfo()获得
默认忽略
info=”一个测试页面”
isErrorPage
表明当前页面是否为其他页面的errorPage目标。如果被设置为true,则可以使用exception对象。相反,如果被设置为false,则不可以使用exception对象。
false
isErrorPage=”false”
errorPage
定义此页面出现异常时调用的页面
默认忽略
errorPage=”error/error.jsp”
isThreadSafe
用来设置JSP文件是否能多线程使用。如果设置为true,那么一个JSP能够同时处理多个用户的请求;相反只能处理一个用户。
true
isTreadSage=”true”
contentTpye
定义JSP字符编码和页面响应的MIME类型。
TYPE=text/html
CHARSET=iso8859-1
contectType=”text/html; charset=gb2312”
pageEncoding
JSP页面的字符编码
PageEncoding=
”ISO-8859-1”
pageEncoding=”gb2312”
IsELIgnored
制定EL(表达式语言)是否被忽略,如果为true,则容器忽略”${}”表达式的计算
默认值由web.xml描述文件的版本确定,Servlet2.3以前的版本将忽略
isELIgnored=”true”
b. include 指令
n 用来插入一个包含文本或代码的文件,这个包含过程是静态的。
n 格式:<%@ include file=”filename”%>
c. taglib 指令
n 这个指令允许页面使用者自定义标签。这里内容不明白,放在后面研究
d. 表达式语言
n JSP2.0新加的技术,可以简化JSP开发,使用”${}”来表示
n ${sessionScipe.test}相当于Session.getAttribute(“test”)
具体内容不清楚,放在后面研究
5. 动作元素
动作元素在请求处理阶段起作用。容器在处理JSP时,每遇到这种动作元素,都根据他的标记进行特殊的处理
常用动作元素
a. <jsp:param>
n 用来为其他标签提供附加信息。
n 使用方法:<jsp:param name=”paramName” value=”paramValue”/>
b. <jsp:include>
n 允许在请求时间内在现成的JSP页面里包含静态或动态资源。被包含的对象只有对JspWriter对象的访问权限,并且不能设置头或者Cookie。如果页面输出的是缓冲的,那么缓冲区的刷新要优于包含的刷新。
n 格式:
<jsp:include page=”fileName” flush=”true”/>(这里flush只能使用true)
<jsp:include page=”fileName” flush=”true”>
<jsp:param name=”paramName” value=”paramValue”/>
</jsp:include>
c. <jsp:forward>
n 允许将请求转发到另外一个JSP、Servlet或者静态资源文件。
n 格式
<jsp:forword page=”uri”/>(page为一个值或者一个字符串,定向一个文件或URL)
<jsp:forword page=”uri”>
<jsp:param name=”paramName” value=”paramValue”/>
</jsp:forword>
d. <jsp:setProperty>
n <jsp:setProperty>和useBean一起协作,用来设置Bena的简单属性和索引属性。
n <jsp:setProperty name=”beanName” propertyDetails/>
n 其中propertyDatails有四种不同的方式:
1. property=”*”
2. Property=”propertyName” param=parameteraName
3. Property=”propertyName”
4. Property=”propertyName” value=propertyValue
注:不能在一个<jsp:setProperty>中同时使用param和value。
e. <jsp:getPorperty>
n 对<jsp:setProperty>操作的补充,用来访问一个Bean的属性。它访问的属性值将它转化成一个String,然后发送到输出流中。如果属性是个对象,将调用toString()方法。
n 使用方法:
1.<jsp:getProperty name=”beanName” property=”propertyName”/>
eg:
<jsp:useBean id=”usersession” scope=”session” class=”com.user.UserSession”>
<jsp:getProperty name=”usersession” property=”name”/>
<jsp:getPorperty name=”usersession” property=” password”/>
n 限制:不能使用<jsp:getPropety>来检查一个已经被索引了的属性。这个地方不理解
f. <jsp:useBean>
n 用来在JSP页面中创建一个Bean实例,并且指定他的名字及其作用范围。
n 语法:
<jsp:useBean id=”id” scope=”page|requestsession|application” typeSpec/>
n typeSpec可以使用以下四种:
1. class=”className”
2. class=”className” type=”typeName”
3. beanName=”beanName” type=”typeName”
4. type=”typeName”
g. <jsp:plugin>以后补充
h. <jsp:fallback>以后补充