J2ME程序设计实例教程(第04章)
更新时间:2023-08-10 15:56:01 阅读量: 工程科技 文档下载
.
J2ME程序设计实例教程 程序设计实例教程第04章 城市公交线路查询系统 章
作者 :杨光E-mail:guang760212@ :
.
第4章 城市公交线路查询系统 章本章将设计一个基于手机客户端的城市公交线路查 询系统,客户端软件能够运行在所有支持J2ME MIDP规 询系统,客户端软件能够运行在所有支持 规 范的移动信息设备上,使用HTTP协议与服务器端的 范的移动信息设备上,使用 协议与服务器端的 Java Servlet进行通信。通过设计该查询系统,学习 进行通信。 进行通信 通过设计该查询系统, J2ME的网络编程技术。 的网络编程技术。 的网络编程技术 4.1 知识点 4.2 设计要求 4.3 类设计 4.4 代码实现 4.5 实践
.
4.1 知识点——通用连接框架 知识点 通用连接框架通用连接框架( 通用连接框架(Generic Connection Framework,GCF)是 CLDC规范为资源受限的嵌入式 , ) 规范为资源受限的嵌入式 设备定义了一组通用的、易扩展的Java网络接口。 网络接口。 设备定义了一组通用的、易扩展的 网络接口 MIDP规范对通用连接框架进行了扩展,定义了 规范对通用连接框架进行了扩展, 规范对通用连接框架进行了扩展 HTTP、套接字、数据报等网络连接类型的接口。设备制 、套接字、数据报等网络连接类型的接口。 造商则可以选择一种或者几种网络连接类型的接口在自 己的设备上实现。其中, 己的设备上实现。其中,HTTP为必须实现的网络联接类 为必须实现的网络联接类 型。
.
4.1 知识点 知识点——通用连接框架 通用连接框架
.
4.1 知识点——HTTP协议 知识点 协议HTTP(Hypertext Transfer Protoco)是一 ( ) 种简单的、基于客户端/服务器模式的请求 响应协议。 种简单的、基于客户端 服务器模式的请求——响应协议。 服务器模式的请求 响应协议 它是无状态的,其请求——响应过程如图 响应过程如图4-2所示。 所示。 它是无状态的,其请求 响应过程如图 所示
.
4.1 知识点——Java Servlet简介 知识点 简介Java Servlet是Sun公司提供的服务器端的 公司提供的服务器端的Java 是 公司提供的服务器端的 技术,用于扩展Web服务器的功能。使用 服务器的功能。 技术,用于扩展 服务器的功能 使用Java Servlet技术编写的程序称为 技术编写的程序称为servlet,servelt的 技术编写的程序称为 , 的 运行环境称为Java Servlet引擎(或者称为 引擎( 运行环境称为 引擎 或者称为Java Servlet容器)。 容器)。 容器 编写servlet程序与编写 编写 程序与编写applet相似,一个 相似, 程序与编写 相似 servlet必须是 必须是 javax.servlet.http.HttpServlet的子类。在子 的子类。 的子类 类中,可以重写父类中的init、doGet或者 或者doPos
t等 类中,可以重写父类中的 、 或者 等 方法。 方法。
.
4.1 知识点——HttpConnection接口 知识点 接口javax.microedition.io包中的 包中的 HttpConnection接口定义了 接口定义了HTTP连接所需要的的方法 连接所需要的的方法 接口定义了 和常量,所有支持MIDP规范的手机都实现了 和常量,所有支持 规范的手机都实现了 HttpConnection接口,能够通过 接口, 接口 能够通过HTTP协议访问网络资 协议访问网络资 一个HTTP连接在其整个“请求 响应”过程中可能处 连接在其整个“ 响应” 源。一个 连接在其整个 请求——响应 于设置、连接和关闭3种状态之一 种状态之一。 于设置、连接和关闭 种状态之一。
.
4.1 知识点 知识点——创建 创建HTTP连接 创建 连接调用Connector.open(String name)方法获取 调用 方法获取 HTTP连接对象。 连接对象。 连接对象 name是一个符合统一资源定位符 URL)格式的字符串, name是一个符合统一资源定位符(URL)格式的字符串, 是一个符合统一资源定位符( 表示要访问的网络资源。 表示要访问的网络资源。try { String url = "/index.html"; HttpConnection hc = (HttpConnection)Connector.open(url); } catch(IOException ioe) { System.out.println("创建连接失败!" + ioe); 创建连接失败! 创建连接失败 }
.
4.1 知识点 知识点——与服务器通信 与服务器通信HTTP连接对象可以调用下面的方法,获取与连接相 连接对象可以调用下面的方法, 连接对象可以调用下面的方法 关的输入流和输出流。 关的输入流和输出流。客户端可以通过输出流向服务器 传送信息,通过输入流获取服务器的响应信息。 传送信息,通过输入流获取服务器的响应信息。public public public public InputStream openInputStream() OutputStream openOutputStream() int getResponseCode() String getResponseMessage()
一旦HTTP连接对象调用上面的方法,将导致请求信 连接对象调用上面的方法, 一旦 连接对象调用上面的方法 息被发送,连接从设置状态转换到连接状态。 息被发送,连接从设置状态转换到连接状态。
.
4.1 知识点 知识点——HTTP连接常用方法 连接常用方法public void setRequestMethod(String method)——设 设 置请求方法。 置请求方法。 public void setRequestProperty(String key, String value)——设置请求头部的属性。 设置请求头部的属性。 设置请求头部的属性 public String getURL()——返回 返回URL。 返回 。 public String getProtocol()——返回协议名。 返回协议名。 返回协议名 public String getHost()——返回服务器名。 返回服务器名。 返回服务器名 public int getProt()——返回服务器端口号。 返回服务器端口号。 返回服务器端口号 public String getHeaderField(String nam
e)——返回 返回 头域中name属性的值。 属性的值。 头域中 属性的值
.
4.2 设计要求该查询系统使用“客户端 服务器 模式。 服务器” 该查询系统使用“客户端/服务器”模式。服务器 端采用Tomcat和Java Servlet技术。 端采用 和 技术。 技术 客户端为运行在手机等无线移动信息设备上的公交 线路查询软件,采用J2ME技术。要求客户端能够连接提 技术。 线路查询软件,采用 技术 供公交线路查询服务的服务器,发送查询条件, 供公交线路查询服务的服务器,发送查询条件,获取查 询结果。 询结果。
.
4.3 类设计——服务器端 类设计 服务器端服务器端由一个类和一个接口组成, 服务器端由一个类和一个接口组成,分别为 BusQueryServlet、QueryMode。 、 。BusQueryServlet类该类继承了 类该类继承了 javax.servlet.http.HttpServlet,是一个 , servlet,能够处理客户端通过 ,能够处理客户端通过POST方法提交的查询请 方法提交的查询请 并把查询结果传送给客户端。 求,并把查询结果传送给客户端。该类实现了与客户端进 行通信的功能。 行通信的功能。 QueryMode接口中仅定义了两个常量,分别表示两种查 接口中仅定义了两个常量, 接口中仅定义了两个常量 询方式。 询方式。
.
4.3 类设计 类设计——客户端 客户端
.
4.4 代码实现——安装 代码实现 安装Tomcat服务器 服务器 安装1.
2.
3.
解压apache-tomcat-5.5.15.zip文件到 盘根目录下,将 文件到D盘根目录下 解压 文件到 盘根目录下, 生成D:\apache-tomcat-5.5.15目录,该目录为 目录, 生成 目录 该目录为Tomcat的 的 主目录。 主目录。 设置JAVA_HOME环境变量,JAVA_HOME环境变量表示系统中 环境变量, 设置 环境变量 环境变量表示系统中 JDK的安装目录。打开 的安装目录。 窗口, 的安装目录 打开MS-DOS窗口,输入命令:set 窗口 输入命令: JAVA_HOME=D:\JDK1.5,或者在“我的电脑”属性中添加环 ,或者在“我的电脑” 境变量JAVA_HOME,值为 境变量 ,值为D:\JDK1.5。 。 启动服务器,验证安装是否正确。使用Tomcat安装目录下 安装目录下bin 启动服务器,验证安装是否正确。使用 安装目录下 目录中的startup.bat命令启动服务器,然后我们可以打开 命令启动服务器, 目录中的 命令启动服务器 然后我们可以打开IE 浏览器,输入地址: 浏览器,输入地址:http://localhost:8080/indes.jsp 访问Tomcat的默认页,如果显示正确,则表示服务器安装成功。 的默认页, 访问 的默认页 如果显示正确,则表示服务器安装成功。
.
4.4 代码实现——部署查询服务程序 代码实现 部署查询服务程序编译服务器端的源文件,生成类文件。 编译服务器端的源文件,生成类文件
。 2. 在{TOMCAT_HOME}\webapps目录中建立一个目录结 目录中建立一个目录结 构:QBSServlet\WEB-INF\classes,然后把 中生 ,然后把1中生 成的字节码文件复制到classes目录中。 目录中。 成的字节码文件复制到 目录中 3. 创建一个保存公交线路数据的文本文件,按照 创建一个保存公交线路数据的文本文件,按照4.2节要 节要 求的格式,输入公交线路数据。 求的格式,输入公交线路数据。并把该文件保存到 QBSServlet\WEB-INF目录中,文件名为Lines.txt 目录中,文件名为 目录中 4. 编辑 编辑web.xml文件,并把该文件保存到 文件, 文件 QBSServlet\WEB-INF目录中,文件名为 目录中, 目录中 文件名为web.xml。 。1.
.
4.4 代码实现——客户端程序打包 代码实现 客户端程序打包1. 2.
3.
4.
启动J2ME无线开发工具,新建一个项目。 无线开发工具,新建一个项目。 启动 无线开发工具 节中客户端的所有java源文件保存到新建项目的 源文件保存到新建项目的src 将4.4.3节中客户端的所有 节中客户端的所有 源文件保存到新建项目的 目录中。单击开发工具的【生成】按钮,编译源文件。 目录中。单击开发工具的【生成】按钮,编译源文件。如果有 错误,请修改源文件,保存后重新编译。 错误,请修改源文件,保存后重新编译。 单击开发工具的【生成】按钮,显示当前项目设置对话框, 单击开发工具的【生成】按钮,显示当前项目设置对话框,打 自定义的”选项卡,添加自定义属性。属性名: 开“自定义的”选项卡,添加自定义属性。属性名:queryURL, , 属性值: 属性值: http://localhost:8080/QBSServlet/query.do。 。 选择开发工具的菜单【项目】 【 选择开发工具的菜单【项目】→【包】→【产生包】对当前项目 【产生包】 进行打包。打包成功后,将在当前项目的bin目录下生成一个 进行打包。打包成功后,将在当前项目的 目录下生成一个 jar文件和一个 文件和一个jad文件。 文件。 文件和一个 文件
.
4.4 代码实现 代码实现——客户端程序运行效果 客户端程序运行效果
(a) 查询条件
(b)网络连接提示 网络连接提示
(c) 查询结果 图4-5 按照公共汽车线路查询效果图
.
4.4 代码实现 ——代码分析 代码分析参见教材P100~110 参见教材
.
4.5 实践请您为该软件添加保存功能, 请您为该软件添加保存功能,把查询到的结果保存 在本地的记录管理系统中。 在本地的记录管理系统中。 修改查询功能:每次查询时都先在本地的记录管理 修改查询功能: 系统中查询,如果没有再进行网络查询。 系统中查询,如果没有再进行网络查询。
正在阅读:
J2ME程序设计实例教程(第04章)08-10
公共营养师资格考试复习题08-08
2015年五年级希望杯100题03-09
淮阴侯列传教案08-19
仁爱英语七年级下册Unit3短语句子11-16
文本编辑《数据结构》上机实验报告05-13
电解饱和食盐水实验03-21
DLL的11种注入方法09-19
蜜雪冰城营销策划书08-21
材料采购成本计算07-29