JSP指令
1. page指令
page指令用于定义JSP页面的全局属性及其值,一般把它放在页面的首部。指令的使用语法格式如下:<%@ page [language="脚本语言种类"] [import="需要在JSP页面中导入的包或类"] [contentType="MIME类型"] [session="true/false"][buffer="缓冲区大小"] [autoFlash="true/false"] [isThreadSafe="True/false"] [info="信息文本"] [errorPage="异常事件页面URL"] [isErrorPage="true/false"] %>
语法格式说明中的“[”和“]”符号括起来的内容表示是可选项。
提示 page指令中的contentType属性不能在同一个页面中被两次指定值。
language属性定义页面使用的脚本语言,默认情况下值为java。
Import属性用来导入程序中要用到的包或类,可以有多个值,无论是Java核心包中自带的类还是用户自行编写的类,都要在import中引用,才能在JSP页面中的Java程序中使用这个类。默认情况下,JSP文件中会自动导入如下类(自动导入的类就不必在JSP页面的page指令中再行导入了):
java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*
*号表示该包下所有的类。
contentType属性设置JSP页面的MIME(Multipurpose Internet Mail Extention)类型。设置类型的格式为“MIME类型”或“MIME类型;charset=编码”。在JSP页面默认情况下设置的字符编码为ISO-8859-1,即“type=“text/html;charset=ISO-8859-1””。
contentType属性设置是否需要使用session对象。如果为false,则在JSP页面中不能使用session对象以及scope=session的JavaBean或EJB。属性的默认值为true。
buffer属性用来设定out对象缓存处理的缓冲区的大小,其值可以有none、8kb或是给定的kb值,值为none表示没有缓存,直接输出至客户端的浏览器中。
autoFlash属性设置当缓冲区已满时,是否会自动刷新缓冲区。
isThreadSafe属性设置JSP页面是否可以多线程访问。
info属性设置JSP页面的信息字符串。
errorPage属性设置出现异常时转向的页面的URL。
isErrorPage属性设置当前页面是否为出错页面。
2. include指令
include指令用来在该指令处静态插入一个文件,其使用的语法格式如下:
<%@ include file="文件路径"%>
文件路径一般使用相对路径,这样如果程序代码文件进行迁移也不会有所影响。路径如果以“/”开头,则表明使用的是相对JSP服务器应用的根目录的路径;如果直接用文件名或是文件夹名+文件名,则表明是相对本JSP文件当前目录的相对路径。
JSP动作指令
1. include动作指令
include动作指令用来在JSP页面中动态包含一个文件,这样包含页面程序与被包含页面的程序是彼此独立的,互不影响。被包含的页面可以是一个动态文件(JSP文件),也可以是一个静态文件(如文本文件)。如果包含的是一个静态文件,就直接输出给客户端,由客户端的浏览器负责显示;如果包含的是一个动态文件,则由Web服务器负责执行,把执行后的结果返回给客户端显示出来。include动作指令使用的语法格式如下:
<jsp:include page="文件路径"/> 或者
<jsp:include page="文件路径">
<jsp:param name="参数名1" value="参数1的值"/>
......
<jsp:param name="参数名n" value="参数n的值"/>
</jsp:include>
不需要传递参数时,这两种使用的形式效果是一样的,如果要传递参数就要使用第二种形式了。
这里被包含的是动态文件才传递参数和参数的值。include动作指令与include指令不同,前者是动态包含,如果被包含的页面是动态文件,将会把执行后的结果返回给客户端;后者是静态包含,包含文件与被包含文件组合形成一个文件,再由Web服务器执行。
2. forward动作指令
forward动作指令用来重定向网页,即从当前网页的forward动作指令处转向执行另一个网页程序。forward动作指令的使用语法格式如下:
<jsp:forward page="文件路径"/> 或者
<jsp:forward page="文件路径">
<jsp:para name="参数名1" value="参数1的值"/>
......
<jsp:para name="参数名n" value="参数n的值"/>
</jsp:forward>
page属性中的值是要转向的文件,如果要转向的网页是一个动态网页,如JSP文件,则可以传递参数。
提示 页面之间的重定向也可以在Java程序片中使用response.sendRedirect(目的URL)方法来实现。
3. useBean动作指令
useBean动作指令用来在JSP页面中创建并使用一个JavaBean。实际工程中常用JavaBean做组件开发,而在JSP页面中只需要声明并使用这个组件,这样可以较大限度地实现静态内容和动态内容的分离。声明一个JavaBean的语法格式如下:
<jsp:useBean id="JavaBean的名称" scope="有效范围" class="包名.类名">
</jsp:useBean>
id属性是在JSP中给这个JavaBean组件取的名字,只要是在它的有效范围内,均可使用这个名称来调用它;scope属性为JavaBean的有效范围,它的取值有四种,page、request、session、application,默认情况下取值为page,值为page表示在当前JSP页面及当前页面所包含的静态文件中有效,值为request表示有效范围仅在request期间有效;值为session表示在与每个客户的会话期间均有效;值为application表示所有客户端共享这个JavaBean,直至服务器关闭才取消这个JavaBean;class属性中,如果类属于某个包则类名的前面要加上包名,中间用“.”引用,否则直接用类名即可。
4. setProperty动作指令
setProperty动作指令用来设置Bean中的属性的值,基本语法格式有如下4种:
<jsp:setProperty name="JavaBean的名称" property="*"/>
<jsp:setProperty name="JavaBean的名称" property="属性名称"/>
<jsp:setProperty name="JavaBean的名称" property="属性名称" param="参数名称"/>
<jsp:setProperty name="JavaBean的名称" property="属性名称" value="属性值"/>
第一种语法格式中,property=“*”,应用这种格式要求bean属性的名字与类型要和request对象中参数名称与类型一致,以此用bean中的属性来接收客户输入的数据,系统会根据名称来自动匹配。第二种语法格式则只设置其中匹配的一个bean的属性。第三种语法格式根据指定的request对象中的参数与属性匹配。
setProperty动作指令可以在useBean动作指令中使用,也可在声明了useBean后使用,但不能在声明之前使用。
提示 在同一个setProperty动作指令中不能同时存在param和value参数。
5. getProperty动作指令
getProperty动作指令用来获得bean的属性并将其转换为字符串,再在JSP页面中输出。使用的语法格式如下:
<jsp:getProperty name="bean的名称" property="属性名称"/>