Presentation is loading. Please wait.

Presentation is loading. Please wait.

第11章 Android客户端与服务器交互.

Similar presentations


Presentation on theme: "第11章 Android客户端与服务器交互."— Presentation transcript:

1 第11章 Android客户端与服务器交互

2 本章知识结构图

3 高校信息查询平台

4 高校信息查询平台

5 HTTP协议 HTTP协议即超文本传输协议(Hypertext Transfer Protocol),是建立在TCP协议之上的一种应用,它是一种基于请求/响应的通信协议,每次连接只做一次请求/响应,服务器响应客户端请求后,就不会不会记录客户端的信息,更不会维护客户端的状态,因此HTTP又称为无状态的通信协议。 由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”、“无状态”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

6 HTTP协议 1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST等,每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,因而通信速度很快。 2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 3、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 4、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

7 GET和POST的区别 Get将需要传递的数据按照“键=值”对的形式,添加到URL的后面,并且两者使用“?”连接,而多个变量之间使用“&”连接;Post是将传递的数据放在请求的数据体中,不会在URL中显示; Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前,Post的所有操作对用户来说都是不可见的; Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post。

8 Apache HttpClient API HttpClient:是HTTP客户端的接口,该接口封装了执行Http请求所需要的各种对象,这些对象可以处理cookie、授权、连接管理以及其他一些特性。HttpClient的线程安全依赖于具体的客户端的实现和配置。 HttpGet:该类采用GET方式发送HTTP请求,通常将请求的URL作为参数传给该类的构造方法; HttpPost:该类采用POST方式发送HTTP请求,通常将请求的URL作为参数传给该类的构造方法; HttpResponse:该接口封装了HTTP的响应信息,通过调用相应方法可以获取HTTP响应信息,例如获取响应状态、响应内容等。 HttpEntity:该类封装了HTTP信息,通过该类可以获取HTTP请求或响应的内容、长度、类型、编码方式等信息,HttpEntity对象可以通过Http消息发送和接收,既可以存在于请求消息中,也可以存在于响应消息中。

9 HttpClient执行过程(GET请求)

10 HttpClient执行过程(POST请求)

11 Apache HttpClient API 使用HttpClient访问Http资源的步骤:
1、创建HttpGet或HttpPost对象,将需请求的URL通过构造方法传入HttpGet或HttpPost对象。 2、使用DefaultHttpClient类的execute()方法发送HTTP GET或HTTP POST请求,并返回HttpResponse对象。 3、通过HttpResponse接口的getEntity()方法返回响应信息,并进行相应的处理。 注意:如果使用HttpPost提交HTTP POST请求,还需要使用HttpPost类的setEntity()方法设置请求参数。

12 Tomcat服务器 Tomcat服务器是一个免费的、开源的Web应用服务器,它是一个轻量级应用服务器, 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试Java Web程序的首选。 安装和使用中需注意: 1、设置Tomcat的端口号:默认情况下,该端口为8080,如果需要设置,最好选一个1024以上的端口号,1024以内的端口大部分都被系统所用,以避免端口冲突。 2、设置Tomcat管理员账户和密码,管理应用时需登录; 3、启动Tomcat:直接双击Tomcat安装路径下的bin路径中的tomcat6.exe即可。重复启动Tomcat,控制台将会报错并直接退出,因为第二次启动时,端口已经被占用,必须关闭之前的Tomcat,才能启动。

13 Servlet介绍 Servlet(Server+let)是在服务器上运行的小程序,具有独立于平台和协议的特性,可以生成动态的Web页面,用于处理及响应客户端的请求,担当客户请求(Web浏览器或其它HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet实质上是个特殊的Java类,该类继承于Servlet或其子类(例如HttpServlet),Servlet用于处理和响应客户端的请求,Servlet提供了不同的方法用于响应客户端请求。通常客户端的请求只有GET和POST两种,Servlet为了响应这两种请求,只需重写doGet()和doPost()两个方法即可。

14 Servlet介绍 Servlet处理和响应客户端请求的过程: (1)客户端发送请求至服务器端;
(4)服务器将响应结果以指定的形式返回给客户端;

15 Servlet介绍 MyEclipse中创建Servlet的配置 注意:Mapping URL设置的值为访问该Servlet的URL路径。

16 Servlet介绍 在Tomcat中部署Java Web应用
Java Web部署方式有多种,使用Tomcat安装目录下的conf文件夹下的Server.xml文件进行部署。在该文件的倒数第四行即</host>标签之上,添加如下代码。 <Context path="/login" docBase="D:\myEclipse\InfoSearchServer\WebRoot" debug="0" reloadable= "true"> </Context> path:虚拟路径,启动Tomcat后,可通过 docBase:项目根目录所在路径,是本机上的一个绝对路径,即Java Web应用所存放的位置,需要定位到WebRoot目录下; reloadable:设置为"true",表示修改Servlet文件后,不需要重启服务器就可以实现页面的同步更新。

17 Servlet介绍 当客户端发送 求时,服务器是如何处理和响应的呢? 1、根据Tomcat的Server.xml文件,查看login虚拟路径所对应的物理路径,即docBase所对应的值; 2、找到该物理路径下的web.xml文件,找到包含<url-pattern> /LoginServlet</url- pattern>的<Servlet-mapping>; 3、根据<servlet-name>LoginServlet</servlet-name>找到对应的<servlet-class>的值,获取类名iet.jxufe.cn.server.LoginServlet ; 4、根据反射机制,创建iet.jxufe.cn.server.LoginServlet类对象,并执行相应的方法,在方法处理中,会返回相应的处理结果。最后将结果返回给客户端。

18 Android客户端访问服务器 注意事项: 1、Tomcat已启动,并且Java Web程序已部署到Tomcat服务器中;
2、客户端访问服务端的URL要正确,在此为 Web中的 是模拟器设置的特定ip,是你的电脑的别名,如果是网络服务器,可直接写相应的IP或网址; 3、需要在清单文件中添加访问网络的权限; 4、不能直接访问网络,需进行相应处理,建议采用消息传递机制;

19 Android客户端访问服务器 访问MySQL数据库的一般步骤
1、添加数据库相应的jar包到Java Web应用下,放在WebRoot\WEB-INF\lib文件夹下; 2、加载驱动、获取数据库连接、捕获异常处理; String url = “jdbc:mysql://localhost:3306/数据库名"; Class.forName(“com.mysql.jdbc.Driver”);//加载驱动 conn = DriverManager.getConnection(url, “用户名”,”密码”); 3、编写相应的增删查改的SQL语句; 4、执行操作获取结果(PrepareStatement、ResultSet);

20 整体流程图 高校信息查询平台

21 高校信息查询平台 服务器端文档结构图 客户端文档结构图

22 客户端与服务器端交互(调用关系) 高校信息查询平台

23 注册功能程序流程图 高校信息查询平台

24 文件上传功能 高校信息查询平台

25 文件上传功能程序流程图 高校信息查询平台

26 资料下载功能 注册功能

27 资料下载功能程序流程图 高校信息查询平台

28 信息查询功能 高校信息查询平台

29 信息查询功能 高校信息查询平台

30


Download ppt "第11章 Android客户端与服务器交互."

Similar presentations


Ads by Google