ServletJSP课后习题解答

发布时间 : 星期一 文章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) 可读取标签中所设定的初始参数 (D) 可使用getInitParameter()方法读取初始参数 答案: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中有以下的设定:

Some

cc.openhome.SomeServlet 1

Other

cc.openhome.OtherServlet 1

24 / 39

联系合同范文客服:xxxxx#qq.com(#替换为@)