ServletJSP课后习题解答.docx

上传人:b****5 文档编号:30749411 上传时间:2023-08-20 格式:DOCX 页数:50 大小:410.17KB
下载 相关 举报
ServletJSP课后习题解答.docx_第1页
第1页 / 共50页
ServletJSP课后习题解答.docx_第2页
第2页 / 共50页
ServletJSP课后习题解答.docx_第3页
第3页 / 共50页
ServletJSP课后习题解答.docx_第4页
第4页 / 共50页
ServletJSP课后习题解答.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

ServletJSP课后习题解答.docx

《ServletJSP课后习题解答.docx》由会员分享,可在线阅读,更多相关《ServletJSP课后习题解答.docx(50页珍藏版)》请在冰豆网上搜索。

ServletJSP课后习题解答.docx

ServletJSP课后习题解答

第1章课后练习

●选择题

1.以下何者适合使用GET请求来发送?

(A)使用者名称、密码

(B)检视论譠页面

(C)信用卡资料

(D)查询数据的分页

答案:

B、D

提示:

敏感性数据不应使用GET来发送。

论譠页面、数据分页可以使用GET,便于使用者设定为书签。

2.以下何者应该使用POST请求来发送?

(A)使用者名称、密码

(B)档案上传

(C)搜寻引擎的结果画面

(D)BLOG文件

答案:

A、B、D

提示:

敏感性数据、大量数据不应使用GET来发送。

搜寻引擎结果画面可以使用GET,便于使用者设定为书签。

3.HTTP哪个请求方式,请求参数会出现在网址列上?

(A)GET

(B)POST

答:

A

4.以下何者适合使用GET请求来发送?

(A)检视静态页面

(B)查询商品数据

(C)新增商品资料

(D)删除商品数据

答案:

A、B

提示:

这题在考等幂操作,不改变服务器状态的查询应使用GET。

 

5.以下何者应该使用POST请求来发送?

(A)查询商品数据

(B)新增商品资料

(C)更新商品数据

(D)删除商品数据

答案:

B、C、D

提示:

这题在考非等幂操作,会改变服务器状态的查询应使用POST。

6.以下何者是属于客户端执行的程序?

(A)JSP

(B)JavaScript

(C)Servlet

(D)Applet

答案:

B、D

7.Servlet/JSP主要是属于哪个Java平台的规范之中?

(A)JavaSE

(B)JavaME

(C)JavaEE

答:

C

8.Servlet/JSP必须基于哪一类型的容器才能提供服务?

(A)Applet容器

(B)应用程序客户端容器

(C)Web容器

(D)EJB容器

答:

C

9.Web容器在收到浏览器请求时,会如何处理请求?

(A)使用单一执行绪处理所有请求

(B)一个请求就建立一个执行绪来处理请求

(C)一个请求就建立一个行程来处理请求

(D)一个请求就执行一个容器来处理请求

答:

B

 

10.JavaEE中各技术标准最后将由什么文件明订规范?

(A)JCP

(B)JSR

(C)JDK

答:

B

提示:

JCP是组织名称。

JDK是Java开发工具箱名称。

第2章课后练习

●选择题

1.若要针对HTTP请求撰写Servlet类别,以下何者是正确的作法?

(A)实作Servlet界面

(B)继承GenericServlet

(C)继承HttpServlet

(D)直接定义一个结尾名称为Servlet的类别

答案:

C

2.续上题,如何针对HTTP的GET请求进行处理与响应?

(A)重新定义service()方法

(B)重新定义doGet()方法

(C)定义一个方法名称为doService()

(D)定义一个方法名称为get()

答案:

B

提示:

不建议也不应重新定义HttpServlet所继承下来的service()方法。

3.HttpServlet是定义在哪个套件之中?

(A)javax.servlet

(B)javax.servlet.http

(C)java.http

(D)javax.http

答案:

B

提示:

与Servlet定义相关的类别或接口都位于javax.servlet套件之中,像是Servlet、GenericServlet、ServletRequest、ServletResponse等。

与HTTP定义相关的类别或接口都位于javax.servlet.http套件之中,像是HttpServlet、HttpServletRequest、HttpServletResponse等。

4.你在web.xml中定义了以下的内容:

Goodbye

cc.openhome.LogutServlet

GoodBye

/goodbye

哪个URL可以正确的要求Servlet进行请求处理?

(A)/GoodBye

(B)/goodbye.do

(C)/LoguotServlet

(D)/goodbye

答案:

D

5.在Web容器中,以下哪两个类别的实例分别代表HTTP请求与响应对象?

