JSP(二) —— JSP动作元素

本文介绍了JSP中的动作元素,包括<jsp:include>、<jsp:forward>、<jsp:param>、<jsp:plugin>以及与JavaBeans相关的动作元素<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>。详细解释了每个动作元素的功能及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

上一篇文章了讲了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" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值