JSP动作指令在JSP程序设计中经常会用到,与JSP指令不同,它将影响JSP运行是的功能!
1、include动作指令:
include动作指令用来在JSP页面中动态包含一个文件,这样包含页面程序与被包含页面的程序是彼此独立的,互不影响。JSP的include动作指令可包含一个动态文件也可以包含一个静态文件。如果包含的是一个静态文件(如一个文本文件),就直接输出给客户端,由客户端的浏览器负责显示,如果包含的是一个动态文件,则由服务器的JSP引擎负责执行,再把运行结果返回给客户端显示出来。
注意:include动作指令与include指令不同,后者是静态包含,将包含文件与被包含文件组合形成一个文件,而前者是动态包含,原理不同,使用时也会有差别。
include动作指令的格式如下:
<jsp:include page="文件路径"/> 或者:
<jsp:include page="文件路径">
<jsp:param name="参数名1" value="参数1的值" />
......
<jsp:param name="参数名n" value="参数n的值" />
</jsp:include>
可以看出,在不需要传递参数时,这两种形式的效果是一样的,如果要传递参数就要使用第二种形式了。“文件路径”如果以"/"开头,则使用相对JSP服务器应用的根目录路径,如果直接用文件名或文件夹名+文件名形式,则表明是当前目录的相对路径。
注意:使用时要注意被包含的是动态文件时才传递参数和参数的值。
2、forward动作指令:
forward动作指令用来重定向网页,即从当前网页的forward动作指令处转向执行另一个网页程序。forward动作指令的调用语法格式如下:
<jsp:forward page="文件路径" /> 或者:
<jsp:para name="参数名1“ value="参数1的值"/>
......
<jsp:para name="参数名n“ value="参数n的值"/>
<jsp:forward>
其中,page参数中的值是要转向的文件,可以是相对应用服务器的路径,也可以是相对当前目录的路径;如果要转向的网页是一个动态网页,如:JSP文件,则可以传递参数。
注意:页面之间的重定向也可以使用response.sendRedirect(目的URL)方法来实现,response是JSP的内置对象。
3、param动作指令:
param动作指令用来向需要包含的动态页面或要转向的动态页面传递参数。param应用程序示例:
<!-- paramExample.jsp文件 -->
<%@ page contentType="text/html; charset=gb2312" %>
<html>
<body>
<% // param应用示例Java程序片
String s=null;
s="Lest's go!";
%>
<jsp:forward page="forParam.jsp">
<jsp:param value="<%=s %>" name="s"/>
</jsp:forward>
</body>
</html>
<!-- forParam文件 -->
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<body>
<%
out.println("接收的参数s的值为:"+request.getParameter("s"));
%>
</body>
</html>
4、plugin动作指令:
这个动作指令是用来在JSP中加载Java applet小程序的。plugin动作指令的语法格式如下:
<jsp:plugin type="applet" code="小程序的类文件" codebase="小程序所在的位置" jreversion="虚拟机版本号" width="小程序显示宽度 " height="小程序显示高度">
<jsp:fallback>
客户端浏览器是否支持插件下载的提示信息
</jsp:fallback>
</jsp:plugin>
上述语法格式中,code参数是指小程序经过编译后的字节码文件,扩展名为.class;codebase参数指出这个字节码文件所在的位置,可以是相对路径也可以是绝对路径,但在这个参数中不需要文件名,只需要目录路径就可以了。如果字节码文件与调用的JSP文件在同一目录下则此参数可以省略;其中,jreversion参数指出运行小程序的虚拟机版本号;width和height参数分别显示小程序运行结果的宽度和高度;<jsp:fallback>...</jsp:fallback>中的参数为提示信息。
5、useBean动作指令:
这是一个非常重要的指令,用来在JSP中创建并使用一个JavaBean。实际工程中常用JavaBean做组件开发,而在JSP中只需声明并使用这个组件,这样可以较大限度地实现静态内容和动态内容的分离,这也是JSP的有点之一。JavaBean在JSP中的语法格式如下:
<jsp:useBean id="bean的名称" scope="有效范围" class="包名.类名">
</jsp:useBean>
其中,id参数是在JSP中这个bean组件的名称,只要是在它的有效范围内,均可使用这个名称来调用它;scope为bean的有效范围,它的取值有四种,page,request,session,application,默认情况下取值为page,值为page表示当前JSP页面及当前页面所包含的静态文件中有效;值为request表示有效范围仅在request期间;值为session表示在与每个客户的会话期间均有效;值为application表示所有客户端共享这个bean,直至服务器关闭时才取消这个bean。class参数中如果类属于某个包则在类名的前面要加上包名,中间可用"."引用,否则直接用类名即可。
6、setProperty动作指令:
这个动作指令用来设置Bean中属性的值,其基本语法格式有如下四种:
<jsp:setProperty name="bean的名称" property="*"/>
<jsp:setProperty name="bean的名称" property="属性名称"/>
<jsp:setProperty name="bean的名称" property="属性名称" param="参数名称"/>
<jsp:setProperty name="bean的名称" property="属性名称" value="属性值"/>
setProperty动作指令可以在useBean动作指令中使用,也可在声明了useBean后使用,但不能在声明之前使用。与useBean动作指令结合使用的格式如下:
<jsp:useBean id="bean的名称" scope="有效范围" class="包名.类名">
<jsp:setProperty name="bean的名称" property="属性的名称" value="属性值"/>
......
<jsp:setProperty name="bean的名称“ property=”属性的名称" value="属性值"/>
</jsp:useBean>
7、getProperty动作指令:
getProperty动作指令用来获得bean的属性并将其转换为字符串,再在JSP页面中输出。使用格式如下:
<jsp:getProperty name="bean的名称" property="属性名称"/>