(A)HttpRequest

(B)HttpServletRequest

(C)HttpServletResponse

(D)HttpPrintWriter

答案:

B、C

6.在Web应用程序中,何者负责将HTTP请求转换为HttpServletRequest物件?

(A)Servlet物件

(B)HTTP服务器

(C)Web容器

(D)JSP网页

答案:

C

7.在Web应用程序的档案与目录结构中,web.xml是直接放置在哪个目录之中?

(A)WEB-INF目录

(B)conf目录

(C)lib目录

(D)classes目录

答案:

A

8.你在web.xml中定义了以下的内容:

HelloServlet

cc.openhome.HelloServlet

HelloServlet

/hello

这个web.xml中的定义有哪些错误?

(A)标签中的设定一定要用.do作结尾

(B)标签应改为,结尾标签名称也要修改

(C)标签应改为,结尾标签名称也要修改

(D)标签应改为,结尾标签名称也要修改

答案:

B、C

提示:

可以无需.do结尾,也可以用万用字符(wildcard),例如*.do将会让所有以.do结尾的请求由该Servlet进行处理。

9.在MVC架构中,谁负责通知应用程序客户端,应用程序本身有状态改变?

(A)模型(Model)

(B)视图(View)

(C)控制器(Controller)

答案:

A

10.MVC与Model2架构最大的差别在于?

(A)Model2架构的视图是由HTML组成

(B)Model2架构中的模型无法通知视图状态已更新

(C)MVC架构是基于请求/响应模型

(D)MVC架构只能用于单机应用程序

答案:

B

提示:

Model2架构中呈现视图的技术并没有限制。

MVC架构也可以应用于3-tier的网络架构中,其中模型通知视图时,可以透过Socket联机来进行。

●实作题

1.讲师提示:

这个练习在让学生动手实作HttpServlet的继承、web.xml的定义,并能够自行查询在线API文件,了解HttpServletRequest有哪些方法可以利用。

 

2.提示:

这个练习在让学生动作撰写窗体(学生必须自行学习基本的HTML),了解GET与POST如何在Servlet中进行处理,学生必须重新定义doPost()方法,并了解如何在Servlet中撰写判断分支来呈现不同条件下的结果画面。

第3章课后练习

课后练习

●选择题

1.以下的空格应该填入哪个方法?

response.setContentType("text/html;charset=UTF-8");

PrintWriterout=response.____________;

out.println("");

...

(A)getPrintWriter()

(B)getWriter()

(C)getBufferedWriter()

(D)getOutputWriter()

答案:

B

2.请问以下的Servlet程序片段输出结果为何?

out.println("第一个Servlet程序");

out.flush();

request.getRequestDispatcher("message.jsp")

.forward(request,response);

