第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 8. 在Web应用程序中有以下的程序代码,执行后转发至某个JSP网页: Map map = new HashMap(); map.put(\request.setAttribute(\ 以下哪个选项可以正确地使用EL取得map中的值? (A) ${map.local.role} (B) ${login.local.role} (C) ${map[\(D) ${login[\答案:D 9. 在Web应用程序中有以下的程序代码,执行后转发至某个JSP网页: List names = new ArrayList(); names.add(\ request.setAttribute(\ 以下哪个选项可以正确地使用EL取得List中的值? (A) (B) (C) (D) 答案:B、D ${names.0} ${names[0]} ${names.[0]} ${names[\ 提示:在[]指定索引值时可以用双引号,所以D也是正确的。 10. 以下何者不是EL隐含物件? (A) (B) (C) (D) 答案:B param request pageContext cookie ? 实作题 1. 先前章节实作在线留言版时,使用Servlet来实现画面的输出,请将之改为 JSP,并尽量使用本章所学得的JSP元素,减少Scriptlet的使用。 31 第9章课后练习 ? 选择题 1. 哪些JSTL标签可用来进行Java程序中if、if..else的功能? (A) (D) 2. 如果打算使用request对象的setCharacterEncoding()方法设定字 符编码处理方式,则以下哪个JSTL标签可以让你不用使用Scriptlet? (A) (B) (C) (D) 答案:B 3. 如果taglib设定如下: <%@taglib prefix=\ 则以下何者会是使用自订标签的正确方式? (A) (B) (C) (D) 答案:D 4. 在使用Tag File自订标签时,若JSP中有以下的内容: <%@taglib prefix=\ 以下何者描述正确? (A) 可以 32