JSP(二) —— JSP动作元素

来源:互联网 发布:win10如何优化虚拟机 编辑:程序博客网 时间:2024/05/22 14:37

前言

上一篇文章了讲了JSP中的指令,在平时的WEB开发中经常使用,而这一篇要讲的JSP动作元素,在平时的开发中使用并不多,仅了解一下就好。

正文

JSP动作元素用来控制JSP的行为,执行一些常用的JSP页面动过。通过动作元素可以实现使用多行java代码能够实现的效果。
JSP中的动作元素主要包含以下7个:

<jsp:include><jsp:forward><jsp:param><jsp:plugin><jsp:useBean><jsp:setProperty><jsp:getProperty>

<jsp:useBean><jsp:setProperty><jsp:getProperty>标签用在与JavaBeans的连接中。
1、<jsp:include>动作元素
<jsp:include>动作元素提供了一种在JSP中包含页面的方式,既可以包含静态文件,也可以包含动态文件。
所谓的JSP页面动态包含某个文件,指的是当JSP页面运行时才会载入该文件。如果被包含文件是文本文件,则运行时只需将该文件内容发送到客户端,由客户端显示出来即可;如果被包含的文件本身也是JSP文件,则JSP编译器就要先执行该本件,再将执行结果发送到客户端并显示出来。

<jsp:include>动作元素与<@% include file="" %>指令的区别<jsp:include>动作元素是在执行时对所包含文件进行处理的,JSP页面与它所包含的文件在逻辑上和语法上都是独立的。当被包含的文件内容发生变化时,JSP页面运行时可以看到所包含文件变化的显示结果;<@% include file="" %>指令包含的文件是静态文件,如果被包含的文件内容发生变化,则JSP页面运行时看到的仍然是变化前文件的内容。如果希望在JSP页面中看到被包含文件变化后的内容,则需要重新保存该JSP页面,然后再访问它。由于此时已重新将JSP页面转译成Java文件,因此再访问时就可以看到变化后的文件内容。
<jsp:include>的语法格式:<jsp:include page="relative URL" flush="true|false" /> page 属性:指定被包含文件的URL地址,是一个相对路径flush 属性:指定当缓冲区满时,是否将其清空,默认false

2、<jsp:forward>动作元素
<jsp:forward>是一种用于页面重定向的动作元素,它的作用是停止当前JSP页面的执行,而将客户端请求转交给另一个JSP页面。转发实在服务器端进行的,不会引起客户端的二次请求,因此浏览器的地址栏不会发生任何变化,效率也比重定向高。

<jsp:forward page="转向页面的URL地址" />

3、<jsp:param>动作元素
<jsp:param>是一种提供参数的附属动作元素,它以“名-值”对的形式为其他动作元素提供附加信息,一般与<jsp:include><jsp:forward><jsp:plugin>联合使用。

<jsp:param name="参数名字" value="指定给param的参数值">

(1)当<jsp:param><jsp:include>动作元素一起使用时,可以将<jsp:param>中提供的参数值传递到<jsp:include>要加载的文件中去,因此当<jsp:include>动作结合<jsp:param>使用时,可以在加载文件的过程中同时向该文件提供信息。

eg:<!-- 使用jsp:include动作元素导入动态文件,使用jsp:param动作元素传递参数 --><jsp:include page="要导入的动态文件" >    <jsp:param name="number" value="200" /></jsp:include><!-- 在动态文件中通过如下途径获取<jsp:param>传递的参数 --><% String str = request.getParameter("number"); %>

(2)当<jsp:param><jsp:forward>动作元素一起使用时,可以实现在跳转页面的同时向转向的页面传递参数的功能。

eg:<!-- 使用jsp:forward动作元素转向另一个jsp页面,使用jsp:param动作元素传递参数 --><jsp:forward page="要跳转的jsp页面" >    <jsp:param name="userInfo" value="jack" />    <jsp:param name="userAge" value="23" /></jsp:forward><!-- 在跳转的JSP获取传递的参数 --><%     String userInfo = request.getParameter("userInfo");    String userAge = request.getParameter("userAge"); %>

