资源描述
第6章 Android客户端与服务端交互,主讲:朱强,E-mail:,博客,:http:/ EE技术在,Android开发中的应用,理解,Android应用和传统Web应用的区别,掌握JSON的基本使用,掌握JSONObject和,JSONArray的使用,理解GET和POST的区别,掌握Android客户端发送请求的方式,会进行带服务端的Android应用开发,概述,对于,大多数的Android应用,,都是需要服务端的配合才能正常工作的。,Android客户端运行在用户手机上,负责提供用户的操作界面。,服务端负责处理Android客户端的请求,包括查询和保存数据等。,一般而言,服务端就是采用,传统的Web技术,来实现的。所以,掌握了任何一种Web技术的程序员,都可以从事Android应用的服务端开发工作。,服务端的主要技术,(1)ASP技术:比较古老,微软推出的,现在用的比较少了。,(2)ASP.NET技术:微软推出的,学校一般会开设这个课程,它一般的组合是:ASP.NET+SQL Server。,(3)PHP技术:开源的、流行的、做网站用的比较多的Web技术。它一般的组合是:PHP+MySQL。,(4),Java EE技术,:Oracle公司的,强大的、做大型Web技术。,高薪的选择,。大型项目:Java EE+Oracle,中小型项目:Java EE+MySQL,本节课将采用,Java EE技术,进行演示。,Android客户端和服务端交互过程,Android,应用,HTTP协议,服务端,应用,(Java EE,应用),GET方式,POST方式,数据库,(MySQL),HTTP协议(GET和POST),超文本传输协议(HTTP,HyperText Transfer Protocol)是,互联网上应用,最为广泛的一种网络协议。,网站(Web应用),是使用HTTP协议的常见的场景。,HTTP协议中,发送数据有两种常见的方式:,(1)GET方式:,GET方式发送的数据长度有限,一般通过URL地址上来发送。,例如:,http:/ EE(Servlet+JDBC),2、Android应用:,Android,+Java EE(Servlet+JDBC),这两类应用的开发,是咱们,必须要掌握的技术,。它不仅在学习中有着重要的地位,同时社会需要求旺盛的方向。,JSON,随着标准化的推进,一般Android客户端和服务端之间按照,JSON数据格式,来进行交互。,JSON(JavaScript Object Notation,J,a,vaScript 对象表示法,)是一种,轻量级的数据交换格式,.类似 XML。JSON 比 XML 更小、更快,更易解析。,JSON 使用 JavaScript 语法来描述数据对象,但是,JSON 是,纯文本,,独,立于语言和平台,。,JSON 具有“,自我描述性,”(人类可读),JSON的两种典型格式,1、,JSON对象,:用于表达一条记录。,JSON对象是由“键-值”对组成的数据结构.,例:,name,张三,sex,男,2、,JSON数组,:用于表达多条记录。,name,张三,sex,男,name,李四,sex,女,Android客户端如何发送GET或POST请求?,Apache开源组织提供了HttpClient工具可以实现发送POST或GET请求。,为了简化大家的学习,,对于发送的过程,,,已经做成了一个类,HttpUtil,。大家,学会怎么调用即可,。,这个类有一个常量:BASE_URL,用于定义服务端的地址,有两个方法:getRequest和postRequest,分别用于通过GET方式和POST方式来发送据,方法,返回值,就是,服务器的响应数据,。,如何把数据组装成JSON格式的?,1、Android客户端:,Android SDK的,org.json包,里已经提供了,JSONObject、,JSONArray两个类来实现。,2、服务端:,Java并身并未提供对JSON的支持,但是已经有了,第三方类库(.jar文件),来实现了JSON的操作,操作了,JSONObject、,JSONArray类,,我们直接引入到项目中即可。,实战项目:,网上逃犯查询系统,今天我们开发第1个功能:用户登录。,1、Android端,在Android开发环境中,,创建,Android,项目,,名为:,crimeclient,2、服务端,在MyEclipse中,,创建Web项目,,名为:,crimeserver,3、数据库(MySQL),通过navicat,在,MySQL中创建数据库,crimedb,今天先创建一张表:用户表(,user,),用户指的是使用该系统,公安民警,Android端,登录界面,Android项目结构图,LoginActivity.java,LoginActivity.java,HttpUtil.java,1,切记:在模拟器中要访问本地真实电脑,本地电脑IP用10.0.2.2 或实际IP。,2,因为在模拟器连接本地服务器,所以需要,Android应用有联网的权限,,所以在android应用中的AndroidManifest.xml文件中增加“联网“权限。,代码如下:,uses-permission android:name=android.permission.INTERNET/,activity_login.xml,服务端,1个是数据库,的驱动包,1个是解析,JSON格式的,工具类包,登录的Servlet,用户DAO(JDBC),Login.java(Servlet),Login.java(Servlet),UserDAO.java(JDBC),数据库,user表结构,登录成功效果,
展开阅读全文