Servlet&JSP课后习题解答

第7章课后练习

? 选择题

1. 以下哪几个倾听器,必须在web.xml中设定? (A) HttpSessionListener (B) RequestListener

(C) ServletContextListener (D) ServletAttributeListener

答案:A、C

提示:没有B、D这两种倾听器。

2. 以下何者为倾听器的事件类型之一?

(A) HttpSessionEvent

(B) RequestAttributeEvent

(C) ServletContextAttributeEvent (D) ServletContextEvent 答案:A、C、D

3. 以下倾听器中,不需要在web.xml中设定的是? (A) HttpSessionListener

(B) HttpSessionBindingListener (C) ServletContextListener (D) ServletAttributeListener

答案:B

4. 以下哪几个事件类型,拥有getName()与getValue()方法?(A) HttpSessionEvent

(B) ServletRequestAttributeEvent (C) ServletContextAttributeEvent (D) HttpSessionBindingListener 答案:B、C、D。

5. 你有一段程序代码片段:

HttpSession session = request.getSession(); User user = new User();

session.setAttrubute(\

25

以下何种作法,可以让你在不修改程序代码的情况下,实作统计在线人数? (A) 实作HttpSessionBindingListener (B) 实作HttpSessionListener

(C) 实作HttpSessionActivationListener (D) 以上皆非 答案:B

提示:题目要求不修改原有的程序代码,所以B是唯一的可能性。

6. 在web.xml中有以下的设定:

Some

cc.openhome.SomeServlet 1

Other

cc.openhome.OtherServlet 1

AnOther

cc.openhome.AnOtherServlet 2

请问以下描述何者正确?

(A) 容器会产生两个AnotherServlet实例

(B) 容器会先初始化SomeServlet,再初始化OtherServlet (C) 容器会先初始化AnOtherServlet,然后才是其它Servlet (D) 容器在请求来到时,才会初始化对应的Servlet 答案:B

7. 哪个URL模式设定方式,可以符合/guest/list.view的请求? (A) *.view

(B) /guest/*.view (C) /guest/*

(D) /guest/list.view 答案:A、C、D

26

8. 如果想要请求guest目录时,自动显示欢迎档案,则以下空格可以填上什

么?

______________

(A) (B) (C) (D) 答案:C

/guest/index.html /index.html default.jsp default.*

9. 关于以下web.xml中的设定,何者描述正确?

NullPointerException report.view

(A) (B) (C) (D) 答案:B、C

发生NullPointerException时会转发report.view处理 例外型态必须指定完全符合名称(Full Qualified Name) report.view必须改为/report.view 例外类型不可以指定特定的例外类别名称

10. 在过滤器设定中,哪个URL模式设定方式,在/guest/list.view的请求时会

触发过滤器?

(A) *.view

(B) /guest/*.view (C) /guest/*

(D) /guest/list.view 答案:A、C、D

提示:过滤器的设定原则与Servlet相同。

? 实作题

1. 请扩充7.1.1节中的范例,不仅统计在线人数,还可以在页面上显示目前登

27

入使用者的名称、浏览器信息、最后活动时间。

图7.14 在线使用者信息

2. 在7.1.3节中,使用HttpSessionBindingListener来实作使用者登入、

注销的日志记录功能,请改用HttpSessionAttributeListener来实作这个功能。

28

联系客服:779662525#qq.com(#替换为@)