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>以后补充
