毕业论文---基于Android的手机商城设计与开发.pdf
-1绪论.31.1 课题背景3.2 相关技术的发展现状 .1 手机操作系统的发展现状.43 手机操作系统的发展现状 52Android 的架构分析6 2.1 Android 特征.2 Andrid 架构72.1 关键应用程序.2.2 应用程序框架7 22.3 系统运行库.72.ndoid 应用的构成和工作机制.2.4 Androd 与其他手机操作系统的比较.2.5 本章小结.13 系统的总体框架 .1 系统需求分析103.系统主要功能描述 1.1 客户端登陆注册.1.2 系统主要功能描述 1 32.3 订单功能.13.2留言评价功能 1 3.2.5 服务器管理功能.143.系统流程15.4 系统框架.164 详细设计与实现 174.1 详细设计.1741.详细设计.14.2 后台实现.184.2 系统实现 42.1 用户首页的实现过程 4.22 用户注册的实现过程 184.23 用户登录的实现过程 194.2.4 用户搜索的实现过程.204.2.用户浏览的实现过程 214.用户购买的实现过程 1-4.2数据库连接的实现.22.后台的实现235.总结和展望.26Andrd 手机前景.317 结束语358 参考文献35基于 ANDROI的小小手机商城-内容提要:内容提要:随着移动通信与Inrnet 的飞速发展及相互融合,GPRS 使无线网络高速接入到nternet 成为现实,移动用户从而可以享受到Inernet 提供的服务。这样,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。本文首先给出了系统研究背景,对当前手机操作系统发展做了简单的介绍。进而详细的分析了andri的特征、架构、以及anrid 应用的构成和工作机制,并对 aroid 于其他手机操作系统进行了比较,说明了nroi在手机操作系统中的优势。本系统主要用于对手机上网用户,在线浏览该网站,用户管理员可以对商品信息进行增删改查等功能,用户可以在该网站注册,注册后的用户还可以商品进行购买以及评价。使用该系统很大的提高了用户购买能力。关键词关键词:Anrid、SP、eclips、myeclpe-.5、mt、开源、服务器、移动客户端、手机商城。SummarySummary:With mobile communi ationanditerne the rap velpmen and inteationGPRS the wireless networksped itent acss to mob le u to becmea reliy,so can enjy the inene serie.thu,t obileterminal not onl a conicatio networ emnl,ilbecome the tert emials.he firt o stud te bacgrund othe currentytem,mie operaingysemeveon made abri intrductin.hent etailed anale thcharaeristics,asemabut theadrod,ou e noid ppliaionfor mehans,and o abo the andro o the othr opratin sstem,obe oe aseaied at the androd thephone intepratingsytm.hi syms mail ued foolinebrowsg te interntuses mobie phoe,web sit,he adminisrato can be oniformion to lo k for functionsadd adele,uers can,afterthe registrtnofuercanmke purchseof gos an evaluaton.use he syste is very muc mprove he erto buy.KeKeworwor:ndrod、lse、myclipe-.5、tomca、Openoure、theer、amoble lien、mbilphons shoing cene.1 1绪论-.1 课题背景随着移动通信与 Intere向移动终端的普及,网络和用户对移动终端的要求越来越高,而 Sybin,Windowsoble,PalmOS 等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信()技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G 网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Googl为此与 20年 11 月推出了一个专为移动设备设计的软件平台 Andrd。Adoid是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Adrod是由inxJava 构成的开源软件,允许所有厂商和个人在其基础上进行开发。Andro平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。根据中国互联网信息中心(IC)发布的第 22 次中国互联网络发展状况统计报告显示,截止 2008 年 6 月底,我国网民数量达到了 2.5亿,首次大幅超过美国,网民规模跃居世界第一位,其中手机网民达到 305 万,手机上网成为网络接入的一个重要发展方向。1.2 相关技术的发展现状1.1 手机操作系统的发展现状almOS 是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占用的内存非常小,允许用户在其基础上编写和修改相关软件,是支持的应用程序更加丰富多彩。Pa 在其它方面也还存在一些不足,如 Plam 操作系统本身不具备录音、M3 播放功能等,但是可以通过加入第三方软件或硬件设备来实现。其代表性的产品有Palm m05、Palmm500、Pal II等。Syin 是一个实时性、多任务的纯 32 位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持 GR、蓝牙、SynML 以及G 技术。Wnows mobile 系列操作系统是从微软计算机的 Wndo操作系统上变化而来的。Wndosmble 系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件设置(如内存、储存卡容量等)上也采用其他操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。Windos ol系列操作系统包括 marPhone 以及 Pocet C Pn两种平台。Pocet PC Phne 主要用于掌上电脑型的智能手机,而 SartPhone 则主要为手上智能手机提供操作系统。inx 系统是一个源代码开放的操作系统。由于其开源性,手机制造商可以根据实际情况开放自己的 Linux 手机操作系统,从而也能够吸引更多的软件制造商在其上开发更多的应用软件,丰富第三方的应用。但是 Linux 操作系统也还存在一些不足,集成开放环境和基于 Linux 的产品与 P的连接性比较差等。.论文组织结构本文首先分析了系统的研究背景,介绍了当前手机操作系统、即时通讯软件的发展现状和即时-通讯协议,以及本文的主要内容。第二章,介绍了Android的特征、Andrid的架构以及Adr应用的构成和工作机制,并对Anroi与其它手机操作系统进行了比较,说明了ndid的优势。第三章,详细论述了在Andrid平台上开发小小手机商城系统,提出了系统的主要功能,系统的总体业务描述和架构设计。第四章,介绍了系统的设计特点,着重论述了账户操作的工作流程。第五章,给出本文的结论并对课题进行了进一步的展望。2.Adri的架构分析Adod 是一个移动设备的软件平台,是由 LinxJava 构成的开源软件,它提供包括 SD、eyApps、iddlewe、Linux Krne四个部分在内的全套手机软件方案。它开放了基于inu内核以上的开发工具,从而保证了内容的可移植性和多样性。Andrd 平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用。2.1Android 特征应用框架:用于开发可重用、可替代的组件。Dalvi虚拟机:Androd 采用的 Jva 虚拟机是自主开发的代号为 lvi的虚拟机技术,在保证PI 方面兼容的同时 Dlvik 针对移动手机进行了大幅优化,占用资源更小,运行效率更高。内嵌浏览器:基于开源的浏览器网页排版引擎 WebKit。优化的图形:强大的自定义二维图形库。基于 OenGL E1.0 标准的图形功能,在移动3D 开发中有着至关重要的地位。SQLite 数据库:SQLit提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。多媒体支持:支持各种通用的音频、视频和静态图像格式,如 M、JG、PNG 等。Open Cor是 Andoi多媒体框架的核心,所有rid 平台的音频和视频采集、播放的操作都是通过它来实现的。通过 OpenCore,程序员可以方便快速的开发出想要的多媒体应用程序。GM 技术:(依赖硬件)lobl Sstm orMob Communations,全球通讯系统,俗称“全球通”,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。蓝牙,EDGE,3G and iFi:(依赖硬件)蓝牙和 Wi-F都是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。DGE(Ennced at tforGSMElun),是增强型数据速率 SM 演进技术。Cameam,GP,compass,adclrometer:(依赖硬件)PS(lobal Positio ngStem),即全球定位系统。它是由一个由覆盖全球的 4 颗卫星组成的卫星系统。mpass 是一个开放源码的 ava 搜索引擎框架。强大的开发环境:包括一个设备模拟器,调试工具,内存和性能检测,以及lipse IDE 的开发插件。Elpse 是个集成开放环境。2 Anroid 架构-Andrid 的架构是由inux 内核、CC+函数库、Dlvk 虚拟机、应用框架以及关键应用程序构成的。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在DaikVM上运行的。图1Andrid 架构2.2.1.关键应用程序Adroid 会同一系列核心应用程序包一起发布,该应用程序包包括 emi客户端,MS 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用 JA 语言编写的。.2.2.应用程序框架开发人员也可以完全访问核心应用程序所使用的 PI 框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(ists),网格(rids),文本框(txt bxes),按钮(button),甚至可嵌入的 we浏览器。内容提供器(Contnt Prvders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据资源管理器(orce anagr)提供 非代码资源的访问,如本地字符串,图形,和布局文件(lau files)。通知管理器(NtificaionMager)使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器(AivManaer)用来管理应用程序生命周期并提供常用的导航回退功能。22.3系统运行库-Anroid 包含一些 C/C+库,这些库能被 Andd 系统中不同的组件使用。它们通过 Androd应用程序框架为开发者提供服务。以下是一些核心库:系统 库-一个从 SD 继承来的标准C 系统函数库(bc),它是专门为基于 embeddlinux 的设备定制的。媒体库-基于aetideoOpCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括 ME4,H.26,MP3,AAC,A,J,PG。urfae Manager 对显示子系统的管理,并且为多个应用程序提供了 2D 和 3D 图层的无缝融合。LiWebCore-一个最新的 web 浏览器引擎用,支持 Adri浏览器和一个可嵌入的 wb 视图。SG-底层的 2图形引擎3 lbrares-基于nLE1PIs 实现;该库可以使用硬件 3D 加速(如果可用)或者使用高度优化的 3D 软加速。Freeye 位图(itmp)和矢量(vector)字体显示。SLit 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。1.3.2.运行库Andrid 包括了一个核心库,该核心库提供了 JAA 编程语言核心库的大多数功能。每一个nro应用程序都在它自己的进程中运行,都拥有一个独立的 Dlik 虚拟机实例。Dk 被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik 虚拟机执行(ex)的alvik 可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由 J编译器编译,然后通过 S中的 dx 工具转化成.dex 格式由虚拟机执行。Dalvk 虚拟机依赖于 linu内核的一些功能,比如线程机制和底层内存管理机制。2.4.Linux 内核ndroid 的核心系统服务依赖于inu 2.6 内核,如安全性、内存管理、进程管理、网络协议和驱动模型。Lnx 内核也同时作为硬件和软件栈之间的抽象层。2.3.程序库3 Andod 应用的构成和工作机制Anrid 应用程序来说,是由 Acivity、Itent ceiver、Servie、onttPrvdr 四部分组成,但并不是每一个 Andoi应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件 Android 应用程序中所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。Anod 应用的构成和工作流程图如下:-图 2-2drod 的构成和工作流程24 Anrd 与其他手机操作系统的比较我们主要从手机操作系统的 ortblity、Reliabiliy、Conneiviy、Product Diverity、OpenPltfo、KernaSize、tandar、Securiy 和 Special Features 这九个方面进行了比较,具体的比较结果如下表:-对上表比较的九项每一项以分、.5 分、0 分三个级别来进行了评分,综合各项评分,最好得到的评分结果是 Andro 85 分、Winow mobil 5.5 分、Syian6.5 分。ndo基于开源的 Liux 以及标准的跨平台的编程语言 Jav,而且源代码开放,并且免费允许所有厂商和个人在其基础上进行开发,其开源和免费政策将赢得不少手机制造商的支持。而且在其平台上集成了不少优秀的开源工程,如 Wbki、nG等,相信在不久,将会有更多的优秀工程加入到 Adroid 中来。相比其他手机操作系统过于封闭的特性来说,Andod 在手机操作系统领域将会占有很大的优势,其功能也将会越来越强大。本章小结本章对 Andrid 平台的特征、架构以及 Aroid 应用的构成和工作机制进行了详细的分析。对于 Aoid 应用程序来说,主要由 tty、rvc、IntntReceivr和ten rvier 四部分组成,但并不是对于每一个应用程序,这四部分都是必须的。Acit是应用程序中最重要的一种构成块,我们对其进行了详细的分析,包括ctivt的生命周期以及 Atit之间的切换。最后对 Ani与其它的手机操作系统从九个方面进行了比较,说明了 Andoi的优势。.系统的总体框架 1.3 系统需求分析本系统主要用于对手机上网用户,在线浏览该网站,用户管理员可以对商品信息进行增删改查等功能,用户可以在该网站注册,注册后的用户还可以商品进行购买以及评价。使用该系统很大的提高了用户购买能力.具体实现目标如下:(1)手机上网用户可以进行浏览网站所有商品。(2)手机上网用户可以进行所需商品的查询。(3)手机上网用户可以对喜欢的商品进行购买但必须进行注册网站会员才可以进行购买。(4)手机上网用户进行网站会员的注册,然后进入用户主界面进行对商品选购,还可以对网站进行留言评价。-(5)商品管理模块,详细记录了产品种类、名称、价格等信息,并根据需求及时更新商品信息。3系统主要功能概述本系统主要实现功能:客户端登陆注册、浏览功能、订单功能、留言评价功能、服务器管理功能。该系统的架构如图 321 所示手机服务器通信链路手机通信链路无线访问点无线访问点手机手机 1.2.客户端登陆注册客户端登陆注册功能:注册手机商城的会员可以进行登录进入该用户的主界面。手机主界面NO登录注册YES登录界面注册界面NO验证验证YES有用户的主界面-图 3-2-2 客户端登陆注册流程图图 3-3 客户端登陆注册用例图3.2.2浏览功能浏览功能:对网站所有的商品进行浏览操作。手机主界面手机电脑照相机其他图 3-2-浏览功能的流程图图 3-5 浏览功能的用例图-3.2.3 订单功能订单功能:注册手机商城的会员可以进行登陆,然后对所选商品进行购买,下订单。手机主界面商品浏览NO订单用户登录状态YES接受订单图 3-2订单功能的流程图图 32-订单功能的用例图324 留言评价功能留言评价功能:手机商城的注册用户可以在登录自己的用户主界面后对商品进行评价。-手机主界面NO用户登陆判定YES用户登陆的主界面选定商品进入商品界面评价失败评价NO判定YES评价成功图-2-8 留言评价流程图图 3-9 留言评价用例图服务器管理功能:手机商城的网站管理员登录到后台数据库可以对商品信息进行查询,修改,增加以及删除。例如节假日要对商品进行促销的修改价格。3.2.5 服务器管理功能-管理员登录数据库管理查询修改增加删除数据库图-2-0 服务管理流程图图 3-11 服务管理用例图3.系统流程用户在浏览网站时首先看到的就是网站首页。在首页用户可以快速浏览最新商品,了解热门商品和推荐商品,也可以搜索已知的商品查看具体信息。用户如果想要购买商品时必须要注册成为会员,在用户查看完商品的详细作息后,可以把自己想要购买的商品放入购物车当中,也可以随时修改、删除购物车里的商品,如果用户对购物车里的商品都很满意,可以去下订单。这时相关的程序模块会将用户所提交的所有信息都记录在数据里以便于商城的管理人员可以核对信息并在收款后准备发货,发货成功并且用户确认收到货物时整个购物过程便结束了。在电子商城的后台管理方面还需要添加、修改、删除商品,同时要对商品进行分类,订单的处理等都需要电子商城的管理人员来操作。为了更加清晰地表达系统的业务功能模块,画出流程图,对于不同的角色,所承担的任务各自不同,流程不一样,包括客户端流程(如图 3-3所示)和服务端流程(如图 3-所示)。-手机主界面NO登录注册YES登录界面注册界面NO验证验证YES有用户的主界面图 3-3-1 客户端流程图管理员登录数据库管理查询修改增加删除会员管理数据库图 3-3-2 服务端流程图3.4 系统框架-后台管理会员管理商品管理订单管理添加删除查找添加删除图 3-3-后台管理框图用户登录注册浏览商品查找商品订购商品评价商品图 3-客户端框图详细设计与实现.1.4 详细设计 1.1.4 前台实现根据客户需求分析,小小手机商城的前台主要包括:搜索,登录,注册,商品浏览,商品购买,留-言评价等功能模块。前台流程如下图 4-1-1:手机主界面NO登录注册YES登录界面注册界面NO验证验证YES有用户的主界面搜索浏览商品购买留言评价图 4-1 前台实现流程图4.1.后台实现小小手机商城的后台主要是三个模块组成,分别是:会员管理,购买信息的管理和商品信息的管理(包括数据的查询,修改,增加,删除)。后台流程如下图-1-2:-管理员登录数据库管理购买信息的管理查询修改增加删除会员管理数据库图 4-1-后台实现流程图4.2 系统实现4.用户首页的实现过程手机用户登录的前台首页,用户可以掌握最新网站商品信息,还可以实现搜索,浏览等功能。前台首页运行结果如图 4-21 所示:图 4-21 前台首页运行界面4.2.2 用户注册的实现过程用户注册也就是收集、记录用户详细信息的一个过程,程序将用户的注册信息写入到了 phoneuernfo 表里。用户注册页面运行结果如图-2-2 所示:-图-2-用户注册页面运行界面4.2.用户登录的实现过程用户经过注册成为网站会员,登录后可以进行购买,留言评价等功能。用户登录页面运行结果如图 4-所示:图 4-2-3 用户登录页面运行界面4.2.4 用户搜索的实现过程用户在经过对网站商品信息的了解,根据个人喜好对商品进行筛选,例如用户对手机中 n品牌较为喜爱,可以在搜索框中键入 sony,网站将所有 sony 的所有商品显示,用户可以继续进行后续操作。用户搜索页面运行结果如图 4-4 所示:-图-2-4 用户搜索页面运行界面 5.2.4 用户浏览的实现过程用户在登录首页后,可以查看商品信息。用户浏览页面运行结果如图 4-5 所示:图2-5 用户浏览页面运行界面 62.4 用户购买的实现过程用户在浏览商品时想要进行商品的订购可以点击购买按钮,进入购买页面,填写购买信息,商品名称和商品个数必填,用户留言可以为空。用户留言将与其他购买信息写入buyinfo 表,后台管理将根据表中信息对商品进行调整,如某些商品在长时间没有订购,可以对商品作下架处理。用户购买页面运行结果如图-2-6,427 所示:-图 4261 用户购买页面运行界面图 4-2-62 用户购买页面运行界面4.2.7 数据库连接的实现pupuc c c cs s DBHlper ububicic ststt tc c Cnection tConnecn()throwsthrows ClasNoondEcepn,SQLExeptio ResourceBundle bu d=Resourceudl.getBndle(com.eoreb.DBCofg);ting drierClss undle.gString(drerClass);String srid=ule.getStng(rd);Sting pasword=undlgeStrng(passwr);String ur=bune.getSring(url);-./加载驱动程序Clas.orName(or.jt.mm.mys.ivr);no conn=DiverMaager.getoncion(jc:my.2/获得数据库连接ql:/lahst/adid,rot,12);rereurur onn;.2.4 后台实现管理员可以进入 MySQL,在连接 pi 中的 android 数据库中,进行修改。以实现对会员信息管理,购买信息的管理,商品信息的增加,删除,修改,查询。商品信息的管理如下图-2-8-1,对表 prodctn修改,修改字段内容以实现功能。图-28商品信息管理会员信息的管理如下图 428-,对表honeueinfo 修改,完善会员信息,以及删除非法会员。图-8-2 会员信息管理购买信息的管理如下图 4-2-8-3,对表uynfo 修改,管理员对购买信息进行统计,以方便对商品的管理。图 4-23 购买信息管理-5总结和展望在此次项目中我担任 truts2 框架技术支持和手机客户端的设计。(1)在ndroi的手机客户端。具体代码流程为定义一个了 Buttn 类 btnG,从界面中取出按键将tnG实例化,创建一个 Uri 的链接到服务器端,用到的技术就是手机浏览器 WebKit。Andoid应用端开始链接服务器端,将服务器端的页面信息通过手机客户端的ebVew 显示在 Adroid手机界面上。以下是主要的实现代码:blicblic vovod d onCreate(Bndle sedInstnceSate)supersuper.oCae(sadInstaceState);seContenView(R.layout.main);bnO=(utton)ndVieBId(R.dgo);Oeridepublicpublic vovo oCic(Viw v).pars(http:/92.168.143:/SbtnGO.etOCckLstene(n nw w Vew.OlckListner()Urul=Uirut2Test/include.jsp);Inte intent=newnew Itet(IntATIN_VIW,l);tartiity(innt);)(2)为了解决网络的延迟问题,我们可以使用线程把手机客户端程序继续完善,采用了线程后可以解决网络的延迟,应答迟缓的现象,以下是用线程实现的核心代码:ubliclss WbVieDemoxtends Activi y /Clled whn the activ ty is first cr ated.*/-Overrde publicoid oCreat(Bundle icic e)uper.onCreate(icicle);tCntntiew(R.layout.m in);webiew1 new Webiew(this);w View1 .adat(Ca I focus?br/a ref=#Ncant!/a./bdy,text/hml,utf-8);is.etContentVie(webVew1);ogg.info(Dload Fad _=webVew.aoBac());web ie=new WebVew(this);we ViewlodU(ttp:/19268.2.3:862/Sus2est/inlude.jsp);ewThread(ew WeDonlodLiseer(this).start();ebie weView1;clas WbwnlodLisenr imlemens Rnnb,Downloaditr We ViewDeowd;WDowoistenr(biewDo w)his=wd;使用线程代码:pblic vod run()intj=;StriBuffer sb=ne SrinBfer();sbappen(正在连接网络);while(true)t y Thad.slp(4*100);j+;sappend(.);wbVw1=ew WVew(w);webView ladUrl(http:/1.1682143:620Sus2Tes/incude.jp);Meage ms=adlr.otnMsae();mHandlersedMesage(msg);catc(Troalee)oggrifo(toSrig();-.pinttakae();if(=)webVie1 null;Messaemsg=Hadler.oainMesge();mandlersendMesae(sg);reak;pubc vonDownloadFailed(triga0,int g)Ler.info(Dow load Fild_=+arg0);ublic vi onDownloadFshd(String rg)Logger.info(Downoad nihd=ar0);s tentView(webVie);pbic oid onDownloadStart(St in arg0,Stingar,long ag2,Msagearg3,Messae arg4)Logger.(DowloadFad_ +ar);ulicvoi nDownloadSuspe ded(tring arg0,essage rg1)ogerinfo(Doad Fild _ +a);HnlerHader=ne ander()Over i p bicvoi hnleMesage(Mssage msg)uprhandeMsg(m);/i viat();if(webVie1=null)setConnView(webV e);else setCnttView(eVew1);WebVew ebView nul;()在这个项目中,我们项目组主要采用了 MVC的设计模式,MVC英文即ode-View-Contller视图(Vie)与用户交互的界面,对于Web应用系统来说,可以是HTML页面、JS、L和pplet等。控制(ontrller)接收用户请求,根据用户不同请求去调用不同模型,再根据调用的不同结果跳-转到响应的视图,它是应用系统的 CUP,是调度中心。模型(Moel)它是业务逻辑层,是业务逻辑处理的核心。这么来设计就是为了把表示层和下面的业务逻辑层和数据持久层分开。这么可以使层次更加分明,使得分工更加明确。大部分用过程语言比如 ASP、PH开发出来的 eb应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用 HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。下面我们可以用图表看一下他们具体之间的关系:而且sruts框架技术就是很好的实现 MV的设计模式的一种,在我们项目的中的搜索模块中就采用了这种模式,下面我来详细地说明我们是怎么样实现的。(4)首先我们来看 VIW(视图)的东西,在这里我们主要用 P 来开发界面,下面搜索页面的核心代码:abeidth33 bder=0ellsacin0 celdding0heit=8t width=9eight=89 lign=leftclas=x1fosize=2请输入要查信息(如手机型号):td width=127/label/s:fo(5)从手机客户端加载的信息通过 Conroler(在这里就是 stuts.xml 文件)进行判断,通过判断我们可以得知是 clss=com.rient.web.eSearch(即 Actn 为 UerSah)来进行数据的相关处理。那么下面我们就来看一下的 Userear.jaa(在这里就是 MVC 中的模板)文件是怎么处理的。其核心代码如下:-publcls UsrSeach imlementsAcn private List list;plic ListeList()reurnlist;uli vod setLt(List list)is.is=lit;uic Stng execue()thos xcepio atabaseser=w Daaba();rie Strng usesrch;public Strg getUsrsrch()returnusrsearh;Mp userget=new shMap();list user.sear(sersea);i(list.eqa(null)lertrn NPU;retrn SUESS;publi vid etUsrsear(Sringusearch)this.sesarh=uererch;其中代码中用到了列表 Lst 和实例化了 Das类的一个对象 sr,在这里我要解释一下,对象 user 调用了 Dtase 类中的 sarch()方法,而这个方法的返回值就是一个列表 IST。其中在atas中实现了对数据持久层的封装,在本类只需实例化 Dtbse 的一个对象 user,通过ser 来调用实现了对数据持久层的封装的方法sear()方法,具体的 sach()方法是如何实现的,我们可以看一下其核心的代码,代码如下:public st earch(Stringname)Conncon conn=nul;Stateet stmt=l;ist i=new ArrayList();/.加载驱动程序o DBHelper.gDBConnctin();stm=conn.crateStaement();p ur new Hashap();try 3/创建语句对象/4.执行 SL 语句ReultS =stmt-.excutQery(slct poucTy,podutNe,ProdctInfo frm pr+name+);uctif were poductType lie hile(snxt())Prdctin bea new Prdctinf();e.setPrdutTye(rs.geStg(prouctTp));ean.setProdutInf(s.getSrig(ProductIno));bean.setProdtNae(r.etStrng(prodctNme));list.add(bean);()在trut 框架技术中我们还要用到一个很重要的东西就是众所周知的JABEAN,我们可以这么理解 JAVABEAN,在我们用的数据库有这么一张表叫做 rouctifo 表,下面是这张表eurn ist;e.ritaTrace();cach(ClassNotFou dEceptio)atch(SQExcepion e)eprinStakrce();fally/5.释放资源if(tmt!nul)stmt.lo();r catch(SLExeption e).prinSackTra();ty f(con!=nul)conn.clos();ath(QLExcption e)rintSrae();reurn ul;-的截图:在表中我们可以看到这张表中的所有字段,而 JVABEN 所做的事情就是把这张数据表写成一个类。这些表中的字段就是类中的成员属性,并且还需要写出“设置”和“得到”这些属性的相对应的成员方法,下面就是我写好的 JAVAEN,其代码如下:ackage comeorien.wb;ublic cas Poducinf pbic String getPr uctId()pubicSrin etPrdtype()/producName 字段private ting rodctName;ublicid setProdcName(Strig producNme)thi.proua=podcNae;public tring eructNe()eun produtName;publicvoid setroutTye(String produ ype)h.roucType=prodtype;eurnprodutType;pblic vo etductId(String userne)tis.rouctd=roduId;/rouctTye 字段retrnpoductId;/rouctId 字段ivat String pductI;rivate String product ype;-/podutInfo 字段privae tring poducnfo;public trin getProductnfo()/proutPrice 字段rivate Strng producPrice;etrn poductnf;ubli void erouctInf(Stringroductnfo)his.poductInfo=ductInfo;ubic SingetProductrice()return roductPrice;public oidsetProdctrice(ripructPc)(7)最后手机用户搜索的信息会通过 LIST 返回到 JS(即IEW)界面当中,然通过服务器把这些应答的页面返回到手机的客户端,下面就是最终的应答的 JSP 页面的代码,其中要返回的搜索后的信息就在列表IST 当中。tae wid