out.println("Hello!

World!

");

(A)显示"第一个Servlet程序"后转发message.jsp

(B)显示"第一个Servlet程序"与"Hello!

World!

"

(C)直接转发给message.jsp进行响应

(D)丢出IllegalStateException

答案:

A

提示:

在flush()之后响应已确认,此时再forward()就会发生IllegalStateException。

3.你将secret.jsp档案放在WEB-INF目录中,哪个方式或程序片段可以正确让secret.jsp进行响应?

(A)使用浏览器请求/WEB-INF/secret.jsp

(B)request.getRequestDispatcher("/WEB-INF/secret.jsp")并进行forward()

(C)使用response.sendRedirect("/WEB-INF/secret.jsp")

(D)使用response.sendError("/WEB-INF/secret.jsp")

答案:

B

4.如果想知道使用者所使用的浏览器版本等相关讯息,可以执行哪一段程序代码:

(A)request.getHeaderParameter("User-Agent")

(B)request.getParameter("User-Agent")

(C)request.getHeader("User-Agent")

(D)request.getRequestHeader("User-Agent")

答案:

C

5.如果想取得输出串流对象对浏览器输出位数据,应该撰写哪一段程序代码?

(A)ResponseStreamout=response.getResponseStream();

(B)ResponseStreamout=response.getStream();

(C)ResponseStreamout=response.getOutputStream();

(D)ServletOutputStreamout=response.getOutputStream();

答案:

D

6.哪几个程序代码可以取得password请求参数的值?

(A)request.getParameter("password");

(B)request.getParameters("password")[0];

(C)request.getParameterValues("password")[0];

(D)request.getRequestParameter("password");

答案:

A、C

提示:

getParameterValues()会用字符串数组传回指定的请求参数值,如果请求参数只有一个值,则透过指定索引值0也可取得该值。

7.下面这个程序代码片段会输出什么结果?

PrintWriterwriter=response.getWriter();

writer.println("第一个Servlet程序");

OutputStreamstream=response.getOutputStream();

stream.println("第一个Servlet程序".getBytes());

(A)浏览器会看到两段"第一个Servlet程序"的文字

(B)浏览器会看到一段"第一个Servlet程序"的文字

(C)丢出IllegalStateException

(D)由于没有正确地设定内容类型(content-type),浏览器会提示另存新档

答案:

C

提示:

同一个请求周期中,HttpServletResponse的getWriter()与getOutputStream()只能择一使用,否则会丢出IllegalStateException。

8.如果要设置响应的内容类型标头,哪几个选项是正确的作法?

(A)response.setHeader("Content-Type","text/html");

(B)response.setContentType("text/html");

(C)response.addHeader("Content-Type","text/html");

(D)response.setContentHeader("text/html");

答案:

A、B、C

9.下面哪个选项,可以正确地追加自订标头"MyHead"的值?

(A)response.setHeader("MyHeader","Value2");

(B)response.appendHeader("MyHeader","Value2");

(C)response.addHeader("MyHeader","Value2");

(D)response.insertHeader("MyHeader","Value2");

答案:

C

10.哪几个方法是定义在HttpServletRequest中,而非由ServletRequet中继承而来?

(A)getMethod()

(B)getHeader()

(C)getParameter()

(D)getCookies()

答案:

A、B、C

提示:

与HTTP请求有关的方法,是定义在HttpServletRequest中,与通用请求有关的,是定义在ServletRequest中,例如getParameter()。

●实作题:

1.请实作一个Web应用程序,可以将使用者所发送的name请求参数值画在一张图片上(参考下图,底图可任选)。

提示:

可在搜寻引擎下关键词「动态产生图片」寻找解答。

参考

图3.20根据使用者输入动态产生图片内容

2.请实作一个Web应用程序,可动态产生使用者登入密码(参考下图,仅需先确作出动态产生密码图片的功能即可,送出窗体后的密码验证功能还不用实现)。

提示:

主要是上一题练习的延伸,随机产生四个数字,再画到图片上。

这个练习可结合Session属性的运用,就可实作出登入的部份,在第5章讲到Session对象时会再要求实作登入的机制。

图3.21动态产生登入密码

 

第4章课后练习

课后练习

●选择题

1.如果是整个应用程序会共享的数据,则适合存放在哪个对象之中成为属性?

(A)ServletConfig

(B)ServletContext

(C)ServletRequest

(D)Session

答案:

B

2.如果要取得ServletContext初始参数,则可以执行哪个方法?

(A)getContextParameter()

(B)getParameter()

(C)getInitParameter()

(D)getAttribute()

答案:

C

3.假设一段程序代码如下,其中PARAM为设定于web.xml中的初始参数:

publicclassSomeServletextendsHttpServlet{

privateStringparam;

publicSomeServlet(){

param=getInitParameter("PARAM");

}

}

以下何者正确?

(A)param被设定为web.xml中的初始参数值

(B)无法通过编译

(C)应该改用getServletParameter()方法

(D)发生NullPointerException

答案:

D

提示:

getInitParameter()也是透过ServletConfig来取得初始参数,在建构式执行时,由于尚未进行Servlet初始化,ServletConfig尚未经由init()方法传入Servlet之中,所以建构式中尝试取得初始参数时就会发生NullPointerException。

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

(A)publicvoidinit(ServletConfigconfig)throwsServletException;

(B)publicvoidinit()throwsServletException

(C)publicStringgetInitParameter(String name)

(D)publicEnumerationgetInitParameterNames()

答案:

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档案的数据,以下哪个是正确的作法?

(A)FileInputStreaminput=

newFileInputStream("/WEB-INF/data.txt");

(B)FileInputStreaminput=newFileInputStream(

newFile("/WEB-INF/data.txt"));

(C)InputStreaminput=

getResourceAsStream("/WEB-INF/data.txt");

(D)FileInputStreaminput=

getResourceAsStream("/WEB-INF/data.txt");

答案:

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撰写了以下的程序代码:

publicvoidinit()throwsServletException{

super.init();

intparam1=getInitParameter("param1");

intparam2=getInitParameter("param2");

}

以下何者描述正确?

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

(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).「观看留言」功能,每笔留言中包括了留言者的头像、名称与留言讯息。

下图是个简单的示范。

图4.8观看留言

(3).动态「留言窗体」功能,新增留言时使用的窗体。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1