精讲第4节前后台交互_第1页
精讲第4节前后台交互_第2页
精讲第4节前后台交互_第3页
精讲第4节前后台交互_第4页
精讲第4节前后台交互_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android开发前后台交互1.如何向后台发送请求(不带参数,带参数)2.接受后台返回基本类型数据3.接受后台返回得对象4.接受后台返回的集合前后台交互1.用户登陆,将用户名密码传回后台进行判断2.接受后台返回登陆结果,若登陆成功跳转到欢迎界面3.欢迎界面包含获取个人信息和获取所有人信息的按钮4.解析后台返回个人信息并显示5.解析后台返回所有人信息并显示前后台交互案例前后台如何交互1.前后台如何交互?通过什么交互?通过什么传递数据?Json: 是一种轻量级的数据交换格式。 JSON采用完全独立于语言的文本格式,其中JSON建构有对象,数组两种结构。对象:对象在js中表示为“”扩起来的内容,数据

2、结构为 key:value,key:value,.的键值对的结构,key为对象的属性,value为对应的属性值。姓名 : 大憨,年龄 : 24数组:以下包括了一个学生数组,而学生数组中的值又是两个Json对象学生 :姓名 : 小明 , 年龄 : 23,姓名 : 大憨 , 年龄 : 24如果是一个json格式的字符串传到后台,需要怎么对其处理?如果前台页面需要后台返回的是一个json的字符串,那么后台是怎么把json格式的字符串给拼装起来的呢?JsonObject, JsonArray1.采用JsonObject .addProperty方法可以添加基本类型2.采用JsonArray.add()

3、方法可以添加对象到数组前后台如何交互后台概况1.简单回顾jsp+servlet的实现过程,温习web.xml 的配置2.建立3个Servlet并在web.xml进行配置,访问得路径如下:用户登陆: 查询个人信息: 查询所有人信息: 向客户端写数据通过HttpServletResponse向前台写数据后台用户登陆(CheckLogin.java)1.继承于HttpServlet,重写doPost及doGet方法2.通过req.getParameter(key)获取前台传来的值3.针对用户名和密码查询数据库判断登陆结果(true,false)4.封装结果到JsonObject对象中5.将数据发送到

4、前台后台返回个人信息(GetMyMsg.java)1.继承于HttpServlet,重写doPost及doGet方法2.查询数据库个人信息3.封装结果到JsonObject对象中4.将数据发送到前台后台返回所用用户信息(GetAllMsg.java)1.继承于HttpServlet,重写doPost及doGet方法2.查询数据库所有人信息3.封装结果到JsonArray数组中4.将数据发送到前台前台AsyncTask(异步线程) 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件

5、以及屏幕绘图事件,并把相关的事件分发到对应的组件进行处 理。所以主线程通常又被叫做UI线程。 例如获取网络资源,这种涉及到网络操作的程序一般都是需要开一个线程完成网络访问,但是在获得网络资源后,是不能直接在网络操作线程中调用TextView.setText()的.因为其他线程中是不能直接访问主UI线程成员 。 所以android中提供了子线程访问主线程的方法,我们一般使用Hanlder 。但是这些类或方法同样会使你的代码很复杂很难理解。然而当你需要实现一些很复杂的操作并需要频繁地更新UI时这会变得更糟糕。 为了解决这个问题,Android提供了一个工具类:AsyncTask,它使创建需要与用户

6、界面交互的长时间运行的任务变得更简单。相对来说AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和Handler即可实现。 AsyncTask是抽象类.AsyncTask定义了三种泛型类型 Params,Progress和Result。 Params 启动任务执行的输入参数,比如HTTP请求的URL。 Progress 后台任务执行的百分比。 Result 后台执行任务最终返回的结果,比如String。 其中Void 类是一个不可实例化的占位符类,它持有对表示 Java 关键字 void 的 Class 对象的引用 前台AsyncTask(异步线程)继承于AsyncTask的

7、并执行四个步骤,每一步都对应一个回调方法,这些方法不应该由应用程序调用,开发者需要做的就是实现这些方法。 onPreExecute(), 该方法将在执行实际的后台操作前被UI thread调用。可以在该方法中做一些准备工作,如在界面上显示一个进度条。 doInBackground(Params.), 将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。这里将主要负责执行那些很耗时的后台计算工作。可以调用 publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。 onProgressUpdate(Progress.),在publishProg

8、ress方法被调用后,UI thread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。 onPostExecute(Result), 在doInBackground 执行完成后,onPostExecute 方法将被UI thread调用,后台的计算结果将通过该方法传递到UI thread. 前台AsyncTask(异步线程)前台net包1.接口类HttpCallBack,回调方法callback(String respone),返回后台请求返回的数据2. HttpTask继承于AsyncTask,开启线程获取网络数据3. HttpHelper向后台发送数据并获取后台返回数据前台登陆界面1.通过NameValuePair封装用户名和密码2将访问地址和封装的信息发送给HttpTask线程3.通过继承于HttpCallBack的回调函数callback来获取后台返回的数据4.解析数据(基本类型boolean)前台获取个人信息1.将访问地址发送给HttpTask线程3.通过继承于HttpCal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论