日期:2014-05-16  浏览次数:20372 次

JSP之七个动作指令

JSP动作指令主要有如下7个:

jsp:forward:执行页面转向,将请求的处理转发到下一个页面。

jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。

jsp:include:用于动态引入一个JSP页面。

jsp:plugin:用于下载JavaBean或Applet到客户端执行。

jsp:useBean:创建一个JavaBean的实例。

jsp:setProperty:设置JavaBean实例的属性值。

jsp:getProperty:输出JavaBean实例的属性值。

?

forward指令

forward指令用于将页面响应转发到另外的页面。既可以转发到静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet。

JSP的forward指令的格式如下:

对于JSP1.0,使用如下语法:

<jsp:forward page="{relativeURL|<%=expression%>}"/>

对于JSP1.0,使用如下语法:

<jsp:forward page="{relativeURL|<%=expression%>}">
     {<jsp:param.../>}
</jsp:forward> 

?第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获取。

include指令

include指令是一个动态include指令,也用于包含某个页面,它不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。

下面是include动作指令的语法格式:

<jsp:include page="{relativeURL|<%=expression%>}" flush="true"/>

?或者

<jsp:include page="{relativeURL|<%=expression%>}" flush="true">
     <jsp:param name="parameterName" value="patameterValue"/>
</jsp:include>

?flush属性用于指定输出缓存是否转移到被导入文件中。如果指定为true,则包含在被导入文件中;如果指定为false,则包含在原文件中。对于JSP1.1旧版本,只能设置为false。

对于第二中语法格式,则可在被导入页面中加入额外的请求参数。

?静态导入和动态导入有如下三点区别:

1.静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。

2.静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。

3.动态包含还可以增加额外的参数、增加额外的请求参数。

forward动作指令和include动作指令十分相似。区别在于,执行forward时,被forward的页面将完全代替原有页面;而执行include时,被Include的页面只是插入原有页面。简而言之:forward拿目标页面代替原有页面,而include则拿目标页面插入原有页面。

useBean、setProperty、getProperty指令

这三个指令都是与JavaBean相关的指令,其中useBean指令用于在JSP页面中初始化一个Java实例;setProperty指令用于为JavaBean实例的属性设置值;getProperty指令用于输出JavaBean实例的属性。

useBean动作指令的语法格式如下:

<jsp:useBean id="name" class="classname" scope="page|request|session|application"/>

?其中:id属性是JavaBean的实例名,class属性确定JavaBean的实现类,scope属性用于指定JavaBean实例的作用范围,该范围有一下4个值:

page:该JavaBean实例仅在该页面有效。

request:该JavaBean实例在本次请求有效。

session:该JavaBean实例在本次session内有效。

application:该JavaBean实例在本应用内一直有效。

setProperty动作指令的语法格式如下:

<jsp:setProperty name="BeanName" property="propertyName" value="value"/>

?其中:name属性确定需要设定JavaBean的实例名;property属性确定需要设置的属性名;value属性则确定需要设置的属性值。

getProperty动作指令的语法格式如下:

<jsp:getProperty name="BeanName" property="propertyName"/>

?其中:name属性确定需要输出的JavaBean的实例名;property属性确定需要输出的属性名。

?plugin指令

?plugin指令主要用于下载服务器端的JavaBean或Applet到客户端执行。由于程序在客户端执行,因此客户端必须安装虚拟机。

用处不多,基本不用,有标签可以替代。

param指令

param指令用于设置参数值,这个指令本身不能单独使用,因为单独的param指令没有实际意义。param指令可以与以下三个指令结合使用。

jsp:include

jsp:forward

jsp:plugin

当与include指令结合使用时,param指令用于将参数值传入被导入的页面;当与forward指令结合使用时,param实例用于将参数值传入被转向的页面;当与plugin指令结合使用时,则用于将参数传入页面中的JavaBean实例或Applet实例。

param动作指令的语法格式如下:

<jsp:param name="paramName" value="paramValue"/>

?

?

?