当前位置:首页 > ServletJSP课后习题解答
(B) 当请求add.do时,过滤器的执行顺序为SecurityFilter、CharacterFilter
(C) 当请求list.view时,过滤器的执行顺序为SecurityFilter、
CharacterFilter
(D) 当请求list.view时,只会套用SecurityFilter 答案:B、D
4. 关于FilterChain的描述,何者正确?
(A) 如果不呼叫FilterChain的doFilter()方法,则请求略过接
下来的过滤器而直接交给Servlet (B) 如果有下一个过滤器,呼叫FilterChain的doFilter()方法,会将请求交给下一个过滤器
(C) 如果没有下一个过滤器,呼叫FilterChain的doFilter()方法,会将请求交给Servlet
(D) 如果没有下一个过滤器,呼叫FilterChain的doFilter()方法没有作用
答案:B、C
5. 关于FilterConfig的描述,何者错误?
(A) 会在Filter界面的init()方法呼叫时传入
(B) 为web.xml中
(C) 可读取
6. 以下的程序代码将实作请求包裹器:
public class MyRequestWrapper ________________ {
public MyRequstWrapper(HttpServletRequest request) { super(requset); } …. }
请问空白处应该填上哪个程序代码片段? (A) implements ServletRequest
(B) extends ServletRequestWrapper (C) implements HttpServletRequest
(D) extends HttpServletRequestWrapper 答案:D
21 / 39
提示:因为建构式中直接使用传入的HttpServletRequest对象及super()来呼叫父类别建构式,所以一定是继承HttpServletRequestWrapper。
7. 关于请求包裹器,以下描述何者正确?
(A) 可以实作ServletRequest界面
(B) 可以继承ServletRequestWrapper类别 (C) 一定要继承ServletRequestWrapper类别 (D) HttpServletRequestWrapper
ServletRequestWrapper的子类别
是
答案:A、B、D
提示:要自己实作ServletRequest接口来实作请求包裹器也是可以的,只是所有的方法都要自行实作。
8. 关于HttpServletRequestWrapper
HttpServletResponseWrapper的描述,何者有误?
(A) 分别实作了HttpServletRequest界面
HttpServletResponse界面 (B) 分别继承了ServletRequestWrapper
ServletResponseWrapper类别 (C) 实作时,至少要重新定义一个父类别中的方法 (D) 实作时必须在建构式中呼叫父类别建构式 答案:C
9. 在开发过滤器时,以下何者是正确的观念?
(A) 必须考虑前后过滤器之间的关系
(B) 挂上过滤器后不改变应用程序原有的功能
(C) 设计Servlet时必须考虑到未来加装过滤器的需求 (D) 每个过滤器要设计为独立互不影响的组件 答案:B、D
10. 关于Filter界面上的doFilter()方法之说明,何者有误?
(A) 会传入两个参数HttpServletRequest
HttpServletResponse
(B) 会传入三个参数HttpServletRequest
HttpServletResponse、FilterChain
与与与
、、
(C) 前一个过滤器呼叫FilterChain的doFilter()后,会执行目
前过滤器的doFilter()方法
(D) 前一个过滤器的doFilter()执行过后,会执行目前过滤器的
22 / 39
doFilter()方法
答案:A、B、D
提示:Filter的doFilter()方法上三个参数是ServletRequest、ServletResponse、FilterChain。前一个过滤器的doFilter()执行时,当中必须呼叫FilterChain的doFilter()方法,才会执行目前过滤器的doFilter()方法。
? 实作题
1. 模仿本单元综合练习,重构第4章元课后练习中的留言版程序,将从档案读
写留言版讯息的职责封装至一个MessageServlce类别中。。 2. 你的留言版程序不允许使用者输入HTML标签,但可以允许使用者输入一些代码作些简单的样式。例如: ? [b]粗体[/b]
? [i]斜体[/i]
? [big]放大字体[/big]
? [small]缩小字体[/small]
HTML的过滤功能,你可以直接使用本章所开发的字符过滤器,并且请另行开发一个过滤器来完成代码替换的功能。
第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
23 / 39
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(\
以下何种作法,可以让你在不修改程序代码的情况下,实作统计在线人数? (A) 实作HttpSessionBindingListener (B) 实作HttpSessionListener
(C) 实作HttpSessionActivationListener (D) 以上皆非 答案:B
提示:题目要求不修改原有的程序代码,所以B是唯一的可能性。
6. 在web.xml中有以下的设定:
24 / 39
共分享92篇相关文档