android测试题卷答案解析.docx
- 文档编号:9191727
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:54
- 大小:38.75KB
android测试题卷答案解析.docx
《android测试题卷答案解析.docx》由会员分享,可在线阅读,更多相关《android测试题卷答案解析.docx(54页珍藏版)》请在冰豆网上搜索。
android测试题卷答案解析
第一天:
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匹配规则:
①完全匹配:
以“/”开头,以字母(非“*”)结束
如:
②目录匹配:
以“/”开头且以“/*”结尾
如:
③扩展名匹配:
以“*.”开头,以扩展名结束
如:
④ “/” 用来表明对应的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") 根据name获取value值
request.getParameterNames("name") 根据name获取一组值,如多选框
3、
在web.xml中下面哪一个标签标示servlet的URL映射()(10分)
A、mapping
B、servlet-url
C、url-mapping
D、servlet-mapping
参考答案:
D
答案说明:
多选题共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("name") 方法的作用。
(20分)
参考答案:
request.getContextPath() 获取根路径;
request.getRequestURL(); 获取请求的url;
request.getParameter("name") 根据name获取value值;
答案说明:
request对象是请求对象。
请求一次就创建一个request对象,并且存储了请求的信息。
所以在表单提交中,我们可以通过request对象获取用户提交的所有信息。
HttpServletRequest类中的常用方法:
request.getContextPath() 获取根路径。
request.getParameter("name") 根据name获取value值
request.getParameterNames("name") 根据name获取一组值,如多选框
request.getRequestURL(); 获取请求的url
request.getRequestDispatcher(" 路径 ").forward(request,response) 转发是一次请求
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
publicclassHelloServletextendsHttpServlet{
//处理get请求
Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
PrintWriterwriter=resp.getWriter();//向浏览器的输出流
writer.println("");
writer.println("
");writer.println("hiczbk");
writer.println("");
writer.println("");
}
//处理post请求
Override
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
doGet(req,resp);
}
}
[2]重写2个方法doGet,doPost
[3]在在web.xml中配置
第二天:
1、
关于ANR描述错误的是( )。
(10分)
A、ANR全称是ApplicationNotResponding
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是ApplicationNotResponse应用无响应
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布局文件:
android="schemas.android./apk/res/android" xmlns: tools="schemas.android./tools" android: layout_width="match_parent" android: layout_height="match_parent" android: orientation="vertical" tools: context=".MainActivity">
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 测试 答案 解析