以下何种作法,可以让你在不修改程序代码的情况下,实作统计在线人数? (A) 实作HttpSessionBindingListener (B) 实作HttpSessionListener
(C) 实作HttpSessionActivationListener (D) 以上皆非 答案:B
提示:题目要求不修改原有的程序代码,所以B是唯一的可能性。
6. 在web.xml中有以下的设定:
请问以下描述何者正确?
(A) 容器会产生两个AnotherServlet实例
(B) 容器会先初始化SomeServlet,再初始化OtherServlet (C) 容器会先初始化AnOtherServlet,然后才是其它Servlet (D) 容器在请求来到时,才会初始化对应的Servlet 答案:B
7. 哪个URL模式设定方式,可以符合/guest/list.view的请求? (A)
(B)
(D)
26
8. 如果想要请求guest目录时,自动显示欢迎档案,则以下空格可以填上什
么?
(A) (B) (C) (D) 答案:C
/guest/index.html /index.html default.jsp default.*
9. 关于以下web.xml中的设定,何者描述正确?
(A) (B) (C) (D) 答案:B、C
发生NullPointerException时会转发report.view处理 例外型态必须指定完全符合名称(Full Qualified Name) report.view必须改为/report.view 例外类型不可以指定特定的例外类别名称
10. 在过滤器设定中,哪个URL模式设定方式,在/guest/list.view的请求时会
触发过滤器?
(A)
(B)
(D)
提示:过滤器的
? 实作题
1. 请扩充7.1.1节中的范例,不仅统计在线人数,还可以在页面上显示目前登
27
入使用者的名称、浏览器信息、最后活动时间。
图7.14 在线使用者信息
2. 在7.1.3节中,使用HttpSessionBindingListener来实作使用者登入、
注销的日志记录功能,请改用HttpSessionAttributeListener来实作这个功能。
28
第8章课后练习
? 选择题
1. 关于JSP的描述,哪个正确?
(A) JSP是直译式的网页,与Servlet无关
(B) JSP会先转译为.java,然后编译为.class载入容器 (C) JSP会直接由容器动态生成Servlet实例,无需转译 (D) JSP是丢到浏览器端,由浏览器进行直译 答案:B
2. 关于JSP的描述,哪个正确?
(A) 要在JSP中撰写Java程序代码,必须重新定义_jspService() (B) 重新定义jspInit()来作JSP初次载入容器的初始化动作 (C) 重新定义jspDestroy()来作JSP从容器销毁时的结尾动作 (D) 要在JSP中撰写Java程序代码,必须重新定义service() 答案:B、C
3. 如果想要在JSP中定义方法,应该使用哪个JSP元素? (A) (B) (C) (D) 答案:C
<% %> <%= %> <%! %> <%-- --%>
4. 当JSP中有撰写中文时,而执行结果出现乱码,必须检查page 指示元素
的哪些属性设定是否正确?
(A) contentType (B) language
(C) extends
(D) pageEncoding 答案:A
提示:基本上还得检查一下编辑器的预设编码与pageEncoding是否一致。
29
5. 哪个JSP隐含对象,转译后对应ServletContext物件? (A) (B) (C) (D) 答案:D
pageContext config page
application
6. 在Session范围中以名称\放置了一个JavaBean属性,JavaBean上
有个getMessage()方法,请问以下哪个方式呼叫getMessage()以取得讯息并显示出来?
(A) (C) <%= request.getBean().getMessage() %> (D) ${bean.message} 答案:B、D 提示: 7. 在Web应用程序中有以下的程序代码,执行后转发至某个JSP网页: Map map = new HashMap(); map.put(\map.put(\ request.setAttribute(\ 以下哪个选项可以正确地使用EL取得map中的值? (A) ${map.user} (B) ${map[\(C) ${login.user} (D) ${login[role]} 答案:C 提示:选项D必须改为${login[\才是正确。 30