《JavaWeb编程技术》课后习题答案(8)
时间:2025-07-11
时间:2025-07-11
page (ng.Object)
24. 答:共有4个作用域对象:application、session、request和pageContext。用setAttribute()方法和getAttribute()方法在这些对象上设置和获得属性。在application作用域上的对象可以被Servlet容器的所有的Web应用程序访问。
25. 答:可以使用pageContext的findAttribute()方法,该方法将依次在页面作用域、请求作用域、会话作用域和应用作用域中查找指定名称的属性。
第6章习题解析
1. 答:B 2. 答:⑤
3. 答:这两种表示等价,但第一种表示使用了JSP脚本元素,第二种表示使用的是动作。它们的功能类似,但有一点细微的差别。pageContext.include()方法在包含其他组件之前总是刷新当前页面的输出,而<jsp:include>只有在flush属性值明确设置为true时才刷新当前页面的输出,如下所示:
<jsp:include page="other.jsp" flush="true" />
4. 答:请求对象的getParameter()方法的返回值类型是String,因此display.jsp中的Integer应改为String。使用<jsp:param>和request.getParameter()机制只能传递和检索String类型的参数。要传递其他对象类型的参数,必须在包含页面中使用request.setAttribute(),在被包含页面中使用request.getAttribute()。
5. 答:D 6. 答:C 7. 答:B
8. 答:可以。页面customerDisplay.jsp文件可以使用<jsp:getProperty>输出bean的属性值,只要它也包含一个与customerInput.jsp相同的<jsp:useBean>声明并且该声明出现在<jsp:getProperty>声明前面即可。
9. 答:
<%@ page import="com.model.CustomerBean,com.model.BusinessCustomerBean"%> <jsp:useBean id="customer" class="com.model.BusinessCustomerBean"
type="com.model.CustomerBean" scope="application"/>
<jsp:setProperty name="customer" value="Smith@"/>
<jsp:setProperty name="customer" value="8899123" />
</jsp:useBean>
10. 答:不能在同一个<jsp:useBean>声明中同时使用beanName和class属性。
11. 答:必须使用property指定bean的属性。param用来指定请求参数,并且不能在同一个<jsp:setProperty>动作中同时指定param和value属性。
12. 答:使用代码段1是只有在指定作用域中找不到customer的bean对象时才执行标签体,使用代码段2在任何时候都执行属性设置标签。
13. 答:可以在一个动作中设置bean的全部属性:
<jsp:setProperty name="beanName" property="*" />
但不能在一个动作中获得全部属性值。
14. 答:C