jsp:useBean 中type和class属性的区别

本文详细解析了 JSP 中 useBean 标签的两种不同用法:通过 class 和 type 属性来实例化或查找 Bean 的区别。并探讨了在 session 范围内设置 null 值后两种方式的表现差异。
<jsp:useBean id="product" class="test.Product" scope="session"></jsp:useBean>

<jsp:useBean id="product" type="test.Product" scope="session"></jsp:useBean>

以上的两种写法,当product!=null两者视乎没什么区别,若使用session.setAttribute("product",null);设置后,在访问包含有<jsp:useBean id="product" type="test.Product" scope="session"></jsp:useBean>语句的页面时就会抛出异常(org.apache.jasper.JasperException: bean product not found within scope)。而使用<jsp:useBean id="product" class="test.Product" scope="session"></jsp:useBean>

不会抛异常,这两种写法意义是相同的。假如使用class,它是先判断拿不拿得到实例的bean,若拿不到就使用new关键字实例化一个,而使用的是type时,它只是查找指定的范围中是否存在,在不存在时又没使用class或beanName 指定type,就会抛出异常,因此在使用type时就需要注意这点。并且class与beanName 必须指定package (即使引入了包),而type可以不指定。
1. (单选题) test.jsp文件中有如下一行代码:<jsp:useBean id=”user” scope=”__”type=”com.UserBean”>要使user对象可以作用于整个应用程序,下划线中应添入() A page B request C session D application 2. (单选题) 在JSP中,以下是有关jsp:setPropertyjsp:getProperty标记的描述,正确的是 A <jsp:setProperty><jsp:getProperty>标记都必须在<jsp:useBean>的开始标记结束标记之间 B 这两个标记的name属性的值必须<jsp:usebean>标记的id 属性的值相对应 C <jsp:setProperty><jsp:getProperty>标记可以用于对bean中定义的所有属性进行选择设置 D 这两个标记的name属性的值可以<jsp:userbean>标记的属性的值不同 3. (单选题) 存在以下JavaBeanJSP页面: Person.java: package x; public class Person { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } index.jsp: <jsp:useBean id="p" class="x.Person" /> <jsp:setProperty property="name" name="p" value="Mike" /> <jsp:setProperty property="name" name="p" param="names" /> <jsp:getProperty property="name" name="p" /> 访问http://localhost:8080/项目名/index.jsp?name=John时的页面输出为 A null B 发生异常 C Mike D John 4. (单选题) 下列useBean标准动作使用正确的是______ A <jsp:useBean id="a" class="java.util.Date"/> B <jsp:useBean name="a" class="java.util.Date" scope="request"/> C <jsp:useBean id="a" class="Date"/> D <jsp:useBean name="a" class="Date" scope="request"/> 二. 填空题(共2题,25分) 5. (填空题) 用于查找或者实例化一个JavaBean的动作标签为____,用于设置JavaBean属性的动作标签为_____。 第1空 第2空 6. (填空题) 广义上来讲,满足______、______、______三个要求的Java类可以称为JavaBean 第1空 第2空 第3空 三. 多选题(共2题,25分) 7. (多选题) 下列关于getProperty标准动作的说法正确的是______ A 当JavaBean不存在所访问的属性时,显示null B 当JavaBean不存在所访问的属性时,发生异常 C getProperty标准动作实际上是调用对应属性的get方法 D 以上都不正确 8. (多选题) 下列setProperty标准动作使用正确的是______ A <jsp:setProperty name="id" property="name" value="name"/> B <jsp:setProperty id="id" property="name" value="name"/> C <jsp:setProperty name="id" property="name" param="name"/> D <jsp:setProperty id="id" property="name" param="name"/>
最新发布
11-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值