首页 > 代码库 > jsp基础知识二(jsp动作指令)
jsp基础知识二(jsp动作指令)
动作指令与编译指令不同,编译指令是通知servlet引擎的处理消息,而动作指令只是运行时的动作。编译指令在将JSP编译成Servlet时起作用,而动作指令通常可替换成JSP脚本,它只是JSP脚本的标准化写法。
(1)JSP:forward 执行页面转向,将请求的处理转发到下一个页面。
(2)JSP:param 用于传递参数,必须与其他支持参数的标签一起使用
(3)JSP:include 用于动态引入一个JSP页面
(4)JSP:plugin 用于下载JavaBean或者Applet到客户端执行
(5)JSP:useBean 创建一个Javabean实例
(6)JSP:setProperty 设置JavaBean实例的属性值
(7)JSP:getProperty 获取JavaBean实例的属性值
(一)forward指令
用于将页面相应转发到另外的页面,既可以转发到静态的html页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet。动态指令只需直接<>中使用指令,静态则是<%%>,动态指令均是成对出现的。
JSP的forward指令格式如下:
对于JSP1.0语法为:
<JSP:forward page="{relativeURL|<%=expression%>}"/>
对于JSP1.1以上规范,语法为:
<JSP:forward page="{relativeURL|<%=expression%>}">
{<JSP:param·······/>}
</JSP:forward>
这种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获取。执行forward指令时,用户请求的地址依然没有发生改变,仍然是一次请求,但页面内容完全变为被forward目标页的内容。执行forward指令转发请求时,客户端的请求参数不会丢失。
(二)include指令
include指令时一个动态include指令,也用于包含某一个页面,它不会导入被include页面的编译指令,仅仅被导入页面的body内容插入页面。
<jsp:include page="{relativeURL|<%=expression%>}" flush="true">
<jsp:param name="parameterName" value="http://www.mamicode.com/parameterValue"/>
<jsp:include/>
flush属性用于指定输出缓存是否转移到被导入文件中,如果指定为true,则包含在被导入文件;如果指定为false,则包含在原文件中。对于JSP1.1旧版本中,只能设置为false。
注:include静态:编译指令 -----两个JSP页面融合成一个servlet
include动态:动作指令------在servlet中使用include引入被导入页面的内容
静态导入页面被导入页面的编译指令必须一致,否则会出错,动态则只包含body部分。
(三)userBean,setProperty,getProperty指令
这三个指令都是与JavaBean相关的指令,其中userBean指令用于在JSP页面中初始化一个java实例,setProperty指令用于为JavaBean实例的属性设置值;getProperty指令用于输出JavaBean实例的属性。如果多个JSP页面中需要重复使用的某段代码,我们可以把这段代码定义为java类的方法,然后多个JSP页面调用该方法即可,这样可以达到较好的代码复用。
userBean的语法格式如下
<jsp:userBean id="name" class="classname" scope="page|request|session|application"/>
其中,id属性是JavaBean的实例名,class属性确定JavaBean的实现类。scope属性用于指定JavaBean实例的作用范围。
setProperty的语法格式
<jsp:setProperty name="BeanName" property="propertyName" value="http://www.mamicode.com/propertyValue"/>
其中,name属性是要确定JavaBean的实例名,property属性要确定设置属性的属性名,value属性时要确定属性名对应的值。
getProperty的语法格式
<jsp:getProperty name="BeanName" name="propertyName"/>
其中,name属性时要确定JavaBean的实例名,name属性是指定要获取的属性名对应的值。
注:使用userBean标签时,除在页面脚本中创建了JavaBean实例之外,该标签还会将该JavaBean实例放入指定scope中,所以我们还需要在脚本中将JavaBean放入指定的scope中,所下面的代码所示:
pageContext.setAttribute("beanName",beanName)
request.setAtttibutr("beanName",beanName)
session.setAttribute("beanName",beanName)
application.setAttribute("beanName",beanName)
(四)plugin指令
plugin指令主要用于下载服务器端的JavaBean或Applet到到客户端执行,由于程序在客户端执行,因此客户端必须安装虚拟机。
(五)param指令
param用于设置参数值,这个指令本身不能单独使用,因此单独的param指令没有实际意义,param指令可以与以下指令结合使用
jsp:include jsp:forward jsp:plugin
转自:http://blog.csdn.net/vltic/article/details/7648961
jsp基础知识二(jsp动作指令)