(1)指令元素:用于从jsp发送一个信息到容器,比如设置全局变量、文字编码、引入包等
1、page
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
page 指令中的常用属性:
language:定义要使用的脚本语言,目前只能是“java”, 即language="java"。
import: 和一般的Java import意义一样,用于引入要使用的类,只是用逗号“,”隔开包或者类列表。默认省略,即不引入其他类或者包。例如,import="java.io.*,java.util.Hashtable"。
session:指定所在页面是否参与HTTP会话。默认值为true,session="true"。
buffer:指定到客户输出流的缓冲模式。如果为none,则不缓冲;如果指定数值,那么输出就用不小于这个值的缓冲区进行缓冲。与autoFlash一起使用。默认不小于8KB,根据不同的服务器可设置。例如,buffer="64kb"。
autoFlash:如果为true缓冲区满时,到客户端输出被刷新;如果为false缓冲区满时,出现运行异常,表示缓冲区溢出。默认为true,例如autoFlash="true"。
info:关于JSP页面的信息,定义一个字符串,可以使用servlet.getServletInfo()获得。 默认省略。例如,info="测试页面"。
isErrorPage:表明当前页是否为其他页的errorPage目标。如果被设置为true,则可以使用exception对象。相反,如果被设置为false,则不可以使用exception对象。默认为false,例如,isErrorPage="true"。
errorPage:定义此页面出现异常时调用的页面。默认忽略,例如errorPage="error.jsp"。
isThreadSafe:用来设置JSP文件是否能多线程使用。如果设置为true,那么一个JSP能够同时处理多个用户的请求;相反,如果设置为false,一个JSP只能一次处理一个请求。例如,isThreadSafe="true"。
contentType: 定义JSP字符编码和页面响应的MIME类型。TYPE=MIME TYPE;charset=CHARSET。默认为TYPE=text/html,CHARSET=iso8859-1。例如contentType="text/html;charset=gb2312"。
pageEncoding:JSP页面的字符编码 ,默认值为pageEncoding="iso-8859-1",例如pageEncoding="gb2312"。
isELIgnored:指定EL(表达式语言)是否被忽略。如果为true,则容器忽略"${}"表达式的计算。默认值由web.xml描述文件的版本确定,servlet2.3以前的版本将忽略。例如isELIgnored="true"。
2、include
1.两种用法
<%@ include file=” ”%>
<jsp:include page=” ” flush=”true”/> (动作元素)
2.用法区别
(1)执行时间上区别
<%@ include file=”relativeURI”%> 是在翻译阶段执行
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行.
(2)引入内容的不同
<%@ include file=” ”%>
jsp的include指令元素读入指定页面的内容。并把这些内容和本来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的。
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所天生的应答文本.
3、tablib 自定义标签
(2)脚本元素
JSP声明
声明(declaration)用来在JSP页面中声明变量和定义方法。声明是以<%!开头,以%>结束的标签,其中可以包含任意数量的合法的Java声明语句。下面是JSP声明的一个例子:
<%! int count = 0; %>
上面代码声明了一个名为count的变量并将其初始化为0。声明的变量仅在页面第一次载入时由容器初始化一次,初始化后在后面的请求中一直保持该值。
下面的代码在一个标签中声明了一个变量和一个方法:
<%!
String color[] = {"red", "green", "blue"};
String getColor(int i){
return color[i];
}
%>
也可以将上面的两个Java声明语句写在两个JSP声明标签中,如:
<%! String color[] = {"red", "green", "blue"}; %>
<%!
String getColor(int i){
return color[i];
}
%>
JSP小脚本
小脚本(scriptles)是嵌入在JSP页面中的Java代码段。小脚本是以<%开头,以%>结束的标签。例如<% count++; %>
小脚本在每次访问页面时都被执行,因此count变量在每次请求时都增1.由于小脚本可以包含任何Java代码,所以它通常用来在JSP页面嵌入计算逻辑。同时还可以使用小脚本打印HTML模板文本。
JSP表达式
表达式(expression)是以<%=开头,以%>结束的标签,它作为Java语言表达式的占位符。如<%= count%>
包含一个符合Java语法的表达式。表达式的元素在运行后被自动转化为字符串,然后插入到这个表达式的JSP文件的位置显示。因为这个表达式的值已经转化为字符串,所以能在一行文本中插入这个表达式。表达式是一个简化的了的out.println语句。
在页面每次被访问时都要计算表达式,然后将其值嵌入到HTML的输出中。
与变量声明不同,表达式不能以分号结束,因此下面的代码是非法的:
<%= count; %>
使用表达式可以向输出流输出任何对象或任何基本数据类型的值,也可以打印任何算术表达式、布尔表达式或方法调用返回的值。
在JSP表达式的百分号和等号之间不能有空格。
(3)动作元素
<jsp:forword page="realurl.jsp" />
(4)jsp注释
<%-- 这是注释 --%>
<!-- 这是注释 -->