chap6 jsp页面中使用JavaBean组件

博客涉及JSP、Servlet和JavaBeans等信息技术内容。JSP常用于动态网页开发,Servlet可处理客户端请求,JavaBeans是可重用的组件。这些技术在Web开发中发挥着重要作用。

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

chap6 jsp页面中使用JavaBean组件
(1)JavaBeansbean):在jsp中作为将要显示在web页面中的动态内容的容器。一般代表特定事物。
(2)用途1:当jspservlet结合时,bean可由servlet进行带数据的创建和初始化,再传递给jsp页面(把bean的数据添加到response中)。
(3)用途2:在纯jsp应用中,bean也可用于捕捉和验证用户的输入。
(4)jspbean的支持:1>定义了大量相关的标准action2>jstl EL中可以把bean作为变量。
6.1 什么是bean
(1)bean是遵循JavaBeans规范中定义的一系列guidelineJava class,可以在更大的app.中作为组件使用。
(2)用途1:在使用servlet作为所有business logicfrontend时,bean一般由business logic代码创建,再传递给jsp页面(把bean的数据添加到response中)。[详见]chap18chap19
(3)用途2:在jsp页面中直接创建bean. []这是本章主要内容。
(4)JavaBeans的一些说明:
1> 对于bean class,应当总使用package name,以方便在jsp页面中以portable的方式使用bean
2> bean class应该有一个无参数的constructor,只需要class name就能创建一个bean
3> 通过gettersetter方法(accessor方法),访问bean的属性(类的variable):get/set+属性名称(首字母大写)。 Getter对应readablesetter对应writable,通过两者组合可以使属性read-onlywrite-only,或read/write
4> bean class应当实现java.io.Serializablejava.io.Externalizable接口,使一个tool能够保存和重置bean的状态。
(5)bean属性的一些说明:
1> bean属性:bean拥有的数据。名称区分大小写,以小写字母开头。对应特定的Java数据类型。
2> jsp页面中使用bean所需知道的:[1]class名称;[2]属性名称;[3]属性的数据类型;[4]属性的访问方式(read-only?write-only?read-write?);[5]对每个属性代表的data的描述。
6.2 jsp页面中声明bean
[例子] <jsp:useBean id="cartoon"
      class="com.ora.jsp.beans.motd.CartoonBean" />
(1)<jsp:useBean>jsp的标准action之一,创建了class类的、名为idbean class instance
(2)class属性:标识bean class类。
(3)id属性:标识bean classinstance名称。在页面中必须是唯一的。
6.3 读取bean属性
两种方法:
6.3.1 使用<jsp:getProperty> action
[例子]
<img src="images/
<jsp:getProperty name="cartoon"
      property="fileName" />
">
(1)<jsp:getProperty>获取bean属性的当前值,并把该值直接插入到response body中。
(2)name:标识<jsp:useBean>声明的特定bean instance(本例中的cartoon)。
(3)property:标识所需的属性
(4)本例中,fileName属性值被作为html<img>元素的src属性值的一部分。[]元素<jsp:getPropery>被用作<img>元素的src的属性值,这不符合html语法,但是符合jsp语法,而container并不解释template text的含义。当jsp页面被处理时,action元素被bean的属性值替换。因此,产生的html可能是:<img src="images/dilbert2731150011029.gif">[]但不能够使用某个action元素为另一个action元素的属性赋值。
6.3.2 使用jstlEL
[例子]
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<img src="images/
<c:out value="${cartoon.fileName}" />">
(1) <jsp:useBean>创建的bean(本例中cartoon)可以作为EL的变量(${cartoon.fileName}
(2) <c:out value="${someBean.aProperty.aPropertyOfTheProperty}" />
<c:out>
someBean(本例中cartoon)的aPropery.aProperyOfThePropery(本例中fileName)属性值赋给value
[采用哪种方法]
主要根据偏好。<jsp:getProperty>一直包括在jsp spec.中;<c:out>最近才进入jstl spec.,更加灵活,略为简洁。如果重新开发一个app.,使用<c:out〉吧。
6.3.3 jsp中包含图像
不应该使用jsp在页面中包含动态图像:
[理由1]推荐在jsp产生的response中只包括一种类型的内容(尽管http response可以包括不同类型的多个部分),因此不应该把htmlimage混在一个response中。浏览器对于带有<img>元素的html response,对每一个image重新发送一个request,再把htmlimage合并。
因此为了在
jsp产生的response中包含image,只需要像html一样。只是uri是在runtime时决定的。
[理由2]jsp用于text响应,而不是binary响应。如果需要动态产生图像,应该使用servlet。在servlet中,可以把表示servleturi添加到<img>元素中。例如:<img src="imageGeneratorServlet?width=100&height=100">
6.4 设置bean属性
[例子
]
<jsp:setProperty name="msg" property="category"
      value="thoughts" />
……
<jsp:getProperty name="msg" property="message" />
…...
<jsp:setProperty name="msg" property="category"
      value="quotes" />
(1)<jsp:setProperty>设置beanproperty指定的属性。
(2)name:<jsp:useBean>中的id属性匹配
(3)property:标识设置哪一个属性。
(4)value:包含用于该属性的值。
(5)<jsp:getProperty>用于把message插入到response中。
6.4.1 自动类型转换
(1)对于属性值,container一般会把text值转换为其它Java types。但对于复杂的type,仍需要编程。
(2)使用<jsp:setProperty>时,container自动把text转换为某一Java type,使用的函数[参见]本书表6.3
(3)对于java.util.Datejsp spec.定义了如何开发“property editor”来处理转换。[参见]本书chap20
(4)<jsp:getProperty><c:out>的返回值总被转换成String
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值