




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 题 目 :基于 j2ee 和 j2me 的公交智能查询系 统 院 系: 信科学院计算机科学与技术系 专 业: 计算机科学与技术 学生姓名: 学 号: 04370181 指导教师: (职 称) 2 摘要摘要 j2ee 是目前比较流行的多层企业级应用技术, 它是一套全然不同于传统应用开发 的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可 移植性、安全与再用价值,从而实现能够适应不同的客户端,比如 web 浏览器,java applet,java 应用程序等.j2me 是当前使用比较多的基于移动设备开发技术,它提供了 一种新型的企业客户端类型,如手机,pda 等客户设备
2、,随着手机等电子消费产品的普及, j2me 以其跨平台,易开发的特性正在受到越来越多的重视. 本文探讨如何将 j2ee 和 j2me 结合起来的技术,并且运用该技术来实现一个完整 的智能公交查询系统. 关键词关键词:j2me j2ee svg httpservlet 3 abstract j2ee is very popular in the multi-enterprise applications, it is completely different from the traditional application development technology infrastructur
3、e, contains many components, the major application system to simplify and standardize the development and deployment, and to improve portability, security and the value of reuse, thus realizing able to adapt to different clients, such as web browsers, java applet, java application procedures. j2me i
4、s the use of a relatively large number of mobile devices based on the development of technology, which provides a new type of enterprise client types, such as mobile phones, pda and other client devices, as consumer electronics products, such as mobile phone penetration, j2me its cross-platform and
5、easy development the characteristics of being more and more attention. this paper discusses how to integrate j2me and j2ee technology, and use of the technology to achieve a complete intelligent bus enquiry system. keyword:j2me j2ee svg httpservlet 4 目目 录录 第一章第一章引言引言.6 1.1 概述.6 2.2 研究意义.7 第二章第二章j2me
6、 介绍介绍.8 2.1 j2me 平台的体系结构.8 2.2 cldc 和 midp.9 2.3 j2me 使用 http 协议访问网络数据和服务 .12 第三章第三章j2ee 介绍介绍.13 3.1 j2ee 简介.13 3.2 j2ee 常用组件.14 3.3 httpservlet 简介.19 第四章第四章矢量图形介绍矢量图形介绍.21 4.1 矢量图形介绍.21 4.2 svg(可伸缩矢量图形)介绍.21 4.3 j2me 平台实现 svg.22 第五章第五章公交智能查询系统公交智能查询系统.23 51 需求分析.23 5.2 总体设计.24 5.3 详细设计.25 5 .3.1 服务
7、器端.25 5.3.2 客户端 .26 5.3.3 数据库设计 .27 5.4 编码实现.27 5 .4.1 客户端.28 5.4.2 服务器端 .32 5.5 最后的效果图.38 第六章第六章结论.39 致谢致谢.41 参考文献参考文献.43 5 附录附录.44 6 第一章第一章 引言引言 1.1 概述概述 近十年来,我国的城市化水平不断提高,越来越多的人从农村来到城市生活 工作和学习,2007 年我国城市人口已达 5 亿多,200 万以上的特大城市就达到 22 个,并 且这一增长趋势将在相当长的时间内一直保持下去,到 2030 年我国城市人口将超 过十亿.如此众多的人挤入城市,大家的出行难
8、将日益突出.在城市,公交车将依然是 大家出行的最主要工具,但是随着城市规模的不断扩大,公交系统也越来越庞大,在 广州这样的城市,公交线路多达数百条,人光凭借脑力想记住这么多的公交线路显 然已经是可能的,这样一种新型的智能公交系统就显得特别重要了. 在信息社会,手机日益成为普通百姓不可或缺的物品,仅仅 2007 年我国就 新增手机用户 8600 万,整体总数达到 5.5 亿户,手机的性能也得到不断提升,已经 演变成一种多功能的电子设备,除了基本的通话功能外, 手机还具有手机短信、 游戏、记事簿、无线上网、移动商务等各种不同的功能。于是,开发一种通过手 机来搜集查询公交线路的系统有了坚实的硬件基础
9、. j2ee(java2 enterprise edition)是一种利用 java 2 平台来简化企业解决方 案的开发、部署和管理相关的复杂问题的体系结构。j2ee 技术的基础就是核 心 java 平台或 java 2 平台的标准版,j2ee 不仅巩固了标准版中的许多优点, 例如编写一次、随处运行的特性、方便存取数据库的 jdbc api、corba 技 术以及能够在 internet 应用中保护数据的安全模式等等,同时还提供了对 ejb(enterprise javabeans) 、java servlets api、jsp(java server pages)以及 xml 技术的全面支持
10、。其最终目的就是成为一个能够使企业开发 者大幅缩短软件投放市场时间的体系结构。 sun 公司的 j2me(java 2 micro edition)是专门为运行在嵌入式消费类电子 产品的设备,如移动电话,pda,游戏终端之上的应用程序提供健壮,灵活的环境而 开发的平台,它具有其他平台所不具备的许多优点,比如移植性强,开发速度快,技 术入门快等许多优点, 目前在移动通信领域,全球各运营商基本上都选用 j2me 语言作为手机应用程序开发平台。 。同时 j2me 平台具备强大的网络功能,能够 很方便地与互联网等网络实现交互. 7 j2ee 和 j2me 的出现和整合为开发移动公交智能查询系统提供了坚
11、实的软 件基础. 1.2 研究意义研究意义 在本系统中,我们将利用 j2me 实现客户端,然后利用 j2me 的强大的网络功 能实现与 j2ee 服务器端的交互,j2me 发送公交查询的请求,到达服务器端,服务器 端利用其强大的数据分析能力处理客户端传送过来的请求,得出结果,并且将结果 传回 j2me 客户端,客户端接收终端用户所需要的并且能够理解的数据.本系统将 以其快捷方便,快速高效,随处可用等优点为广大群众提供高性能的公交查询,从而 方便大家的出行. 8 第二章第二章 j2me 介绍介绍 2.1. j2me 平台的体系结构平台的体系结构 j2me 平台有多种配置(configuratio
12、n) 、简表(profile)和可选包 (optional package)组成。平台的实现者和应用程序的开发者可以从中选择并 组合成一个完整的 java 运行环境来满足特定范围内的设备需求。每种组合都应 该使这一系列设备的内存、处理器和 i/o 能力达到最优化。j2me 专家组之所以 采取这种灵活的设计结构主要是为了满足市场上不同种类的嵌入式设备的需求, 这些设备在软件和硬件特性上都存在巨大的差异,一种规范很难将他们统一起 来。我们来看看 j2me 平台的体系结构,如图 1 所示: 可选包 简表 配置 java 虚拟机 主机操作系统 图 1j2me 平台的体系结构 1.宿主操作系统层(hos
13、t operating):这一层位于 j2me 运行环境的 最底层。操作系统可以是 linux、symbian 或者 palmos,这充分体 现了 java 语言的跨平台特性。 2.java 虚拟机层(java virtual machine layer):这一层是 java 虚拟机 的一个实现,它是为特定设备的主机操作系统定制的,支持一个特 9 定的 j2me 配置。 3.配置层(configuration layer):配置层由 java 虚拟机和一系列的 api 集合组成,为某一范围内的嵌入式设备提供基本的功能,这些设备 通常在硬件和软件上具有类似的特性.目前 j2me 平台主要包含两个
14、 配置:连接设备配置(cdc),和连接受限设备配置.(cldc) 4.简表层(profile layer):简表位于配置之上,为运行环境提供高层的 api,例如应用程序模型和图形用户界面等,目前 cldc 上采用最广泛 的简表是移动信息设备简表(midp),基于 cldc 与 midp 的 j2me 平 台主要面对的目标设备是移动电话. 5.可选包层(optional package layer):可选包是针对特殊的技术的实 现,因此它定位的是特定范围的设备,而不适合作为一项特性定义 在 midp 中 . java 虚拟机层、配置层和简表层一起为 j2me 应用程序提供了一个标准的 运行环境,
15、这个环境允许新的应用程序和服务动态的被安装到各种终端用户设 备上。在手机上,cldc, midp, kvm 分部实现了 j2me 体系结构中的配置层、 简表层和 java 虚拟机层。下面,我将通过对 cldc, midp, kvm 的详细介绍, 来讲解手机上的 j2me 的体系结构。 2.2 cldc 和和 midp 目前,j2me 平台主要包括两个配置:cldc 和 cdc。cldc 是两个配置中 较小的一个,为具有间断性联网能力、较慢的处理器和有限内存的设备设计的。 这些设备包括移动电话、双工呼叫器和入门级的 pda,它们通常具有 16 位或 32 位的 cpu、128kb512kb 可用
16、于 java 平台实现和相关应用程序的内存。 cldc 可以为开发者提供一个标准化.需要最小足迹针对资源受限设备的应用 程序开发平台.它由两部分组成,一个是为应用程序提供的最小 java 语言类库和 适合运行在资源受限设备上的虚拟机(kvm). midp(移动信息设备简表)位于 cldc 基础之上,为开发者提供了应用程序模型.图 形用户界面.数据持久存储等功能. 1. 应用程序模型: midp 引入了全新的应用程序模型-midlet.midlet 是应用程序的主类,被应 10 用程序管理软件管理.多个 midlet 可以组成 midlet 套件,以 jar 包的形式 发布.与 jar 文件一起
17、发布的还有一个文本文件-java 应用程序描述符 (jad).jad 文件的作业在于描述 midlet 套件的基本信息.ams 安装 midlet 套件的适合可以首先解析 jad 文件的内容读取套件的信息.比较 cldc 和 midp 的版本.,看套件是否和目标设备的软件环境兼容.下面的代码框架描 述了 midlet 的基本结构. import javax.microedition.midlet.*; import java.microedition.lcdui.*; public class hellomidlet extends midlet public void startapp()
18、public void pauseapp() public void destroyapp(boolean unconditional) midlet 的状态 用户启动 midlet 之后,被启动的 midlet 将处于应用程序生命周期的三个状 态之一,可能的状态是是暂停(paused),活动(active)和销毁(destroyed), 活动状态:当一个 midlet 进入活动状态时,它将获得用于执行任务的所 以资源.转移到活动状态之后,所需的线程应该被启动. 暂停状态.当一个 midlet 进入暂停状态时,它应该释放所以持有的资源 并停止活的活动的线程,如果有需要,则应该把数据保存到持久性
19、存储 器中,这样在程序重新进入活动状态的时候可以重用. 销毁状态,当一个 midlet 进入销毁状态时,它应该释放所有资源,停止正 在执行的线程并保存持久性的数据, midlet 的状态如图(图 2-1)所示 11 暂停状态活动状态 startapp() pauseapp() 销毁状态 destroyapp(boolean) destroyapp(boolean) 图图(2-1) 2.图形用户界面 midp 提供了图形用户界面,使开发者为目标设备开发应用程序成为 了现实.midp 没有采用 j2se 平台的 awt/swing 作为移动终端设备的用户 界面,而提供了一套适合移动终端设备的标准用
20、户界面组件.他们设计非常 小巧,层次清楚,大大缩短了开发 midp 程序的周期,midp 的用户组件和时 间处理机制有高级和低级之分,一般类似于菜单列表这样的界面通常使用 高级组件的 list 完成,与之对应的高级时间机制通过 command 和 commandlistener 完成.需要对界面的像素进行控制的时候则需要使用低级 组件 canvas 来制作.使用高级组件有助于提高程序的效率和可移植性,但是 会失去对界面的控制能力. 3.数据持久存储 记录管理系统(rms)是 midp 的一个子系统,为开发者提供了持久性 存储的解决方案.应用程序的数据可以在 midlet 多次调用之后依然保持不
21、 12 变,即使重新启动设备或者更换电池也不会造成数据丢失.midp 还允许在不 同 midlet 套件之间共享记录存储数据3. 2.3 j2me 使用使用 http 协议访问网络数据和服务协议访问网络数据和服务 http 协议是属于应用层的面向连接的协议,由于其简捷,快速的方式,适用于分 布式超媒体信息系统,它具有支持客户/服务器模式,简单快速,灵活,无连接,无状态 等特点.基于 http 协议的客户服务器模式的信息交互过程分四个过程:建立连接, 发送请求信息,发送响应信息,关闭连接. midp 规范支持 http 协议的子集,规范中没有要求必须使用基于 ip 的网络 实现 http 协议支
22、持,如 tcp/ip.midp 允许实现使用 ip 协议,如 wap 和 i-mode. 非 ip 协议需要使用一个网关作为代理来访问 internet 上的服务器.这两种方式是 完全不通的. midp 中 httpconnection 扩展了 connectentconnection,为基于 http 协议的 连接提供了所需的方法,http 协议是基于请求(request)-响应(response)模式的,在 发送之前必须首先设定请求参数,http 连接具有三种状态 : 建立连接,这个时候设定请求参数 已连接,在这个状态请求参数被发往服务器端,期待服务器端响应 关闭连接,http 连接终止,
23、关闭 connection 及打开的流连接. 连接示意图如图(2-2)所示: 13 客 户 机 服 务 器 建立连接 发出请求信息 发出响应信息 关闭连接 图(2-2) 开发联网应用程序应该遵循 http 连接的建立过程,首先根据 url 打开连接返回 httpconnection 对象,设定请求参数,例如,连接方法是 post 还是 get,打开输出流 发送数据,打开输入流,将读取数据保存到堆空间或者 rms 内,完成数据交换后,关 闭连接和流.而不应该在主线程中进行联网. 第三章第三章 j2ee 介绍介绍 3.1 j2ee 简介简介 目前,java 2 平台有 3 个版本,它们是适用于小型
24、设备和智能卡的 java 2 平台 micro 版(java 2 platform micro edition,j2me) 、适用于桌面系统 的 java 2 平台标准版(java 2 platform standard edition,j2se) 、适用于 创建服务器应用程序和服务的 java 2 平台企业版(java 2 platform enterprise edition,j2ee) 。 j2ee 是一套全然不同于传统应用开发的技术架构,包含许多组件,主要 可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。 14 j2ee 核心是一组技术规范与指南,其中所包含的各类组
25、件、服务架构及技术层 次,均有共通的标准及规格,让各种依循 j2ee 架构的不同平台之间,存在良好 的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内 部或外部难以互通的窘境。 在 j2ee 架构下,开发人员可依循规范基础,进而开发企业级应用;而不 同 j2ee 供货商,同会支持不同 j2ee 版本内所拟定的标准,以确保不同 j2ee 平 台与产品之间的兼容性。换言之,植基 j2ee 架构的应用系统,基本上可部署在 不同的应用服务器之上,无需或者只需要进行少量的代码修改,即能大幅提高 应用系统的可移植性(portability)。 j2ee 主要是由 sun 与 ibm 等厂
26、商协同业界共同拟定而成的技术规范,以企 业与企业之间的运算为导向的 java 开发环境。j2ee 架构定义各类不同组件, 如 web component、ejb component等,而各类组件可以再用(reuse),让已 开发完成的组件,或者是经由市面采购而得的组件,均能进一步组装成不同的 系统。 对于开发人员而言,只需要专注于各种应用系统的商业逻辑与架构设计,至于 底层繁琐的程序撰写工作,可搭配不同的开发平台,以让应用系统的开发与部 署效率大幅提升。 j2ee 的核心规范是 enterprise java beans(ejbs) 。ejb 依照特性的不 同,目前共分为三种,分别是 sess
27、ion bean、entity bean,以及 message driven bean 。其中 session bean 与 entity bean 算是 ejb 的始祖,这两种 ejb 规格在 ejb 1.x 版本推出时就已经存在,而 message driven bean 则是出 现在 ejb 2.0 的规格之中。 3.23.2 j2eej2ee 常用组件常用组件 j2ee 组成了一个完整企业级应用的不同部分纳入不同的容器(container), 每个容器中都包含若干组件(这些组件是需要部署在相应容器中的),同时各种 组件都能使用各种 j2ee service/api。j2ee 容器包括:
28、 15 web 容器 服务器端容器,包括两种组件 jsp 和 servlet,jsp 和 servlet 都是 web 服务器的功能扩展,接受 web 请求,返回动态的 web 页面。web 容器 中的组件可使用 ejb 容器中的组件完成复杂的商务逻辑。 ejb 容器 服务器端容器,包含的组件为 ejb(enterprise javabeans), 它是 j2ee 的核心之一,主要用于服务器端的商业逻辑的实现。ejb 规范定义了 一个开发和部署分布式商业逻辑的框架,以简化企业级应用的开发,使其较容 易地具备可伸缩性、可移植性、分布式事务处理、多用户和安全性等。 applet 容器 客户端容器,
29、包含的组件为 applet。applet 是嵌在浏览器 中的一种轻量级客户端,一般而言,仅当使用 web 页面无法充分地表现数据或 应用界面的时候,才使用它。applet 是一种替代 web 页面的手段,我们仅能够 使用 j2se 开发 applet,applet 无法使用 j2ee 的各种 service 和 api,这是为 了安全性的考虑。 application client 容器 客户端容器,包含的组件为 application client。application client 相对 applet 而言是一种较重量级的客户端,它 能够使用 j2ee 的大多数 service 和 ap
30、i。 通过这四个容器,j2ee 能够灵活地实现前面描述的企业级应用的架构。 在 view 部分,j2ee 提供了三种手段:web 容器中的 jsp(或 servlet)、 applet 和 application client,分别能够实现面向浏览器的数据表现和面向桌 面应用的数据表现。web 容器中的 servlet 是实现 controller 部分业务流程控 制的主要手段;而 ejb 则主要针对 model 部分的业务逻辑实现。至于与各种企 业资源和企业级应用相连接,则是依靠 j2ee 的各种服务和 api。 在 j2ee 的各种服务和 api 中,jdbc 和 jca 用于企业资源(各
31、种企业信息 系统和数据库等)的连接,jax-rpc、jaxr 和 saaj 则是实现 web services 和 web services 连接的基本支持。 j2ee 的各种组件 我们就 j2ee 的各种组件、服务和 api,进行更加详细的阐述,看看在开 发不同类型的企业级应用时,根据各自需求和目标的不同,应当如何灵活使用 16 并组合不同的组件和服务。 servletservlet servlet 是 java 平台上的 cgi 技术。servlet 在服务器端运行,动态地生成 web 页面。与传统的 cgi 和许多其它类似 cgi 的技术相比,java servlet 具有 更高的效率并
32、更容易使用。对于 servlet,重复的请求不会导致同一程序的多 次转载,它是依靠线程的方式来支持并发访问的。 jspjsp jsp(java server page)是一种实现普通静态 html 和动态页面输出混合编码 的技术。从这一点来看,非常类似 microsoft asp、php 等技术。借助形式上的 内容和外观表现的分离,web 页面制作的任务可以比较方便地划分给页面设计 人员和程序员,并方便地通过 jsp 来合成。在运行时态,jsp 将会被首先转换 成 servlet,并以 servlet 的形态编译运行,因此它的效率和功能与 servlet 相比没有差别,一样具有很高的效率。 e
33、jbejb ejb 定义了一组可重用的组件:enterprise beans。开发人员可以利用这些 组件,像搭积木一样建立分布式应用。在装配组件时,所有的 enterprise beans 都需要配置到 ejb 服务器(一般的 weblogic、websphere 等 j2ee 应用服 务器都是 ejb 服务器)中。ejb 服务器作为容器和低层平台的桥梁管理着 ejb 容 器,并向该容器提供访问系统服务的能力。所有的 ejb 实例都运行在 ejb 容器 中。ejb 容器提供了系统级的服务,控制了 ejb 的生命周期。ejb 容器为它的开 发人员代管了诸如安全性、远程连接、生命周期管理及事务管理
34、等技术环节, 简化了商业逻辑的开发。ejb 中定义了三种 enterprise beans4: session beans entity beans message-driven beans jdbcjdbc 17 jdbc(java database connectivity,java 数据库连接)api 是一个标准 sql(structured query language,结构化查询语言)数据库访问接口,它使数 据库开发人员能够用标准 java api 编写数据库应用程序。jdbc api 主要用来 连接数据库和直接调用 sql 命令执行各种 sql 语句。利用 jdbc api 可以执
35、行一 般的 sql 语句、动态 sql 语句及带 in 和 out 参数的存储过程。java 中的 jdbc 相当与 microsoft 平台中的 odbc(open database connectivity)。 jmsjms jms(java message service,java 消息服务)是一组 java 应用接口,它提供 创建、发送、接收、读取消息的服务。jms api 定义了一组公共的应用程序接 口和相应语法,使得 java 应用能够和各种消息中间件进行通信,这些消息中间 件包括 ibm mq-series、microsoft msmq 及纯 java 的 sonicmq。通过使
36、用 jms api,开发人员无需掌握不同消息产品的使用方法,也可以使用统一的 jms api 来操纵各种消息中间件。通过使用 jms,能够最大限度地提升消息应用的可移 植性。 jms 既支持点对点的消息通信,也支持发布/订阅式的消息通信。 jndijndi 由于 j2ee 应用程序组件一般分布在不同的机器上,所以需要一种机制以便于 组件客户使用者查找和引用组件及资源。在 j2ee 体系中,使用 jndi(java naming and directory interface)定位各种对象,这些对象包括 ejb、数据库 驱动、jdbc 数据源及消息连接等。jndi api 为应用程序提供了一个统
37、一的接口 来完成标准的目录操作,如通过对象属性来查找和定位该对象。由于 jndi 是独 立于目录协议的,应用还可以使用 jndi 访问各种特定的目录服务,如 ldap、nds 和 dns 等。 jtajta jta(java transaction api)提供了 j2ee 中处理事务的标准接口,它支持事 务的开始、回滚和提交。同时在一般的 j2ee 平台上,总提供一个 jts(java transaction service)作为标准的事务处理服务,开发人员可以使用 jta 来使 用 jts。 18 jcajca jca(j2ee connector architecture)是 j2ee
38、体系架构的一部分,为开发人员 提供了一套连接各种企业信息系统(eis,包括 erp、scm、crm 等)的体系架构, 对于 eis 开发商而言,它们只需要开发一套基于 jca 的 eis 连接适配器,开发 人员就能够在任何的 j2ee 应用服务器中连接并使用它。基于 jca 的连接适配器 的实现,需要涉及 j2ee 中的事务管理、安全管理及连接管理等服务组件。 jmxjmx jmx(java management extensions)的前身是 jmapi。jmx 致力于解决分布式 系统管理的问题。jmx 是一种应用编程接口、可扩展对象和方法的集合体,可 以跨越各种异构操作系统平台、系统体系结
39、构和网络传输协议,开发无缝集成 的面向系统、网络和服务的管理应用。jmx 是一个完整的网络管理应用程序开 发环境,它同时提供了厂商需要收集的完整的特性清单、可生成资源清单表格、 图形化的用户接口;访问 snmp 的网络 api;主机间远程过程调用;数据库访问 方法等 。 jaasjaas jaas(java authentication and authorization service)实现了一个 java 版本的标准 pluggable authentication module(pam)的框架。jaas 可用来进行 用户身份的鉴定,从而能够可靠并安全地确定谁在执行 java 代码。同时
40、jaas 还能通过对用户进行授权,实现基于用户的访问控制。 jaccjacc jacc(java authorization service provider contract for containers) 在 j2ee 应用服务器和特定的授权认证服务器之间定义了一个连接的协约,以便 将各种授权认证服务器插入到 j2ee 产品中去。 jax-rpcjax-rpc 通过使用 jax-rpc(java api for xml-based rpc),已有的 java 类或 java 应用都能够被重新包装,并以 web services 的形式发布。jax-rpc 提供了将 19 rpc 参数(in
41、/out)编码和解码的 api,使开发人员可以方便地使用 soap 消息来 完成 rpc 调用。同样,对于那些使用 ejb(enterprise javabeans)的商业应用 而言,同样可以使用 jax-rpc 来包装成 web 服务,而这个 web servoce 的 wsdl 界面是与原先的 ejb 的方法是对应一致的。jax-rpc 为用户包装了 web 服务的 部署和实现,对 web 服务的开发人员而言,soap/wsdl 变得透明,这有利于加 速 web 服务的开发周期。 jaxrjaxr jaxr(java api for xml registries)提供了与多种类型注册服务进
42、行交互 的 api。jaxr 运行客户端访问与 jaxr 规范相兼容的 web servcices,这里的 web services 即为注册服务。一般来说,注册服务总是以 web services 的形 式运行的。jaxr 支持三种注册服务类型:jaxr pluggable provider、registry-specific jaxr provider、jaxr bridge provider(支持 uddi registry 和 ebxml registry/repository 等)。 3.3 httpservlet 简介简介 http servlet 使用一个 html 表格来发送和
43、接收数据。要创建一个 http servlet,请扩展 httpservlet 类, 该类是用专门的方法来处理 html 表格的 genericservlet 的一个子类。 html 表单是由 和 标记定义 的。表单中典型地包含输入字段(如文本输入字段、复选框、单选按钮和选择列 表)和用于提交数据的按钮。当提交信息时,它们还指定服务器应执行哪一个 servlet(或其它的程序)。 httpservlet 类包含 init()、destroy()、 service() 等方法。其中 init() 和 destroy() 方法是继承的。 (1) init() 方法 在 servlet 的生命期中,
44、仅执行一次 init() 方法。它是在服务器装入 servlet 时执行的。 可以配置服务器,以在启动服务器或客户机首次访问 servlet 时装入 servlet。 无论有多少客户机访问 servlet,都不会重复执行 init() 。 20 缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法 来覆盖它,典型的是管理服务器端资源。 例如,可能编写一个定制 init() 来 只用于一次装入 gif 图像,改进 servlet 返回 gif 图像和含有多个客户机请 求的性能。另一个示例是初始化数据库连接。缺省的 init() 方法设置了 servlet 的初始化参数,
45、并用它的 servletconfig 对象参数来启动配置, 因 此所有覆盖 init() 方法的 servlet 应调用 super.init() 以确保仍然执行这 些任务。在调用 service() 方法之前,应确保已完成了 init() 方法。 (2) service() 方法 service() 方法是 servlet 的核心。每当一个客户请求一个 httpservlet 对象,该对象的 service() 方法就要被调用,而且传递给这个方 法一个请求(servletrequest)对象和一个响应(servletresponse)对象作为 参数。 在 httpservlet 中已存在 s
46、ervice() 方法。缺省的服务功能是调用与 http 请求的方法相应的 do 功能。例如, 如果 http 请求方法为 get,则缺 省情况下就调用 doget() 。servlet 应该为 servlet 支持的 http 方法覆盖 do 功能。因为 httpservlet.service() 方法会检查请求方法是否调用了适当 的处理方法,不必要覆盖 service() 方法。只需覆盖相应的 do 方法就可以了。 当一个客户通过 html 表单发出一个 http post 请求时,dopost()方法被 调用。与 post 请求相关的参数作为一个单独的 http 请求从浏览器发送到服务
47、器。当需要修改服务器端的数据时,应该使用 dopost()方法。 当一个客户通过 html 表单发出一个 http get 请求或直接请求一个 url 时, doget()方法被调用。与 get 请求相关的参数添加到 url 的后面,并与这个请求 一起发送。当不会修改服务器端的数据时,应该使用 doget()方法。 servlet 的响应可以是下列几种类型: 一个输出流,浏览器根据它的内容类型(如 text/html)进行解释。 21 一个 http 错误响应, 重定向到另一个 url、servlet、jsp。 (3) destroy() 方法 destroy() 方法仅执行一次,即在服务器停
48、止且卸装 servlet 时执行该 方法。典型的,将 servlet 作为服务器进程的一部分来关闭。缺省的 destroy() 方法通常是符合要求的,但也可以覆盖它,典型的是管理服务器端 资源。例如,如果 servlet 在运行时会累计统计数据,则可以编写一个 destroy() 方法,该方法用于在未装入 servlet 时将统计数字保存在文件中。 另一个示例是关闭数据库连接。 当服务器卸装 servlet 时,将在所有 service() 方法调用完成后,或在指定的时间间 隔过后调用 destroy() 方法。一个 servlet 在运行 service() 方法时可能会产生其它的线程, 因
49、此请确认在调用 destroy() 方法时,这些线程已终止或完成。 (4) getservletconfig()方法 getservletconfig()方法返回一个 servletconfig 对象,该对象用来返回初始化参数和 servletcontext。servletcontext 接口提供有关 servlet 的环境信息。 5 第四章第四章 矢量图形介绍矢量图形介绍 4.1 矢量图形介绍矢量图形介绍 计算机中显示的图形一般可以分为两大类矢量图和位图。矢量图使用 直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧 线等等,它们都是通过数学公式计算获得的。例如一幅花的矢
50、量图形实际上是由 线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定花显示出的颜色。 由于矢量图形可通过公式计算获得,所以矢量图形文件体积一般较小。矢量图形 最大的优点是无论放大、缩小或旋转等不会失真;最大的缺点是难以表现色彩层 次丰富的逼真图像效果。 22 4.2 svg(可伸缩矢量图形可伸缩矢量图形)介绍介绍 svg 是一种开放标准的矢量图像描述语言,其标准是由 w3c 组织众多厂 商(如 ibm 等)共同制定的,其目的就是要在网络上创建一种可扩展的、 开放的图像格式它是一个全新的矢量图像和动画格式不同于传统的二元 (平面)图像,svg 使用简单的一元(文本)语句完成矢量图像,以及诸
51、如色彩变化、对象运动、滤镜和遮照、音效添加等各式动画效果svg 文 档本质上就是规范的 xml 文档,其语法和结构完全基于 xml因此,同 xml 一样,作为 w3c 的推荐标准,svg 与现有的 w3c 其他开放标准有很 好的兼容性这些标准包括 dom,css,xsl,xlink,smil,html,xhtml 等同时,svg 与其 他组织的标准化技术也能很好地协同工作,如 icc,uri,unicode,srgb,ecmascriptjavascript,java 等通 过与这些开放标准的兼容和与其他组织标准化技术的协同工作,除了能绘出 矢量图像外,我们还能基于 svg 开发更多新功能以提
52、供更多网络服务例 如,制作智能化数据图像,图像中的数据可以根据需要,由应用程序读取、 修改和统计并最终在图像中显示,这些应用是目前 html 及相关图像技术 远不可及的 svg 作为一种 xml 文档,它是一元(文本)格式,因此,svg 图像 具备以下特点: 1不同于目前常规的图像,svg 图像中的文字是文本格式因此, svg 中的文字可以被网络搜索引擎做为关键词搜寻,可以真正实现基于内 容的图像搜索引擎 2svg 图像可以方便地由 javascript,perl,java 等程序语言动态生 成,从而可以开发在线图像和动画生成系统 3svg 完全支持 dom,因而 svg 以及 svg 中的对
53、象可以通过脚本 语言接受外部事件的驱动,实现对自身或对其他物件、图像的控制,制作交 互式的图像和动画 4svg 可跨平台工作,还可解决相关的外部输出、色彩模式、网络带 宽等问题 简言之,文本格式使得 svg 能与其他技术标准更好地交互和融合 23 4.3 j2me 平台实现平台实现 svg svg(scalable vector graphics,可缩放矢量图像)是互联网联盟 (w3c)的正式推荐标准,它是一种使用 xml 来描述二维图像的语言。由于 svg 的大部分特性非常适合于无线领域的图形应用,为了满足移动业界的需求, w3c 的 svg 工作小组制订了适合于移动应用领域的 mobile
54、 svg 标准。 mobile svg 主要用于各种资源非常有限的移动设备,所以在实现 mobile svg 时,性能指标成为最主要的指标。由于移动设备在 cpu 速度、内 存大小、支持的显示颜色等各个参数上有很大的不同,单一的专业标准很难满 足所有移动设备的要求。因此,为了覆盖不同移动设备家族的需求,svg 工作 小组最终制订了两个级别的 mobile svg 专业标准。一种专业标准是 svg tiny (svgt),适用于资源高度受限的移动设备,如手机;另一种专业标准是 svg basic (svgb),适用于高端的移动设备,如 pda 等。由于移动设备硬 件条件的限制,相对于标准的 sv
55、g,mobile svg 在支持的内容、属性、功能 等方面作了限制。svgb 是标准 svg 的子集,而 svgt 又是 svgb 的子集, svgt 标准中删除了透明、渐变、裁剪、图案、符号和蒙板等复杂功能,而且 没有对脚本支持。 jsr-226 就是应用于 j2me 平台的可缩放图形 api。它可以对矢量图形进行 缩放,渲染,平移,旋转。jsr-226 具有以下特征:1 支持基本的 svg 特征。2 目标设备配置是 cldc1.1 和 cdc。3 可以和 midp lcdui 和 jsr-209 使用。 目前 jsr-226 已经集成在了 wtk2.5 中,我们的系统在客户端采用了这个 j
56、dk,所以不用加入任何其他插件就可以直接进行矢量图形的绘制了. 第五章第五章 公交智能查询系统公交智能查询系统 5.1 需求分析需求分析 公交智能查询系统要实现以下功能: 24 用户登录客户端界面,在界面上输入自己要查询的公交车站的起始地点和目 的地,然后用户点击 send 将自己需要查询的数据发送到达服务器,在服务器端服务 器查询能够到达经过这连个站点的不需要换乘的车辆和换乘次数不超过两次的公 交车辆,并且选择最好的一辆车发送给客户端,客户端可以看到服务器查询出来的 乘坐那路车辆,在哪个站点换乘,换乘之后乘坐哪路车的信息等,并且给出一共经过 多少个车站.如果服务器没有起始站点或者目的站点,则
57、显示相应的信息,如果服务 器没有查询到直达或者换乘次数少于等于两次的公交车,则要在客户端显示打的 可能比较方便点.最后,为了更加直观地表现我们查询出来的公交车信息,我们将根 据用户的需求给出一个矢量图,在这个矢量图中将直观地表现出起始站点,目的站 点,经过的路线等信息,给用户一个立体的感觉. 5.2 总体设计总体设计 在建立移动公交智能查询系统时,由于移动终端设备资源有限,它不提供直接对后 台数据库的访问能力,因此要想使移动设备终端能够访问到数据库,必须使用 j2ee 技术,根据需求,一个移动公交智能查询系统必须建立移动终端智能技术(使 用 j2me)技术,和服务器端应用程序(使用 j2ee
58、技术),基于 j2me 和 j2ee 的移动 公交智能查询系统架构图如下(图 5-1): 根据需求分析,可以看到本系统主要涉及到两大模块,一个是客户端模块,一个是 移动公交智能查询系统 25 服务器端模块. 在服务器端模块,我们使用 jbuilder2005+weblogic8.1 来实现. 在 java 开发工具中,jbuilder 一直是最受开发者推崇的工具,jbuilder2005 秉承 borland 走在 java 开发技术的前沿的理念,加入了对多款业内新技术的支持,如 jsf,j2ee1.4 和 jdk1.5,三者皆为开发 java 网络应用程序的重要技术.此外,它还 包含了先进的
59、性能管理功能.并能与当前多款流行的应用服务器相结合. jbuilder2005 主要用于构建企业级的 java 应用程序,它支持最新的 jdk1.5 和 j2ee1.4,大大提高了程序代码的生产率和质量,缩短了开发周期. weblogic 是用于开发、集成、部署和管理大型分布式 web 应用、 网络应 用和数据库应 用的 java 应用服务器。将 java 的动态功能和 java enterprise 标 准的安全性引入大型网络应用的 开发、集成、部署和管理之中。 bea weblogic server 拥有处理关键 web 应用系统问题所需的性能 、可扩展性和高 可用性。 在客户端采用 jb
60、uilder2005+wtk2.5 的实现方式. 5.3 详细设计详细设计 5.3.1 服务器端服务器端: acceptserver 类类 在服务器端我们设计一个类,这个类主要用来接收客户端传送过来的起始 地点和终点站等数据,然后将这个数据发送到另外一个类 dbquery 类,dbquery 类 查询数据库,根据查询结果返回给这个类查询结果信息,如果结果信息为 100,则代 表没有起始地点,如果结果信息为 101,则代表没有找到终点站信息,如果结果信息 为 102 则代表没有直达或者转乘需要超过两次次,如果结果信息为 103,则代表查 询成功,并且返回全部能够从终点站到达目的站点的所有直达和需
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模具行业法律法规与标准考核试卷
- 玻璃涂层技术考核试卷
- 电气安装工程的监理与验收程序规范标准考核试卷
- 相机购买指南与消费建议考核试卷
- 玻璃太阳能集热器考核试卷
- 景区旅游市场秩序维护考核试卷
- 玩具设计中的故事性与品牌塑造考核试卷
- 成人高等教育计算机图形学与虚拟现实考核试卷
- 粮油企业绿色采购与供应链管理考核试卷
- 宁夏财经职业技术学院《地质资源与地质工程进展与创新》2023-2024学年第二学期期末试卷
- 旅游接待业考试题及答案
- 店铺装修施工方案
- 2025火灾报警产品强制性产品认证实施细则
- 中考数学《数与式》专题训练(含答案)
- 新生儿呼吸窘迫综合征的护理查房
- 体外诊断试剂培训课件
- 《ICC概述》课件:揭秘国际刑事法院的职能与运作
- 《建筑装饰工程施工图设计》学习领域课程标准
- DB33T 1214-2020 建筑装饰装修工程施工质量验收检查用表标准
- 消化内科诊疗指南及操作规范
- 液体配制安全
评论
0/150
提交评论