基于Android的花卉交流平台的设计与实现——毕业论文_第1页
基于Android的花卉交流平台的设计与实现——毕业论文_第2页
基于Android的花卉交流平台的设计与实现——毕业论文_第3页
基于Android的花卉交流平台的设计与实现——毕业论文_第4页
基于Android的花卉交流平台的设计与实现——毕业论文_第5页
免费预览已结束,剩余31页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

诚信声明书 毕 业 设 计中文题目基于Android的花卉交流平台的设计与实现英文题目Design and implementation of communication platform for flowers based on Android 院 系:计算机与信息工程学院年级专业: 软件服务(金融服务工程)姓 名:学 号:指导教师: 职 称: 年 月摘 要摘 要该花卉交流平台采用jsp+servlet、javascript脚本控制和Ajax异步交互等技术来开发。数据库采用开源的mysql作为数据存储。结构上分为表现层、业务层和数据访问层。其中表现层采用MVC结构开发;业务层封装业务流程,为适应业务的变更,每一业务模块均有专门的接口及实现类,代码简洁且可适应不同的数据库。该系统严格按照软件开发流程:需求分析、页面设计、概要设计、详细设计、测试运行等。该系统分为服务器端和客户端,角色为管理员,用户和游客。管理员的功能模块为知识分类管理、花卉知识管理、用户管理和评论管理;用户的功能模块为登录注册、花卉百科、我的收藏、交流界面和个人信息;而游客只能对花卉百科和交流界面进行浏览。该论文通过六个章节的描述来介绍了基于安卓的花卉交流平台这个系统,首先从开发背景和目的出发,介绍了该系统的开发意义,接着从需求分析、相关技术分析和可行性分析来介绍该系统,再接着介绍了系统设计,然后对系统进行实现,最后对系统进行测试和总结。关键词:花卉知识交流;安卓;JAVA;JSP;MySQL30ABSTRACTABSTRACTThe flower platform uses JSP and Servlet, JavaScript script control and Ajax asynchronous interactive technology to develop. The database uses the open source MySQL as the data storage. The structure is divided into presentation layer, business layer and data access layer. The presentation layer uses MVC structure development. In order to adapt to the change of the business, each business module has a special interface and implementation class, the code is simple and can be adapted to the different database. This system is in strict accordance with the software development process. The development process of the system is requirement analysis, page design, outline design, detailed design, test run and so on.The system is divided into server and client. Role is divided into administrators, users and visitors. The administrators function module is the knowledge classification management, the flower knowledge management, the user management and the comment management. The function module of the user is registered, flower encyclopedia, my collection, communication interface and personal information. And visitors can only browse flowers encyclopedia and exchange interface.This paper introduces the system of flower platform based on Android through the description of the six chapters. First of all, this paper introduces the significance of the system from the background of the development and the purpose of the system. Then it introduces the system from the demand analysis, the related technical analysis and the feasibility analysis. After that, it introduces the system design and system implementation. At last, the system is tested and summarized.Keywords: Flower knowledge exchange; Android; JAVA; JSP; MySQL目 录目 录第1章 引言11.1开发背景11.2目的与要求11.3论文组织结构2第2章 系统分析32.1可行性分析32.2相关技术分析与设计42.2.1 JSP和JDK介绍42.2.2 MySQL介绍52.2.3 MVC设计模式52.2.4 Tomcat简介62.2.5安卓技术72.3需求分析72.3.1功能需求分析7第3章 系统设计123.1系统结构设计123.2数据库设计13第4章 系统实现164.1系统的运行环境164.2关键问题的实现164.2.1系统服务端布局164.2.2服务端与客户端的交互174.2.3收藏功能细节184.3功能实现184.3.1服务端功能模块界面184.3.2手机端功能模块界面22第5章 系统测试275.1测试概要275.2服务端功能测试275.3手机客户端功能测试285.4测试结论29第6章 结论与展望306.1总结306.2进一步工作的方向30参考文献31致 谢32第1章 引言第1章 引言1.1开发背景为了给爱花人士提供一个交流养花心得、分享养花乐趣平台,本文设计了基于Android的花卉交流平台软件,该软件的设计不仅仅是花友之间的交流,并且可以通过该软件实现商家与买家的线下交流,通过用户的分享,我们也可以了解到更多的生活美景。该软件是利用 Andorid 移动开发平台,采用了软件工程中的结构化思想,设计并实现了基于Android系统的手机端交流平台软件1。用户通过使用本系统,能够随时随地方便的在手机上分享和交流生活中的乐趣。该软件命名为花卉交流平台,是由于系统有个花卉百科模块,在此模块可以浏览与花卉相关知识和文章。但是并不局限在花卉的交流,只是通过这个话题让许多人联系起来,在该平台你可以畅所欲言,随时随地的发表说说。该软件的意义是为了让更多的爱花人士可以分享自己的养花经验,欣赏更多的花卉,了解更多的花卉知识,给爱花的人一个交流互动平台,通过这个平台认识新的朋友,商家也可以在该系统中上传相关花卉产品,用户通过评论联系商家,进行线下交易。综合所述,研究这样一个“基于安卓的花卉交流平台的设计与实现”课题具备了研究条件和基础。1.2目的与要求该系统开发的目的主要是要实现一款安装简单、使用方便、安全可靠,用户可以随时随地为爱花、养花的花友们提供一个易于交流、体验、互动的社交平台的手机软件。通过这个软件,用户拍照分享周边的花卉,向花友们求助,把志同道合的养花人聚集在一起,扩大交友的圈子。该系统开发的要求是提供爱花人士一个分享了解交流花卉知识的平台。该系统可分为开发者要求和用户要求。开发要求指系统在设计和开发上需要完成的效果。而用户要求指该系统要能够尽量做到符合用户使用需求的这点要求。从开发要求上来看,又可以细分为功能要求,界面要求两大方面2。功能要求即系统的功能要全面、合理、有规划。界面要求就是系统的界面应该符合大众的审美标准。具体体现为(1)系统的界面要求简洁清晰(2)系统的界面要尽可能的容易操作,通俗易懂(3)系统的界面安排合理有序(4)系统的界面要人性化设计。1.3论文组织结构该论文分成六个章节,其中包括引言、系统分析、系统设计、系统实现、系统测试以及总结和展望。通过这六个章节对系统从构想到开发到结束进行了描述,下面通过对各个章节的简单介绍来了解论文。第一章为引言,主要描述了系统的开发背景、目的和要求以及论文的组织结构。第二章为系统分析,系统分析由三部分组成,第一部分为可行性分析,第二部分为相关技术的分析与介绍,第三部分为需求分析。其中,需求分析为本章节的核心部分。需求分析通过功能图和用例图来体现。第三章为系统设计,该部分主要描述了系统的架构设计以及数据库设计3。第四章为系统实现,该部分主要描述了系统各个模块的实现,以及对系统实现后的截图说明。第五章为系统测试,该部分主要描述了系统的部分功能的测试用例和测试结果。第六章为总结和展望,本章是对该论文的研究内容进行了总结,以及对系统的不足进行说明,说明系统还可以进一步改进的方向。第2章 系统分析第2章 系统分析2.1可行性分析可行性分析指的是该系统是否值得去做,该系统的可行性分析主要包含以下几个部分:技术可行性分析;经济可行性分析;操作可行性分析。下面针对这几个方面来进行简要的阐述。1、技术可行性分析。技术上可行性分析主要是分析目前的相关技术能够完成该系统的开发,开发环境是否能够满足该系统的开发需求等。首先本系统是分为服务端和客户端,服务端的开发工具为MyEclipse,开发语言为jsp,客户端的开发工具为Eclipse,开发语言为java。这些开发工具可以在网上免费下载,在电脑上安装。虽然MyEclipse的使用是有试用期,但是可以通过破解码使得该环境继续被我们使用,所需的开发语言在学校有学过,遇到不懂的也可以百度查找或者向老师同学请教。数据的存储则是用MySql这个开发工具。综合考虑到该系统的规模大小和开发成本,选用MySQL数据库是较为合适的。以上提及的所以开发工具能够满足服务端管理员和客户端用户的功能需求,能够处理好大量数据,并且存储好数据4。既安全又实用,满足数据库的设计条件。所以该系统在技术方面是完全可行的。2、经济可行性分析。经济可行性分析主要分析该系统是否需要投入资金,开发后是否能够回收资金。本系统设计使用个人笔记本电脑在Eclipse等开发软件进行开发,Eclipse等开发环境软件可以在网络上免费下载。参考资料主要是来源于学校图书馆的图书、期刊以及一些免费的网络资源,同时由指导老师和同学们提供指导。所以,本系统除去个人的人工成本和几乎可以忽略的电脑消耗外,完全不需要其他的经济投入。设计过程中不设计版权问题和技术难点,不需要投入太多资金,而且本系统可以进行交友,开花店的用户可以在该系统上传和推荐店里面的花卉,通过这种方式宣传,然后在线下交易。因此经济方面和技术方面都是可以实现的5,具有很强的可行性。3、操作可行性分析。操作可行性主要是指本系统开发完成后,客户和管理人员可以在软件开发人员的简单指导下,管理员可以通过浏览器打开管理员界面,对知识分类等功能进行操作,包括基本的增删改查,用户可以按照简单的操作说明书来操作手机端软件。实质上使用本系统只是一些简单的操作,只要有一定计算机操作知识以及会使用智能手机都是能够操作,只要按照一定的操作步骤都可以使用本系统。而且该系统的功能点虽然多,但是在服务端构建网页时都有进行相应命名,比如添加知识分类、知识分类列表等,这些可以很容易就知道是进行什么操作。综上所述,该系统是具有开发价值的,系统的开发是完全可行的。2.2相关技术分析与设计2.2.1 JSP和JDK介绍JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页文件(*.htm,*.html)中插入Java程序段(Script)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和Script,来封装产生动态网页的处理逻辑。网页还能通过tags和 Script访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JDK 是JSP的技术基础,而且大型的Web应用程序的开发需要JDK和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JDK(Java Development Kit)是Sun Microsystems针对Java开发的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。JDK包含的基本组件包括:(1)javac:编译器,将源程序转成字节码;(2)jar:打包工具,将相关的类文件打包成一个文件;(3)javadoc:文档生成器,从源码注释中提取文档;(4)jdb:debugger,查错工具;(5)java:运行编译后的java程序(.class后缀的);(6)appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器;(7)Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件;(8)Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义;(9)Jconsole:Java进行系统调试和监控的工具。2.2.2 MySQL介绍MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。MySQL数据库在WEB应用方面使用频繁,它是一种关系型数据管理系统。相对于ORACLE数据库来说,MySQL更多地被运用于中小型WEB应用上6。就MySQL数据库的特点来看,首先,MySQL数据库系统是关联型数据库,即它把数据库中不同业务类型的数据保存在不同的表中,并在表之间建立关联。关联使得数据库的灵活性大大提高。其次,MySQL数据库系统的SQL语言是一种标准化语言,标准化语言方便了程序员的开发和使用。另外,MySQL的开源性特点从某种意义上来看,也降低了成本。除了以上这几点特征,MySQL数据库还具有很多的优势特征,比如它支持多线程、提供多种数据库连接方法等。2.2.3 MVC设计模式MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写。 MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC设计模式是将应用数据和业务逻辑、数据的表示以及数据的交互相分离,即分成模型、视图和控制器三个不同的实体7。视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和像XHTML,XML/XSL,WML等一些标识语言和Web services.模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。MVC模式的处理过程:(1)控制器接到用户请求,调用适合的模型进行处理;(2)模型依据用户请求做出相应的业务逻辑处理之后返回数据;(3)控制器接收数据,用对应的视图格式化数据来呈现给用户。2.2.4 Tomcat简介Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行Tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。2.2.5安卓技术Android 是Google开发的基于Linux平台的开源手机操作系统。Android本来的意思是“机器人”。 Android 6.0 Marshmallow是Android最新版本,中文为“棉花糖”。不过从Google一月一度的安卓各版本市场份额数据来看,6.0并没有没什么起色,在这之前的5.0棒棒糖已渐渐成为主流。自从2008年9月,谷歌正式发布了Android 的第一版。安卓开发环境主要有Android SDK、Eclipse与ADT。其中,Android SDK是由谷歌提供的Android开发工具包。Eclipse是开发Java应用程序最好用IDE工具之一。 Android开发的四大组件分别是活动(Activity)、服务(Service)、广播接收器(BroadCast Receiver)和内容提供器(Content Provider)。其中,活动(Activity)是Android应用程序中的每个界面,用户可与其进行点击、触摸等交互。服务(Service)在后台运行,即使用户退出了,服务仍然是可以继续运行的。广播接收器(BroadCast Receiver),允许应用接收来自各处的广播消息,比如电话、微信等,可以根据广播名称不同,做相应的操作处理。除了可以接受别人发来的广播消息,自身也可以向外发出广播消息。内容提供器(Content Provider),为应用程序之间共享数据提供了可能,比如你想要读取系统电话本中的联系人,就需要通过内容提供器来实现。Android系统为开发者提供了丰富的系统控件,开发者可使用传统的控件,也在传统控件的基础上自定义样式,使得界面更加有创意。常见控件有:TextView、Button、EditText、布局控件等。Android系统还自带了SQLite数据库。Android的开发环境主要有Android SDK、Eclipse与ADT。Android SDK是由谷歌提供的Android开发工具包,在开发Android程序时,我们需要引用该工具包,里面包含了开发Android应用程序的API。Eclipse是开发Java应用程序最好用IDE工具之一,特点是开源、超强的插件功能、可支持多种语言开发。当然除此之外,谷歌也推出了Android Studio。为了推广Android Studio,在谷歌上已经不更新Eclipse上的插件。ADT全称叫做Android Development Tools,是谷歌提供的一个Eclipse插件,用于在Eclipse提供一个强大的、集成的Android开发环境。Android 的应用程序框架开发者也完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。2.3需求分析2.3.1功能需求分析花卉交流平台主要服务于那些爱花人士,为他们提供花卉知识和交流的平台,该系统分为服务器端和手机客户端,所以总体分为两大模块:服务端功能模块和客户端功能模块8,两个模块又可以分多个子模块服务端功能模块的划分如图2.1所示:图2.1 服务端功能结构图1、 用户管理模块该模块主要对注册的用户进行查看、修改和删除,用户的信息包括账号、密码、邮箱和电话。图2.2 用户管理模块用例图2、 知识分类管理模块 该模块对花卉百科的知识进行分类管理,可分为花卉赏析、养花知识、养花技术等,管理员可以对该分类进行修改和删除。图2.3 知识分类管理模块用例图3、 花卉知识管理模块该模块是基于知识分类管理模块的基础上进行操作的,可以在知识分类栏中的某类添加内容,上传文字和图片供使用者阅读,管理员可以对这些上传的文章进行修改和删除。图2.4 花卉知识管理模块用例图4、 评论管理模块该模块管理员可以对用户浏览文章后的评论进行审批,合理的点审核通过,不合理的点审核不通过并且删除。图2.5 评论管理模块用例图客户端主要功能模块划分如图2.6所示:图2.6 客户端功能结构图1、 用户登录注册模块用户打开软件就可以看到此模块的界面,没有账号的用户可以先进行注册,注册的信息包括账号、密码、邮箱和电话,注册成功后可以返回界面进行登录。图2.7 用户登录注册模块用例图2、 花卉知识列表模块用户可以在该模块浏览分类栏目,包括养花知识、养花技术等,在这些栏目中管理员会添加文章以便用户浏览。图2.8 花卉知识列表模块用例图3、 个人信息模块用户登录后,可以修改个人信息,包括密码、邮箱、电话,用户的账号是不能修改的。图2.9 个人信息模块用例图4、 我的收藏模块用户在浏览花卉知识文章的时候可以把喜欢的文章进行收藏,收藏后可以在我的收藏里面找到此文章。图2.10 我的收藏模块用例图5、 知识交流模块用户可以在该模块上传文字和图片,其他用户可以对上传的说说进行评价和交流。图2.11 知识交流模块用例图第3章 系统设计第3章 系统设计3.1系统结构设计该系统的结构是根据Android Native App框架以及MVC设计模式的理论来设计整个系统结构,采用分层设计的思路,系统层次架构图具体内容如下图3.1所示:图3.1系统层次架构图如图3.1所示,系统架构可以分为两个部分:客户端和服务器端。客户端可以分为界面表现、业务逻辑和数据模型。以下是对着三个的描述:(1)界面表现也就是手机客户端的界面制作,用安卓开发,这部分是为了给用户使用的,是一些控件和点击事件9。(2)业务逻辑是用户触发每个活动上的控件,系统内部会自动回应,做出这些响应的方法就是业务逻辑,也就是控制层。这些方法在代码中已经写好,用户不需要知道内部结构,只要对界面进行操作,软件自然给出反应。(3)数据模型是将数据模型单独放在一个类中,可封装应用程序的状态、响应状态查询、应用程序功能、通知试图改变10。服务端可以从字面理解就是管理员操作的,对整个系统进行增删改查等功能。客户端和服务端使用json进行数据交互。3.2数据库设计根据花卉知识交流平台实际要求,本系统共有8张主要数据表,分别是管理员信息表admin、用户信息表user、留言表board、留言回复boardreply、文章表news、类别表newstype、知识评论表newsreply和我的收藏表shoucang。1、 管理员信息表(admin表),该表的设计是用来储存管理员的账号信息,包括账号、密码和创建时间。管理员信息表具体内容如下表3.1所示:表3.1 admin表数据列序号列名数据类型长度主键允许空说明1IDint11是否管理员ID2LOGINNAMEvarchar50是登陆账号3LOGINPSWvarchar50是登陆密码4CREATETIMEvarchar50是创建时间2、 留言表(board表),该表的设计是为了存储用户在交流界面发表的文字和图片,因此该表包括用户ID,照片途径,创建时间等。用户发表后会在此表自动生成相关信息。留言表具体内容如下表3.2所示:表3.2 board表数据列序号列名数据类型长度主键允许空说明1IDint11是否留言表ID2USERNAMEvarchar30是用户名3IMGPATHvarchar200是照片路径4CREATETIMEtimestamp是创建时间5CONTENTvarchar900是内容3、 留言回复表(boardreply表),该表的设计是为了存储其他用户对某个用户发表的说说进行回复的信息,其中包括用户名,创建时间和回复内容。留言回复表具体内容如下表3.3所示:表3.3 boardreply表数据列序号列名数据类型长度主键允许空说明1IDint11是否留言表ID2USERIDvarchar30是用户id3CREATETIMEtimestamp是创建时间4CONTENTvarchar900是内容4、 文章表(news表),该表的设计是为了存储管理员发表的文章,其中包括文章名称,发布人,图片路径,创建时间等。文章表具体内容如下表3.4所示:表3.4 news表数据列序号列名数据类型长度主键允许空说明1IDint11是否主键ID2NAMEvarchar100是文章名称3AUTHORvarchar50是发布人4TYPENAMEvarchar100是类型名称5TYPEIDvarchar10是类别ID6DESCRIPTIONvarchar900是描述7STATEvarchar10是状态8IMGPATHvarchar200是图片路径9CREATEUSERvarchar20是创建用户10CREATETIMEtimestamp是创建时间5、 我的收藏表(shoucang表),该表的设计是为了存储用户在浏览文章时遇到喜欢的文章可以把该文章收藏起来,其中包括的数据列区别于文章表少了状态这一列,我的收藏表具体内容如下表3.5所示:表3.5 shoucang表数据列序号列名数据类型长度主键允许空说明1IDint11是否主键ID2NAMEvarchar100是文章名称3AUTHORvarchar50是发布人4TYPENAMEvarchar100是类型名称5TYPEIDvarchar10是类别ID6DESCRIPTIONvarchar900是描述7IMGPATHvarchar200是图片路径8CREATEUSERvarchar20是创建用户9CREATETIMEtimestamp是创建时间6、 知识评论表(newsreply),该表的创建是为了存储用户对文章的评论信息,其中包括文章ID,用户ID,创建时间等,知识评论表具体内容如下表3.6所示:表3.6 newsreply表数据列序号列名数据类型长度主键允许空说明1IDint11是否回复ID2NEWSIDvarchar100是文章ID3USERIDvarchar100是种类名称4CONTENTvarchar100是创建人5CREATETIMEtimestamp是创建时间7、 用户信息表(user表),该表用来管理用户信息。该表为系统的基础表,设计该表是为了满足用户注册、登陆系统的需求。其中包括账号,密码,邮箱,电话等,用户信息表的具体内容如下表3.7所示:表3.7 user表数据列序号列名数据类型长度主键允许空说明1IDint11是否注册用户ID2LOGINNAMEvarchar50是登陆账号3LOGINPSWvarchar50是登陆密码4USERNAMEvarchar50是姓名5EMAILvarchar50是邮箱6TELvarchar50是电话7CREATETIMEtimestamp是注册时间8、 类别表(newstype表),该表用来管理知识分类栏目,存储分类名称,创建人,分类时间等,类别表的具体内容如下表3.8所示:表3.8 newstype表数据列序号列名数据类型长度主键允许空说明1IDint11是否文章种类ID2TYPENAMEvarchar100是种类名称3CREATEUSERvarchar100是创建人4CREATETIMEtimestamp是创建时间第4章 系统实现第4章 系统实现4.1系统的运行环境系统服务端使用jsp+servlet语言和结构进行开发,开发工具使用MyEclipse智能开发功能。数据库采用mysql数据库。客户端采用eclipse+adt进行开发,然后使用json与服务器的数据进行交互。4.2关键问题的实现4.2.1系统服务端布局系统服务端布局使用了frameset标签将页面分为上部,左侧和右侧三个页面。上部分是平台的名称和退出按钮;左侧是管理员所操作的具体功能,比如:添加知识分类、知识分类列表、添加花卉知识、花卉知识管理、添加系统用户、系统用户列表、注册用户管理和安全退出;右侧是具体的操作和操作结果。代码如下:花卉交流平台frame src=/admin/top.jsp name=topFrame scrolling=Nonoresize=noresize id=topFrame /frame src=/admin/center.jsp name=mainFrame id=mainFrame /frame src=/admin/down.jsp name=bottomFrame scrolling=Nonoresize=noresize id=bottomFrame /4.2.2服务端与客户端的交互JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且JSON可以表示比名称 / 值对更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。该系统就是采用JSON来进行交互。代码如下:public void run() try JSONObject paraObj = new JSONObject();paraObj.put(id, id);paraObj.put(action, view);String result = HttpUtil.getJsonFromServlet(paraObj.toString(),ShoucangService);if (!result.equals() Shoucang news = JSONObject.parseObject(result,Shoucang.class);Map newsMap1 = new HashMap();newsMap1.put(id, String.valueOf(news.getId();newsMap1.put(title, news.getTitle();newsMap1.put(createTime, news.getCreatetime();Spanned content = Html.fromHtml(news.getContent(),imageGetter, null);newsMap1.put(content, content);Message msg = new Message();msg.what = 1;/ 访问成功并有返回值msg.obj = newsMap1;handler.sendMessage(msg); catch (Exception ex) System.out.println(ex: + ex.getMessage();Message msg = new Message();msg.what = 0;/ 网络异常handler.sendMessage(msg);4.2.3收藏功能细节在Android的设计思想中,为了确保用户顺滑的操作体验。一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务。因此我们必须要重新开启一个后台线程运行这些任务,而往往这些任务最终又会直接或者间接的需要访问和控制UI控件。例如访问网络获取数据,然后需要将这些数据处理显示出来。就出现了上面所说的情况。原本这是在正常不过的现象了,但是android规定除了UI线程外,其他线程都不可以对那些UI控件访问和操控。所以Android中后台线程如何与UI线程交互?这里分为两种情况,当网络异常发送0,网络正常返回1且返回数据。代码如下:class NewsListThread implements Runnable public void run() try JSONObject paraObj = new JSONObject();paraObj.put(action, list);paraObj.put(userid, String.valueOf(myApp.getUser().getId();String result = HttpUtil.getJsonFromServlet(paraObj.toString(),ShoucangService);Message msg = new Message();msg.what = 1;/ 访问成功并有返回值msg.obj = result;handler.sendMessage(msg); catch (Exception ex) System.out.println(ex: + ex.getMessage();Message msg = new Message();msg.what = 0;/ 网络异常handler.sendMessage(msg);4.3功能实现4.3.1服务端功能模块界面1、 管理员登录以及主界面界面运行myeclipse,运行成功后界面如下图4.1所示:图4.1管理员登陆界面管理员在服务端网页界面进行登陆,登陆后进入系统的后台管理界面,在系统左侧显示了管理员具有的所有功能模块菜单。布局使用了frameset标签将页面分为上部,左侧和右侧三个页面。管理员可以有多个,只要在添加系统用户里面进行注册,就可以增加管理员,也可以在系统用户列表里面删除管理员的,如下图4.2所示:图4.2 管理员登录后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论