首页 > 代码库 > JSP中的7个指令

JSP中的7个指令

动作指令与编译指令不同,编译指令时通知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

JSP中的7个指令