android 测试题 答案Word文档下载推荐.docx
《android 测试题 答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《android 测试题 答案Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。
下列选项中,哪个方法可以准确的获取请求页面的一个文本框的输入(文本框的名称为name)
()。
A、request.getParamter(name)
B、request.getParamter(“name”)
C、request.getParamterValues(name)
D、request.getParamterValues(“name”)
request.getParameter("
name"
)
根据name获取value值
request.getParameterNames("
根据name获取一组值,如多选框
3、
在web.xml中下面哪一个标签标示servlet的URL映射()(10分)
A、mapping
B、servlet-url
C、url-mapping
D、servlet-mapping
D
servlet-mapping>
servlet-name>
HelloServlet<
/servlet-name>
/hello<
/servlet-mapping>
多选题共2题满分:
20分
4、
下列选项中,说法正确的是()。
A、客户端每次请求都会创建一个request对和response对象并且把这2个对象传递到doGet方法和doPost方法中
B、在浏览器的地址栏输入地址,点击回车,这个过程称为一次请求
C、HttpServletResponse,是一个接口,父接口是Servlet
D、服务器端根据客户端的请求,返回数据到浏览器中进行显示,这个过程称为一次响应
A,B,D
C错误原因:
HttpServletResponse,是一个接口,父接口是ServletResponse
5、
下列选项中,()是http相应包含的组成部分。
A、响应体
B、响应头
C、响应尾
D、响应行
HttpServletResponse,是一个接口,父接口是ServletResponse,代表响应对象。
http的响应包含三部分组成:
第一部分:
响应行l第二部分:
响应头l第三部分:
响应体
判断题共0题满分:
0分
填空题共1题满分:
10分
6、
_____是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
Servlet
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
Servlet是位于Web
服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
简答题共1题满分:
7、
请简述HttpServletRequest实例的getContextPath()
方法,getRequestURL()方法和getParameter("
方法的作用。
(20分)
request.getContextPath()
获取根路径;
request.getRequestURL();
获取请求的url;
根据name获取value值;
request对象是请求对象。
请求一次就创建一个request对象,并且存储了请求的信息。
所以在表单提交中,我们可以通过request对象获取用户提交的所有信息。
HttpServletRequest类中的常用方法:
获取根路径。
获取请求的url
request.getRequestDispatcher("
路径
"
).forward(request,response)
转发是一次请求
request.getCookie();
获取请求中的cookie
request.getSession(true)获取session。
默认参数为true表示如果没有获取到,则重新创建并返回;
false如果没有获取到,返回null
代码题共1题满分:
8、
写一个HelloServlet
,实现向页面输出内容hi
czbk。
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("
html>
);
body>
hiczbk"
/body>
/html>
}
//处理post请求
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
doGet(req,resp);
}
[2]重写2个方法doGet,doPost
[3]在在web.xml中配置
servlet>
servlet-class>
cn.itcast.servlet.ServletDemo1<
/servlet-class>
/servlet>
第二天:
1、
关于ANR描述错误的是(
)。
A、ANR全称是ApplicationNotResponding
B、出现ANR异常不会影响用户使用
C、在主线程中执行了耗时的操作会引起ANR
D、应用超过5秒钟不响应用户操作会出现anr
在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:
Application
Not
Responding)对话框。
用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。
因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。
关于handler消息分发机制,下列(
)方法可以延时发送消息。
A、sendEmpty(..)
B、sendEmptyMessage(..)
C、sendMessageDelayed(..)
D、sendMessage(..)
C
我们利用Handler的sendMessageDelayed(msg,
secs*1000),可以要求secs秒后,将信息放置在队列中,排队处理,很简单就能实现。
关于Android中消息机制说法正确的是()。
A、Handler只能用来发送消息
B、Handler是用来发送消息和处理消息的
C、MessageQueue是用来收集消息并主动发送消息
D、Looper是主消息的循环器.Looper是由handler创建的
Handler顾名思义就是处理者的意思,它主要用于发送消息和处理消息。
一般使用Handelr对象的sendMessage()方法发送消息,发出的消息经过一系列的辗转处理后,最终会传递到Handler对象的handlerMessage()方法中.
下列选项中说法正确的是()
。
A、避免ANR,可以把耗时操作放到子线程
B、ANR是ApplicationNotResponse应用无响应
C、只有在主线程(UI线程)才可以更新UI
D、消息机制可以用来处理这种更新UI的情况
A,B,C,D
(1)ANR
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
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的情况。
由于子线程不能更新UI代码,我们可以使用下列哪种方式()解决这个问题。
A、在子线程中使用setImageView(..)设置图片
B、调用runOnUiThread(..)方法中更新ui
C、在子线程中用handler发送message给主线程,然后在主线程中更新ui
D、Thread中直接更新ui
B,C
runOnUiThread(),顾名思义就是运行在UI线程,也就是主线程。
1.
如果仅仅就是更新UI,那么我们可以用runOnUiThread(),当中的代码都会在主线程中执行。
2.
当我们需要传递参数的时候,这时候就需要使用handler来实现
_____
主要用于存放所有通过Handler发送的消息。
MessageQueue
Message
Message是在线程之间传递的消息,它可以在内部携带少量的信息what字段,用于在不同线程之间交换数据。
除此之外还可以使用arg1和arg2字段来携带一些整型数据,使用obj字段携带一个Object对象。
Handler
Handler顾名思义也就是处理者的意思,它主要是用于发送和处理消息的。
发送消息一般是使用Handler的sendMessage()方法,而发出的消息经过一系列地辗转处理后,最终会传递到Handler的handleMessage()方法中。
3.
MessageQueue是消息队列的意思,它主要用于存放所有通过Handler发送的消息。
这部分消息会一直存在于消息队列中,等待被处理。
每个线程中只会有一个MessageQueue对象。
4.
Looper
Looper是每个线程中的MessageQueue的管家,调用Looper的loop()方法后,就会进入到一个无限循环当中,然后每当发现MessageQueue中存在一条消息,就会将它取出,并传递到Handler的handleMessage()方法中。
每个线程中也只会有一个Looper对象。
简单介绍一下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.
编写一个图片查看器的案例,访问指定的url地址,并将获取到的图片更新ui界面。
(请使用除handler以外的方式)。
子线程不能更新ui,所以通过runOnUiThread在主线程中更新ui.
Xml布局文件:
LinearLayoutxmlns:
android="
xmlns:
tools="
android:
layout_width="
match_parent"
layout_height="
orientation="
vertical"
tools:
context="
.MainActivity"
>
<
Button
wrap_content"
onClick="
click"
text="
查看"
/>
ImageView
id="
@+id/iv"
/LinearLayout>
Java代码中:
publicclassMainActivityextendsActivity{
privateImageViewiv;
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//[1]找到我们关心的控件
iv=(ImageView)findViewById(R.id.iv);
//[2]点击按钮进行查看指定路径的源码
publicvoidclick(Viewv){
newThread(){
publicvoidrun(){
Stringpath="
try{
URLurl=newURL(path);
HttpURLConnectionconn=(HttpURLConnection)
url.openConnection();
conn.setRequestMethod("
GET"
conn.setConnectTimeout(5000);
intcode=conn.getResponseCode();
if(code==200){
InputStreaminputStream=conn.getInputStream();
finalBitmapbitmap=
BitmapFactory.decodeStream(inputStream);
runOnUiThread(newRunnable(){
publicvoidrun(){
iv.setImageBitmap(cacheBitmap);
}
});
}
}catch(Exceptione){
e.printStackTrace();
}
};
}.start();
第三天:
1,当前Activity被其他Activity覆盖或者锁屏,系统会调用()生命周期方法
,暂停当前Activity的执行。
A、onDestroy()
B、onStop()
C、onPasue()
D、以上都会调用
启动Activity:
系统会先调用onCreate()方法,然后调用onStart()方法,最后调用onResume()方法,Activity进入运行状态。
当前Activity被其他Activity覆盖或者锁屏:
系统会调用onPasue()方法,暂停当前Activity的执行。
当前Activity由覆盖恢复到前台或者被解锁屏:
系统会调用onResume()方法,再次进入运行状态。
当前Activity转到新的Activity界面或者Home键回到主屏,自居后台:
系统会调用onPasue()方法,然后调用onStop()方法,进入停滞状态。
5.
用户退回到此Activity:
系统会调用onRestart()方法,然后调用onStart()方法,最后调用onResume()方法,再次进入运行状态。
6.
当前Activity处于被覆盖状态或者后台不可见状态:
有的时候系统内存不足,会杀死该Activity,而后用户退回到该Activity时:
再次调用onCreate(),onStart(),onResume()方法,进入运行状态。
7.
用户退出该Activity:
系统会调用onPause()方法,然后onStop()方法,最后onDestroy()方法,结束该Activity。
Intent中如果既要设置类型又要设置数据,需要使用()方法。
A、setData(..)
B、setType(..)
C、setDataAndType(..)
D、setTypeAndData(..)
Intent.setData(data)和intent.setType(type)注意这两个方法会互相清除,意思就是:
如果先设置setData(data)后设置setType(type),那么后设置的setType(type)会把前面setData(data)设置的内容清除掉,而且会报错,反之一样,所以如果既要设置类型与数据,那么使用setDataAndType(data,type)这个方法。
使用()
管理器来完成发送短信的功能。
A、ActivityManager
B、WifiManager
C、SmsManager
D、ConnectivityManager
ActivityManager
是与系统中所有运行着的Activity交互提供了接口,主要的接口围绕着运行中的进程信息,任务信息,服务信息等。
WifiManager
类似获得wifi链接名字,判断是否链接,开关等一些和无线相关;
SmsManager
管理短信操作,如发送数据,文本和PDU短信;
ConnectivityManager
主要管理网络连接相关操作;
intent传递数据时可以传递()类型的数据。
A、Serializable
B、charsequence
C、Parcelable
D、Bundle
第一类:
简单或基本数据类型;
第二类:
传递一个Bundle;
第三类:
传递Serializable对象;
第四类:
Parcelable对象;
第五类:
Intent
return
this;
下列选项中()属于Activity的生命周期方法。
A、onCreate()
B、onStart()