android 测试题 答案

更新时间:2024-04-26 02:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一天:

1,

对于如下的一些映射关系,当请求URL为”/xxx/yyy/a.do”时,哪个Servlet会响应() Servlet1 映射到 /abc/* Servlet2 映射到 /* Servlet3 映射到 /abc Servlet4映射到*.do (10分)

A、Servlet1 B、Servlet2 C、Servlet3 D、Servlet4 参考答案:B

答案说明:url-pattern匹配规则:

①完全匹配:以“/”开头,以字母(非“*”)结束 如:/test/list.do ②目录匹配:以“/”开头且以“/*”结尾 如:/test/* /*

③扩展名匹配:以“*.”开头,以扩展名结束 如:*.do

④ “/” 用来表明对应的Servlet为应用默认的Servlet。在这种情况下Servlet路径是请求的URI去掉上下文路径并且路径信息为null。 2、

下列选项中,哪个方法可以准确的获取请求页面的一个文本框的输入(文本框的名称为name) ()。(10分)

A、request.getParamter(name) B、request.getParamter(“name”) C、request.getParamterValues(name) D、request.getParamterValues(“name”) 参考答案:B

答案说明:request.getParameter(\根据name获取value值

request.getParameterNames(\根据name获取一组值,如多选框 3、

在web.xml中下面哪一个标签标示servlet的URL映射()(10分) A、mapping B、servlet-url C、url-mapping D、servlet-mapping 参考答案:D

答案说明:

HelloServlet /hello

多选题 共2题满分:20分 4、

下列选项中,说法正确的是()。(10分)

A、客户端每次请求都会创建一个request 对和 response对象 并且把这2个对象传递到doGet方法和doPost方法中

B、在浏览器的地址栏输入地址,点击回车,这个过程称为一次请求 C、HttpServletResponse,是一个接口,父接口是Servlet

D、服务器端根据客户端的请求,返回数据到浏览器中进行显示,这个过程称为一次响应 参考答案:A,B,D

答案说明:C错误原因:HttpServletResponse,是一个接口,父接口是ServletResponse 5、

下列选项中,()是http相应包含的组成部分。(10分) A、响应体 B、响应头 C、响应尾 D、响应行

参考答案:A,B,D

答案说明:HttpServletResponse,是一个接口,父接口是ServletResponse,代表响应对象。 http的响应包含三部分组成:

第一部分:响应行?第二部分:响应头?第三部分:响应体 判断题 共0题满分:0分 填空题 共1题满分:10分 6、

_____是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。(10分) 参考答案:Servlet

答案说明:Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。 简答题 共1题满分:20分 7、

请简述HttpServletRequest实例的getContextPath() 方法,getRequestURL()方法和getParameter(\方法的作用。(20分)

参考答案:request.getContextPath() 获取根路径; request.getRequestURL(); 获取请求的url;

request.getParameter(\根据name获取value值;

答案说明:request对象是请求对象。请求一次就创建一个request对象,并且存储了请求的信息。所以在表单提交中,我们可以通过request对象获取用户提交的所有信息。 HttpServletRequest类中的常用方法:

request.getContextPath() 获取根路径。

request.getParameter(\根据name获取value值

request.getParameterNames(\根据name获取一组值,如多选框 request.getRequestURL(); 获取请求的url

request.getRequestDispatcher(\路径 \转发是一次请求 request.getCookie();获取请求中的cookie

request.getSession(true)获取session。 默认参数为true表示如果没有获取到,则重新创建并返回;false如果没有获取到,返回null 代码题 共1题满分:20分 8、

写一个HelloServlet ,实现向页面输出内容hi czbk。(20分) 参考答案:JavaWeb101.txt 下载 答案说明:实现Servlet (1)实现Servlet接口

如果实现接口,需要把接口里面的方法都实现。 (2)继承GenericServlet, HttpServlet类

如果继承类,不需要把类中的方法都实现。

(3)需要web服务器知道java程序不是一个普通的java程序,而是一个servlet 通过配置进行操作,在web项目中,web.xml里面进行配置。 [1]定义一个类继承httpServlet

public class HelloServlet extends HttpServlet { //处理get请求 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter writer = resp.getWriter();//向浏览器的输出流 writer.println(\ writer.println(\ writer.println(\ writer.println(\ writer.println(\ } //处理post请求 @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }

[2]重写2个方法 doGet,doPost [3]在在web.xml中配置

HelloServlet

cn.itcast.servlet.ServletDemo1

HelloServlet /hello

第二天:

1、

关于ANR描述错误的是( )。(10分)

A、ANR 全称是 Application Not Responding B、出现ANR 异常不会影响用户使用

C、在主线程中执行了耗时的操作 会引起ANR D、应用超过5秒钟不响应用户操作会出现anr 参考答案:B

答案说明:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。 2、

关于handler消息分发机制,下列( )方法可以延时发送消息。(10分) A、sendEmpty(..)

B、sendEmptyMessage(..) C、sendMessageDelayed(..) D、sendMessage(..) 参考答案:C

答案说明:我们利用Handler的sendMessageDelayed(msg, secs*1000),可以要求secs秒后,将信息放置在队列中,排队处理,很简单就能实现。 3、

关于Android中消息机制说法正确的是()。(10分) A、Handler只能用来发送消息

B、Handler是用来发送消息和处理消息的

C、MessageQueue是用来收集消息并主动发送消息

D、Looper是主消息的循环器.Looper是由handler创建的 参考答案:B

答案说明:Handler顾名思义就是处理者的意思,它主要用于发送消息和处理消息。一般使用Handelr对象的sendMessage()方法发送消息,发出的消息经过一系列的辗转处理后,最终会传递到Handler对象的handlerMessage()方法中. 多选题 共2题满分:20分 4、

下列选项中说法正确的是() 。(10分) A、避免ANR,可以把耗时操作放到子线程

B、ANR是Application Not Response 应用无响应 C、只有在主线程(UI线程)才可以更新UI D、消息机制可以用来处理这种更新UI的情况 参考答案:A,B,C,D

答案说明:(1)ANR Application Not Response 应用无响应。主线程(UI线程)。

(2)如果在主线程中进行了耗时的操作(比如连接网络,拷贝大数据)Thread.sleep(); (3)避免ANR,可以把耗时操作放到子线程。

(4)在4.0之后谷歌强制要求连接网络不能在主线程中进行访问。

09-26 01:49:03.818: W/System.err(1638): android.os.NetworkOnMainThreadException (5)只有在主线程(UI线程)才可以更新UI

09-26 01:51:50.050: W/System.err(1708): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

(6)消息机制可以用来处理这种更新UI的情况。 5、

由于子线程不能更新UI代码,我们可以使用下列哪种方式()解决这个问题。(10分) A、在子线程中使用setImageView(..)设置图片 B、调用runOnUiThread(.. )方法中更新ui

C、在子线程中用handler发送message给主线程,然后在主线程中更新ui D、Thread中直接更新ui 参考答案:B,C

答案说明:runOnUiThread(),顾名思义就是运行在UI线程,也就是主线程。

1. 如果仅仅就是更新UI,那么我们可以用runOnUiThread(),当中的代码都会在主线程中执行。2. 当我们需要传递参数的时候,这时候就需要使用handler来实现 判断题 共0题满分:0分 填空题 共1题满分:10分 6、

_____ 主要用于存放所有通过Handler发送的消息。 (10分)

参考答案:MessageQueue 答案说明:1. Message

Message是在线程之间传递的消息,它可以在内部携带少量的信息what字段,用于在不同线程之间交换数据。除此之外还可以使用arg1和arg2字段来携带一些整型数据,使用obj字段携带一个Object对象。 2. Handler

Handler顾名思义也就是处理者的意思,它主要是用于发送和处理消息的。发送消息一般是使用Handler的sendMessage()方法,而发出的消息经过一系列地辗转处理后,最终会传递到Handler的handleMessage()方法中。 3. MessageQueue

MessageQueue是消息队列的意思,它主要用于存放所有通过Handler发送的消息。这部分消息会一直存在于消息队列中,等待被处理。每个线程中只会有一个MessageQueue对象。 4. Looper

Looper是每个线程中的MessageQueue的管家,调用Looper的loop()方法后,就会进入到一个无限循环当中,然后每当发现MessageQueue中存在一条消息,就会将它取出,并传递到Handler的handleMessage()方法中。每个线程中也只会有一个Looper对象。 简答题 共1题满分:20分 7、

简单介绍一下Handler使用步骤.(20分) 参考答案:1 在主线程创建Handler对象

Private Handler handler = new Handler(){ }

2 重写handlemessage方法

3 拿着主线程创建的Handler发送一条消息 handler.sendMessage();

4 重写的handlemessage方法就会接收到我们发送的消息.

答案说明:Android4.0以后不能在UI线程访问网络,而子线程也不能更新UI界面。为了根据下载进度实时更新UI界面,就需要用到Handler消息机制来实现线程间的通信,一般我们在主线程创建Handler对象.然后开启一个子线程去访问网络处理耗时的任务,然后通过主线程创建的Handler发送消息,消息就被加入到了消息队列MessageQueue中,系统里有一MainLooper(主消息的循环器),不断的监视消息队列,一旦发现消息队列里有消息,就把消息给取出来交给Handler,我们重写Handler的handleMessage()方法,在这个方法里面去更新ui. 代码题 共1题满分:20分 8、

编写一个图片查看器的案例,访问指定的url地址,并将获取到的图片更新ui界面。(请使用除handler以外的方式)。(20分)

答案说明:子线程不能更新ui,所以通过runOnUiThread在主线程中更新ui. Xml布局文件:

Top