4、<jsp:plugin>动作元素
<jsp:plugin>动作元素可以将服务器端的JavaBean或Applet下载到客户端执行。

<jsp:plugin     type = "bean|applet"                       //指定插件类型,是Bean还是Applet    code = "classFileName"                     //指定执行的java类名,必须以扩展名.class结尾    codeBase = "classFileURL"                  //指定被执行的Java类所在的目录    [name = "instanceName"]                    //指定Bean或Applet的名称    [archive = "URLToArchive"]                 //指定在Bean或Applet执行前要预先加载的类的列表    [align = "bottom|top|left|right|middle"]   //指定Bean或Applet在显示时的对齐方式    [height = "displayPixels"]                 //指定Bean或Applet在显示时的高度    [width = "displayPixels"]                  //指定Bean或Applet在显示时的宽度    [hspace = "leftRightPixels"]               //指定Bean或Applet显示时距屏幕左右的距离,单位为像素    [vspace = "topBottomPixels"]               //指定Bean或Applet显示时距屏幕上下的距离,单位为像素    [jreversion = "jreVersionNumber|1.2"]      //运行程序所需要的jre版本    [nspluginurl = "URLToPlugin"]              //指定使用Netscape Navigator浏览器的用户能够使用的jre下载地址    [iepluginurl = "URLToPlugin"]              //指定使用IE浏览器的用户能够使用的jre下载地址>    [<jsp:params>                              //用来给Bean或Applet传递参数,结合<jsp:param>使用        [<jsp:param name="paramterName" value="paramterValue|<%=expression%>"/>]    [</jsp:params>]    [<jsp:fallback>文本信息</jsp:fallback>]     //指定当浏览器不能正常启动Bean或Applet时,会显示该动作元素中提供的错误信息</jsp:plugin>

5、<jsp:useBean><jsp:setProperty><jsp:getProperty>动作元素
<jsp:useBean><jsp:setProperty><jsp:getProperty>这3个动作元素都是与JavaBean相关,一般一起使用。
(1)<jsp:useBean>动作元素
<jsp:useBean>动作元素用来用来装载一个将在JSP页面中使用的JavaBean。

<jsp:useBean     id = "beanInstanceName"                        //指定JavaBean的实例名    class = "className"                            //指定JavaBean的全限定类名    scope = "page|request|session|application"     //指定引入的JavaBean实例的作用域,默认为当前页。page:表示该JavaBean实例在当前页面有效;request:表示该JavaBean实例在本次请求中有效;                                                   //session:表示该JavaBean实例在本次session内有效;application:表示该JavaBean实例在本应用内一直有效/>

(2)<jsp:setProperty>动作元素
获取到Bean实例之后,可以使用<jsp:setProperty>动作元素来设置或修改Bean中的属性值。

<jsp:setProperty    name = "beanInstanceName"    //指定要进行设置的JavaBean的实例名    property = "propertyName"    //指定需要设置的JavaBean实例中的属性名    value = "propertyValue"      //指定要将property中指定的属性设置为该属性值/>

<jsp:setProperty>动作元素通过Bean中提供的setter方法来设置Bean中的属性值,可以设置一个属性值,也可以设置多个属性值。在使用<jsp:setPropert>之前必须要使用<jsp:useBean>先声明Bean,同事它们所使用的Bean实例名也应该想匹配。
(3)<jsp:getProperty>动作元素
<jsp:getProperty>动作元素用来提取指定Bean属性的值,并将其转换成字符串,然后输出。

<jsp:getProperty     name = "beanInstanceName"    //指定要输出的JavaBean的实例名    property = "propertyName"    //指定要输出的JavaBean的实例中的属性名/>eg:<!-- 创建jsp.User实例,实例名为user,要先定义User类 --><jsp:useBean id="user" class="jsp.User" scope="page" /><!-- 设置user的userName属性 --><jsp:setProperty name="user" property="userName" value="Jack" /><!-- 设置user的age属性 --><jsp:setProperty name="user" property="age" value="20" /><!-- 输出userName属性 -->用户名:<jsp:getProperty name="user" property="userName" /><!-- 输出age属性 -->年龄:<jsp:getProperty name="user" property="age" />
原创粉丝点击