动作指令和编译指令不同,编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的动作。编译指令在将JSP编译成Servlet时起作用;而处理指令通常可替换成JSP脚本,它只是JSP脚本的标准化写法。
JSP动作指令主要有如下的7个:
jsp:forward:执行页面转向,将请求的处理转发到下一个页面。
jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。
jsp:include:用于动态引入一个JSP页面。
jsp:plugin:用于下载JavaBean或Applet到客户端执行。
jsp:useBean:创建一个JavaBean的实例。
jsp:setProperty:设置JavaBean实例的属性值。
jsp:getProperty:输出JavaBean实例的属性值
一、jsp:forward指令
jsp:forward指令用于将页面响应转发到另外的页面。既可以转发到静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet中。
jsp:forward指令的语法格式:
<jsp:forward page="path<%expression%>"> <jsp:param name="" value="" /> </jsp:forward>
提示:从表面上看,<jsp:forward.../>指令给人一种感觉:它是将用户请求”转发”到了另一个新页面,但实际上,<jsp:forward.../>并没有重新向新页面发送情趣,它只是完全采用了子新页面来对用户生成响应——请求依然是一次请求,所以请求参数、请求属性不会丢失。
二、jsp:include指令:
jsp:include指令是一个动态include指令,也可以包含某个页面,它不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。(只导入body的内容)
include指令的格式如下:
<jsp:include page="<url|expressions>" flush='true'/> 或者为:
<jsp:include page="<url|expressions>" flush='true'> <jsp:param name="请求参数名" value="请求参数值" /> </jsp:include>
flush属性用于指定输出缓存是否转移到被导入文件中。
三、jsp:useBean、jsp:setProperty、jsp:getProperty指令
这三个指令都是和javaBean相关的指令,其中
jsp:useBean指令用于在JSP页面中初始化一个JAVA实例;
jsp:setProperty指令用于为JavaBean实例的属性设置值;
jsp:getProperty指令用于输出JavaBean实例的属性。
如果多个jsp页面要重复使用某段代码,则可以把这段代码定义成Java类的方法,然后让多个jsp页面调用该方法即可,这样可以达到提高较好的代码复用。
jsp:useBean指令的语法格式为:
<jsp:useBean id="name" class="classesname" scope="page | request | session | application" />
其中,id属性为JavaBean的实例名,class属性确定JavaBean的实现类。 scope属性用于指定JavaBean实例的作用范围,该范围有如下4个值:
(1)、page:该JavaBean实例仅在该页面中有效;
(2)、request:该JavaBean实例在本次请求中有效;
(3)、session:该JavaBean实例在本次session内有效;
(4)、application:该JavaBean实例在本应用内一直有效。
jsp:setProperty指令的语法格式如下:
<jsp:setProperty name="BeanName" proterty="propertyName" value="value" />
其中,name属性确定需要设定JavaBean的实例名; proterty属性确定需要设置的属性名; value属性则确定需要设置的属性值。
jsp:getProperty指令的语法格式如下:
<jsp:getProperty name="BeanName" proterty="propertyName" /> 其中,name属性确定需要输出JavaBean的实例名; proterty属性确定需要输出的属性名;