Servlet&JSP课后习题解答 下载本文

方法传入Servlet之中,所以建构式中尝试取得初始参数时就会发生NullPointerException。

4. 继承HttpServlet之后,若要进行Servlet初始化,重新定义哪个方法才是正

确的作法? (A) public void init(ServletConfig config) throws

ServletException;

(B) public void init() throws ServletException (C) public String getInitParameter(String name) (D) public Enumeration getInitParameterNames() 答案:B

5. 关于ServletContext初始参数,以下哪两项是web.xml中正确的设定?

(A)

PARAM VALUE

(B)

PARAM VALUE

(C)

PARAM1 VALUE1 PARAM1 VALUE1

(D)

PARAM1 VALUE1

PARAM2 VALUE2

答案:B、D

6. 若要读取WEB-INF/data.txt档案的数据,以下哪个是正确的作法?

13

(A) FileInputStream input =

new FileInputStream(\

(B) FileInputStream input = new FileInputStream(

new File(\

(C) InputStream input =

getResourceAsStream(\

(D) FileInputStream input =

getResourceAsStream(\

答案:C

7. ServletContext定义与属性相关的方法是哪三个? (A) getAttribute(); (B) setAttribute(); (C) deleteAttribute() (D) removeAttribute(); 答案:A、B、D

8. 若web.xml中有以下的设定:

Some

cc.openhome.SomeServlet

param1 1

param2 2

而某个Servlet撰写了以下的程序代码:

public void init() throws ServletException { super.init();

int param1 = getInitParameter(\ int param2 = getInitParameter(\}

以下何者描述正确?

(A) 第二对可以直接撰写在第一个

14

之中

(B) param1的值为1,param2的值为1 (C) 应该在建构式中进行初始参数的取得 (D) Servlet类别原始档无法通过编译 答案:D

提示:getInitParameter()取得的是字符串。

9. 哪几个对象提供有getAttribute()方法?

(A) ServletRequest (B) HttpServlet (C) ServletConfig

(D) ServletContext 答案:A、D

提示:事实上还有一个,HttpSession对象。只不过到本章还没介绍到HttpSession的使用。

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

cc.openhome.SomeListener ...

以下何者正确?

(A) SomeListener类别要实作ServletContextListener接口 (B) 每生成一个Servlet实例就会呼叫ServletContextListener

的init()方法

(C) Web应用程序初始化之后,会呼叫ServletContextListener

的contextInitialized()方法 (D) 不需要这个标签 答案:A、C

? 实作题

1. 请使用目前所学得的Servlet相关技巧,实作一个在线留言版程序,其中必

须包括以下的功能:

(1). 有个档案会储存留言,应用程序初始时,必须从该档案中加载留言记录。 (2). 「观看留言」功能,每笔留言中包括了留言者的头像、名称与留言讯息。

15

下图是个简单的示范。

图4.8 观看留言

(3). 动态「留言窗体」功能,新增留言时使用的窗体。其中包括了输入留言

者名称、留言的字段,并可以让使用者选取头像。头像存放的目录可以由Servlet初始参数设定。窗体必须可以自动显示头像存放目录中的图

片,有多少图片就显示多少个头像。若新增留言失败也会将请求转发回窗体,此时要显示错误讯息以及使用者先前填写的名称与留言。下图是个简单的示范。

图4.9 新增留言窗体

(4). 「新增留言」功能,必须作基本的请求参数检查。留言失败及成功的

URL,必须可以由Servlet初始参数来设定。留言成功时必须显示留言

16