1、动作指令与编译指令的区别:编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的动作。编译指令在将JSP编译成Servlet时起作用,而处理指令通常可替换成JSP脚本,它只是JSP脚本的标准化写法。动作指令主要有七个:
①jsp:forward:执行页面转向,将请求的处理转发到下一个页面。
②jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。
③jsp:include:用于动态引入一个JSP页面。
④jsp:plugin:用于下载JavaBean或Applet到客户端执行。
⑤jsp:useBean:创建一个JavaBean实例。
⑥jsp:setProperty:设置JavaBean实例的属性值。
⑦jsp:getProperty:输出JavaBean实例的属性值。
2、forward指令:转向的作用,既可以转发到静态的HTML页面,也可以转发到动态的JSP,或者转发到容器的Servlet。格式:
(JSP1.0)}">
(JSP1.1及以上)
}">
{}
第二章语法用于在转发时增加额外的请求参数。请求的参数可以通过HttpServletRequest类的getParameter()方法获取。
3、include指令:这是一个动态指令,也用于包含某一个页面,它不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入页面。语法格式: flush="true"/>
或者
< jsp:include page="{relativeURL|<%=expression%>}" flush="true" >
{}
flush用于指定输出缓存是否转移到被导入文件中。为true,则包含在被导入文件中,若未false,则包含在原文件中。JSP1.1以前,只能为false。
静态导入和动态导入有以下区别:
①静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。
②静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则会失去作用,只是插入被导入页面的body内容。
③动态包含还可以增加额外的参数。参数可在指定页面使用request对象获取。
4、useBean、setProperty、getProperty
①useBean用于在JSP页面中初始化一个Java实例;setProperty指令用于JavaBean实例的属性设置值;getProperty指令用于输出JavaBean实例的属性。若多个JSP页面需要重复使用某段代码,可以把这段代码定义成Java类的方法,然后让多个JSP页面调用该方法即可。语法格式:
其中id属性是JavaBean的实例名,class属性确定JavaBean的实现类。scope属性用于指定JavaBean实例的作用范围,该范围有以下四个值:
page:该JavaBean的实例仅在该页面有效
request:该JavaBean实例在本次请求有效
session:该JavaBean实例在本次会话有效
application:该JavaBean实例在本应用内一直有效。
setProperty/getProperty指令的语法格式:
其中那么属性确定需要设定/输出的JavaBean的实例名,property属性确定需要设置的属性名,value属性确定需要设置的属性值。
5、plugin指令:主要用于下载服务端的JavaBean或Applet到客户端执行。由于程序在客户端执行,因此客户端必须安装虚拟机。使用不多。
6、param指令
param指令用于设置参数,不能单独使用,与三个指令结合使用(jsp:forward,jsp:include,jsp:plugin),与forward一起使用时,param指令用于将参数值传入被转向的页面;与include一起使用时,用于将参数值传入被导入的页面;与plugin一起使用时,用于将参数传入页面中的JavaBean实例或Applet实例。语法格式: