1 JSP页面的构成
1.1 指令标识
指令标识用于设定整个JSP页面范围内都有效的相关信息,被服务器解释并执行,但不会在网页中产生任何内容。
语法格式:
<%@ 指令名 属性1=“属性值1” 属性2=“属性值2”·····%>
参数说明:
1.指令名:用于指定指令名称,JSP中包含page、include、taglib三条指令。
2.属性:用于指定属性名称,不同的指令包含不同的属性。一个指令中可以设置多个属性,属性之间用逗号或空格隔开。
3.属性值:用于指定属性值。
1.1.1 page指令
page指令使用较多,用于定义整个jsp页面的相关属性,这些属性在JSP被服务器解析为Servlet时会转换为相应的Java程序代码。
page指令语法格式:
<%@ page attr1="value1" attr2="value2" ······%>
page指令常用属性:
1.language属性
设置JSP页面所使用的语言们目前只支持Java语言,属性默认值为Java。
例:<%@ page language="java" %>
2.extends属性
设置JSP页面继承的Java类,JSP页面在执行前被解析称Servlet,其是由Java类定义的,所以JSP和Servlet都可以继承指定父类。
3.import属性
设置JSP导入的类包,JSP页面可以嵌入Java代码片段,这些代码在调用API时需要导入相应的类包。
例:<%@ page import="java.util.*" %>
4.pageEncoding属性
定义JSP页面的编码格式,页面中所有代码都使用该属性指定的编码格式,如果属性值设置为ISO-8859-1,那么JSP页面就不支持中文字符。
例:<%@ page pageEncoding="ISO-8859-1" %>
5.contentType属性
设置JSP页面的MIME类型和字符串编码。
例:<%@ page contentType="text/html" charset="UTF-8" %>
6.session属性
指定JSP页面是否使用HTTP的session回话,属性值是boolean类型,默认为true,表示可以使用session回话对象。session是JSP的内置对象
例:<%@ page session="false" %>
7.buffer属性
设置JSP的out输出对象使用的缓冲区大小,默认8kb,单位只能为kb,建议数值使用8的倍数。
例:<%@ page buffer="128kb" %>
8.autoFlush属性
设置在JSP页面缓存满时,是否自动刷新缓存,默认true;设置为false,则缓存满时抛出异常。
例:<%@ page autoFlash="false" %>
9.isErrorPage属性
将当前JSP页面设置为错误处理页面来处理另一个JSP页面的错误,也就是异常处理。意味着当前JSP页面业务的改变。
例:<%@ page isErrorPage="true" %>
10.errorPage属性
指定处理当前JSP页面异常错误的另一个JSP页面,被指定的JSP页面须设置isErrorPage属性为true,errorPage的属性值为一个url字符串。
例:<%@ page errorPage="error/loginErrorPage.jsp" %>
1.1.2 include指令
通过该指令可以在一个JSP页面中包含另一个JSP页面,不过该指令是静态包含(被包含文件中的所有内容会被原样包含到该JSP页面,即使被包含文件中有JSP代码也不会被编译执行)。
include指令语法格式:
`<%@ include file="path" %>`
该指令只有一个file属性,用于指定包含文件的路径,路径可以是相对路径或者绝对路径,但不能是通过<%=%>表达式所代表的文件。
Tip:应用include指令进行文件包含时,为了使整个页面的结构层次不冲突,建议将被包含文件页面中的、标签删除,因为在包含该文件的页面中已经有了该标签。
1.1.3 taglib指令
JSP页面中通过taglib指令标识声明该页面中所使用的标签库,勇士使用标签库,并指定标签的前缀。
在页面中引用标签库后,就可以通过前缀来引用标签库中的标签。
taglib指令语法格式:
<%@ taglib prefix="tagPrefix" uri="tagUri" %>
prefix:用于指定标签的前缀;前缀不能命名为jsp、jspx、java、javax、sun、servlet和sunw。
uri:用于指定标签库文件的存放位置。
例:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
1.2 脚本标识
用于生成页面中的动态内容,JSP中的脚本标识包括3部分:JSP表达式、声明标识和脚本程序。
1.2.1 JSP表达式
JSP表达式用于想页面中输出的信息,语法格式如下:`
<%=表达式%>
例:使用JSP表达式在页面中输出信息
<% String manager="mr"; %> //定义管理员名的变量
管理员:<%=manager%> //输出结果:管理员:mr
<%= "管理员:"+manager %> //效果同上
<%=5+6%> //输出结果为11
<% String url="123.jpg"; %> //定义文件名的变量
<img src="/images/<%=url%>" > //输出结果为:<img src="/images/123.jpg">
1.2.2 声明标识
声明标识用于在JSP页面中定义全局的变量或方法。通过声明标识定义的变量和方法可以被整个JSP页面访问,所以通常使用该标识定义整个JSP页面需要引用的变量或者方法。(说明:服务器执行JSP页面时,会将JSP页面转换为Servlet类,在该类中会把使用JSP声明标识定义的变量和方法转换为类的成员变量和方法)
声明标识语法格式:
<%! 声明变量或方法的代码 %> //<%与!间不能空格
例:通过声明表示声明一个全局变量和全局方法
<%!
int number = 0; //声明全局变量
int count(){ //声明全局方法
number++; //累加number
return number; //返回number的值
}
%>
1.2.3 代码片段
即为在JSP页面中嵌入的Java代码或者是脚本代码。代码片段将在页面请求的处理期间被执行,通过Java代码可以定义变量或是流程控制语句等;而通过脚本代码可以应用JSP内置的对象在页面输出内容、处理请求和响应、访问session回话。
代码片段语法格式:
<% Java代码或是脚本代码 %>
例:通过代码片段和JSP表达式在JSP页面中输出九九乘法表
<body>
<%
String str = "";
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
str +=j+"*"+i+"="+j*i;
str +=" ";
}
str +="<br>";
}
%>
<table width="440" height="85" border="1" cellpadding="0" cellspacing="#666666" bordercolorright="#FFFFFF" bordercolor="#FFFFFF" >
<tr>
<td height="30" align="center">九九乘法表</td>
</tr>
<tr>
<td style="padding:3pt">
<%=str%>
</td>
</tr>
</table>
</body>