1、综合设计报告基于微信平台的实时路况和天气查询信息系统的设计学 院 计算机学院 专 业 计算机科学与技术 年级班别 学 号 学生姓名 指导教师 2016年 12 月 27日 摘要微信公众平台方便了用户对微信的深入了解,使得开发者有了发展的空间。微信平台公共账号开发已成为商家实现市场推广的重要手段。本课题是在微信公众平台上实现的,使用户方便地查询路况和天气信息。本系统主要包括发送位置、查看地图和天气查询三个功能。当用户发送位置后会收到发送成功的信息,进入地图后坐标将定位到用户所发的位置,即可看到附近的路况信息了,也可以语音输入xx市的天气,即可以返回当前城市的天气。本系统是在Windows Ser
2、ver环境下,使用MySQL建立数据库,采用JSP对微信进行二次开发,使用HTML5呈现内容。本文分析了微信的背景和现状,根据开发流程,对系统进行整体的分析,利用微信与微信平台的接口实现数据传输与设计,完成了操作便捷的实时路况和天气查询信息平台。关键词 微信;公众号;路况信息;天气信息IIIAbstractWeChat public platform to facilitate the users in-depth understanding of WeChat, allowing developers to develop space. WeChat platform public acco
3、unt development has become an important means to achieve business marketing. This topic is implemented on the WeChat public platform, so that users can easily query the road and weather information. This system mainly includes three functions: sending the location, viewing the map and weather query.
4、 When a user sends position will receive information sent successfully, after entering the map coordinates will be positioned to the user by the position, can be seen in the vicinity of the traffic information, also can voice input XX of the weather, that you can return to the current city weather.T
5、his system is in the Windows Server environment, the use of MySQL to establish a database, using JSP for WeChat two development, the use of HTML5 content. This paper analyzes the background and current situation of WeChat, according to the development process, the overall analysis of the system, rea
6、lize the design of data transmission and the use of WeChat and WeChat platform interface, complete the operation and convenient real-time traffic and weather information query platform.Keywords :WeChat; public number; traffic information IV目 录第一章 绪论11.1项目设计目标11.2 本章小结1第二章 项目涉及的技术、方法或原理22.1 JAVA语言22.
7、2 JSP简介22.3 MyEclipse开发工具32.4 MySQL42.5 微信42.6 本章小结4第三章 总体设计方案43.1系统功能设计53.2业务用例建模53.3业务交互建模63.4 本章小结7第四章 详细设计和程序84.1 B/S结构84.2 数据库逻辑结构设计84.3 数据库表设计94.4 安全性设计104.5 本章小结11第五章 系统实现115.1 JSP服务器的配置115.1.1 服务器端配置115.2 微信服务器的配置145.2.1 配置接口.155.3 系统的软硬件平台165.4 服务器的实现5.4.1 公众账号服务器5.4.2 微信服务器5.5 公众账号5.5.1 发送
8、位置5.5.2 查看地图5.5.3 查看天气5.4 本章小结21第六章 总结与体会23参考文献2528第一章 绪论1.1项目设计目标基于微信平台的实时路况和天气查询信息系统是通过公众平台而开发的,微信用户可以在查找公众号后关注这个平台,这样就能使用我的公众号上的功能。在整个消息的交互中,微信服务器作为一个中间媒介,它主要是把用户发送的消息交给公众账号服务器处理,而公众账号服务器主要做三件事,首先接收微信服务器发来的消息,然后对消息进行处理,最后把处理结果返回到微信服务器。本系统采用B/S结构,开发语言选择的是Java,基于微信的应用。它具有费用低,速度快等特点。基于微信平台的实时路况和天气查询
9、信息系统主要实现了查询路况是否拥堵的功能。微信作为近几年新出来的技术,随着人们不断地关注,它的功能也越来越完善。如今它功能的强大加上微信公众平台可以让所有微信用户都能免费拥有自己的平台,因此使用微信的人也越来越多,随着它的发展趋势,相信用微信这种技术来查询路况信息和和查询天气的方式将会成为主流方式。实时路况和查询天气就是针对现在的交通状况出现的,在经济发展迅速的今天,人们的生活质量提高了,交通的拥堵状况也越来越严重。特别是在上下班时期,或是十一,五一这种国定假日,交通几乎成瘫痪状态。基于微信平台的实时路况查询系统使得用户可以更快、更有效地解决堵车情况,微信用户通过查询地图就能在地图上看到附近的
10、道路是否拥堵,这样可以改变路线以缓解拥堵情况。对于驾车出游的用户来说,实时路况既能反映真实的路况信息和天气信息,也能让微信用户通过线路颜色判断拥堵情况而改变行车路线,选择相对来说不那么拥堵的道路。微信用户也可以通过语音输入xx市的天气,即可以返回当前城市的天气,方便用户用户的出行。1.2 本章小结本章描述了项目以及微信的背景,选择这个项目的意义,并讲解了微信的发展史以及它的功能与特点,然后对我所做的系统做了简单的描述,以及我的系统中用到的开发语言,技术等等。第二章、项目涉及的技术、方法或原理2.1 JAVA语言 Java是面向对象的程序设计语言。Java有个比较大的特点就是它是跨平台性的,主要
11、体现在java虚拟机,如图2-1所示。并且它不会受到环境的限制,只要编译通过后,可以放在其它机子上运行。Java语言是目前使用最普遍的服务器端语言,它涉及各个领域,游戏,网站,电子产品等等。图2-1 java虚拟机2.2 JSP简介JSP是用来实现网页的静态化页面。JSP页面中使用的代码为JAVA代码和HTML代码,它是在普通的HTML网页文件中加入了JAVA程序和JSP标记,然后就成为了JSP文件。在JSP页面文件中,指令放在中,JAVA代码放在中,在中放方法。在JSP中以或的形式出现的表示注释,前一种客户端能看到,而后一种客户端是看不到的。2.3 MyEclipse开发工具MyEclips
12、e是用于开发Java,J2EE的企业级工作平台的开发工具,它是对Eclipse的扩展,也就是我们经常所说的插件。它支持HTML5、JQuery和主流的Javascript库,开发者可以添加音频、视频等到项目中,方便创建移动设备的Web应用程序。Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Ecli
13、pse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、COBOL 和 Eiffe
14、l 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。2.4 MySQLMySQL是
15、一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。MySQL的功能十分之强大,而且它还是免费的。MySQL采用JDBC获取数据库信息,它分为六步。第一步,调用Class.forName()方法加载驱动;第二步,获取数据库的连接地址;第三步,调用getC
16、onneceton()方法建立连接;第四步,创建对象;第五步,处理结果集;第六步,释放连接。2.5 微信微信公众平台是微信新增的功能模块,在这一平台上,个人、企业或机构等都可以自己创建一个公众号。这个公众号可以群发文字、图像、声音等等。微信公众号包括订阅号与服务号,它们的区别主要在于:服务号主要是为用户提供服务,而订阅号是为用户提供讯息和资讯;服务号每月可群发四条消息,而订阅号每天只可群发一条消息服务号有处定义菜单,而订阅号没有。2.6 本章小结本章主要介绍了本系统所要用到的一些技术与工具,包括JAVA、JSP、MyEclipse、MySQL数据库、微信。 微信是近几年才出来的新技术,所以更要
17、把微信公众平台的开发文档看懂,这样才能在用到微信时能更好的使用它的接口,并且要弄懂公众平台是怎么发送消息和接收消息的。第三章 总体设计方案3.1 系统功能设计本系统要实现的功能主要是以下几点: (1)公众帐号下面有两个按钮,这个可以在公众平台上通过接口在线调试中设置两个一级菜单:一个是发送地理位置,一个是查看地图。 (2)当微信用户发送一个地理位置到公众帐号后,公众帐号会返回微信用户发送成功的信息,管理员也可在后台看到是否发送成功的消息。然后微信用户就可以点查看地图查看自己位置附近的交通。(3)当用户用语音输入xx市的天气,即可以返回当前城市的天气。本系统的总体结构如图3-1所示。 图3-1
18、整体功能结构图3.2 业务用例建模使用rose画图工具绘制业务用例,如图3-2所示。图3-2 用例图微信用户可以通过关注后使用本系统,主要可以发送地理位置和查看地图和查询天气。“发送地理位置”用例是指当微信用户所在位置拥堵时,微信用户可以把自己所在位置发送到微信服务器,微信服务器收到消息后通过HTTP POST方式交给公众账号服务器,存储在数据库中。“查看地图”用例是指微信用户打开地图后可以看到自己所在位置的拥堵情况,然后通过地图上路线的不同的颜色找到一条畅通的路改变自己的行车路线,减少等待时间。“查询天气”用例是指用户用语音输入xx市的天气,即可以返回当前城市的天气,可以让用户知道带什么天气
19、工具出门。3.3 业务交互建模业务时序图如图3-3所示。图3-3 时序图该时序图描述的是公众平台的消息交互流程。微信用户向微信服务器发送自己的位置后,然后微信服务器把收到的消息以HTTP POST方式转发给公众账号服务器,公众账号服务器处理后返回发送成功文本信息。当微信用户打开地图时,微信服务器返回百度地图给微信用户,微信用户根据地图获取自己所要的信息。当用户发送语音查询天气的请求时,然后微信服务器把收到的消息以HTTP POST方式转发给公众账号服务器,公众账号服务器处理后返回发送成功文本信息,并且返回天气信息给用户。3.4 本章小结本章描述了系统的总体设计方案,我用rose画了业务用例建模
20、与业务交互建模,分别画了整体功能结构图、用例图、时序图,一个系统如若要顺利的完成离不开业务建模,进行业务建模后就不会出现中途出错,无法设计的问题,业务建模把整个设计流程都考虑好了,这样可以使我在设计时有条理的完成系统的设计,也能节省我们的设计时间。第四章、详细设计和程序4.1 B/S结构设计流媒体管理系统是基于浏览器/服务器(B/S)技术的管理系统,解决传统的用户端/服务器模型结构存在的用户端(C/S)维护烦琐的问题,维护相对简单,具有良好的系统扩展性,方便管理。用户通过浏览器向服务器提出HTTP请求,然后由服务器转向数据库服务器,提出相应的数据请求,最后由数据库将结果通过浏览器显示出来。由于
21、本系统所面向的是的互连网用户,所以我采用的是比较流行的B/S三层结构。如图4-1所示。图4-1 B/S三层结构图本系统中所有的JSP页面都是在浏览器上运行的,当我们访问JSP页面时,浏览器向Web服务器发出请求,服务器将请求信息发送至Servlet,再由Servlet去调用相应的封装方法去访问数据库并进行数据处理,而MySQL数据库是由封装好了的JavaBean进行连接的。4.2 数据库设计根据需求分析设计出可以满足微信用户需求的实体和实体之间的关连。现在我们一般使用的都是关系型数据库,数据库最基本的要求是能够便捷、正确的调用以及管理。MySQL数据库具有代码开放、体积小、速度快的优势,因此我
22、在开发的时候选用了MySQL数据库。根据实体所画的微信用户信息表如图4-2所示。图4-2 用户信息表4.3 数据库表设计SQL Server 2008 在Microsoft公司的数据平台上发布,sql server2008可以组织管理任何数据。可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。sql server2008可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。Sql server 2008 有以下优点可信任的使得公司可以以很高的安全性、可靠性和可扩展性来
23、运行他们最关键任务的应用程序。能保护你的信息、确保你业务的可可扩展性、最佳的和可预测的系统性能。高效的使得公司可以降低开发和管理他们的数据基础设施的时间和成本。改进了安装和加速开发过程。智能的提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。由于本系统不是一般的管理系统,因此它没有其它系统要求的严格,根据需求本系统只需要一张表就能完成系统的设计。本系统只需要一张能够存放用户发送位置信息时所带的编号,经纬度以及时间等的表就足够了。微信用户信息表是描述用户发送位置时所带信息的数据表,见表4-1,表名为t_jlocation,包括以下的字段:用户ID(id),经度(longitude
24、),纬度(latitude),时间(ndate),发送到微信的ID(sender),用户(fuser)。表4-1 t_jlocation字段名数据类型长度是否允许为空idvarchar64否sendervarchar500是ndatevarchar500是latitudevarchar200是longitudevarchar200是fuservarchar200是下面对表中字段进行详细的描述。id是指用户在数据库表中的编号,sender是指发送到微信的微信号,ndate是指用户发送地址信息的时间,latitude是指用户发送位置时的纬度,longitude是指用户发送位置时的经度,fuser是
25、指用户发发送地址时所用的微信号。4.4 安全性设计在设计一个系统时,不仅需要功能完善,而且需要具有安全性。因此安全性设计是必不可少的。本系统微信用户只有通过关注来使用系统,而用户的信息以及用户发送的地址也只有公众账号的开发者可以看到,微信公众账号只有开发者能看到。微信用户发送的数据在后台数据库中都是加密的,所以不会有信息泄漏的危险。B/S是指Browser/Server,浏览器/服务器模式。B/S是web的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netsca
26、pe Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。它的优点是可以在任何地方进行操作而不需要安装任何的软件。客户端零安装、零维护。系统的扩展非常容易。降低了成本,选择更多。但是以有一定的不足,就是对服务端的要求较高。由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要
27、做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。可以通过远程进和本地行系统的管理和维护。4.5 本章小结本章主要描述了系统所用的结构B/S三层结构以及数据库逻辑结构与数据库表的设计。并且详细的描述了数据库表中的各个字段的意思。因为本系统不是一般的管理系统,因此它的许多地方与普通管理系统有所区别,在我的系统中,仅仅用了一张数据表就可以完成整个系统的数据库实现。第五章 系统实现5.1 JSP服务器的配置这里的配置涉及公网服务器的配置,配置公网服务器也就是要搭建JSP的服务器,搭建JSP服务器包括要安装JDK,
28、Tomcat和MySQL三个软件,并且对软件进行配置。我还在服务器安装了一款可视化软件,用于查看数据库,方便了数据库的建立、查看与修改。5.1.1 服务器端配置如果自己有服务器,并且支持JSP,可以将接口文件上传到自己的服务器,否则可以选取一些免费的云平台服务器来存储服务,例如百度应用引擎BAE或者是新浪云平台SAE。5.1.1.1 安装JDK1.7编译环境在安装完环境后还需设置环境变量:右击“计算机”-“属性”-“更改设置”-“环境变量”,在系统变量中增加变量如下:java_home值为C:Program FilesJavajdk1.7.0_51Classpath值为%JAVA_HOME%l
29、ibtools.jar;%JAVA_HOME%libdt.jar修改完后进行测试,“开始”-”运行”中输入cmd,然后输入命令java version,如看到如图5-1所示则说明安装成功。图5-1 安装JDK5.1.1.2 安装apache-tomcat安装完以后在apache-tomcat-7.0.6conf目录中打开文件server.xml,修改以后内容:修改1:找到以下内容:把其中端口8080改为80,因为微信公众号接口只支持80接口。修改2:在你要修改的时候需先建立一个Web服务目录,例如在d:盘下建立一个jspplace文件夹。然后在server.xml文件中找到以下的内容:这一行,
30、在这一行前加入以下语句:然后保存server.xml文件。接下来开启Tomcat服务,在apache-tomcat-7.0.6bin目录下,打开startup.bat文件,如在启动过程中不出现错误提示,即启动成功,如图5-2所示。图5-2 安装Tomcat不要关闭这个窗口。将index.jsp测试文件拷贝到D:jspplace目录下,点开浏览器,进入http:/127.0.0.1/index.jsp。如图5-3所示。图5-3 测试Tomcat当看到以上页面时则说明安装成功!5.1.2.3 安装mysql数据库将C:Program FilesMySQLMySQL Server 5.5bin目录添
31、加到path环境变量中。然后进行测试,打开mysql控制台,若看到如下图5-4所示。图5-4 安装MySQL则说明安装成功!到此服务器搭建完成。5.2 微信服务器的配置要完成本系统就必须要有微信平台的公众账号,公众账号包括订阅号和服务号两种,根据需求选择所用的公众账号类型。近几年微信的快速发展使微信平台的公众账号的注册要求也越来越多,公众账号对于用户的信息审核也越来越严格。因此,在注册前,我们必须先了解注册的注意事项。公众账号注册地址:。5.2.1 配置接口当用户申请公众账号成功后首先要成为开发者,而成为开发者就必须先配置微信公众平台的接口地址信息,填写URL与Token值。因为微信服务器是与
32、公众账号服务器相连的,所以接口址填写的是公众账号服务器的IP地址,通过IP地址微信服务器可以访问公众账号服务器,然后通过后面的项目名访问我的项目,后面的Wechat是项目中的一个JAVA程序。因此我需要把在MyEclipse编译好的在Wechat中成为开发者的代码的代码拷贝到公众账号服务器中。配置成功后将能看到以下配置消息,如图5-5所示。图5-5 成为开发者启动开发模式后,公众账号的所有功能就能通过编程实现。而微信用户通过在微信上关注我的公众号后就能使用我的系统。公众平台的接口包括消息接口和通用接口,当微信用户关注我的服务号并向服务号发送消息后,微信服务器会推送XML格式的消息体结构给公众账
33、号服务器,开发者通过响应包对这条消息进行回复。每个公众账号都有一个唯一的标识AppId和密钥AppSecret,通过这两个开发者可以使用高级接口的调用,每个公众账号都有它自己的使用等级,不同的使用等级可以使开发者拥有不同的接口调用频率。在微信服务器中可以看到每天的接口调用情况,如图5-6所示。图5-6 接口调用信息5.3 系统的软硬件平台 1.用户机/服务器:采用奔腾II或奔腾II以上级别的PC机,硬盘不少于80M,内存为512M。2.用户机/服务器操作系统:Window xp/7。3.数据库:MySQL。4.网络:以太网组成的局域网,可设多台用户机。5.4 服务器的实现5.4.1 公众账号服
34、务器公众账号服务器主要处理微信服务器传递过来的消息。把本地服务器里编译好的代码拷贝到远程主机上面的服务器里,也就是公众账号服务器,然后启动公众账号服务器,就会自动加载拷贝进去的程序。微信服务器上填写的URL上IP地址就是公众账号服务器地址,在IP地址后的就是项目名和项目中的一个JAVA程序,通过这个程序就把公众账号服务器与微信服务器连接起来。因此公众账号服务器每次先访问的是Wechat这个类,然后默认执行这个方法,这个方法实例化了一个类MainHandle,接着把消息交给它处理。处理完后再返回给微信服务器。因此所有的功能都是通过公众账号服务器处理后再返回给微信服务器,微信服务器再返回给用户而实
35、现的。5.4.2 微信服务器当微信用户关注公众号后,微信服务器的主页面能看到新增的微信用户和微信用户发的消息,并且微信服务器可以与微信用户进行对话。管理员可通过微信服务器管理微信用户信息,微信服务器把微信用户发送的地址信息存储起来,并发送给公众账号服务器。如图5-8所示。图5-7 公众平台用户列表而在微信服务器的消息管理中可以看到所用户的发送地址信息。用户的信息中包括用户的名字,用户发送的位置信息以及用户发送的时间。如图5-9所示。图5-8 用户信息在微信服务器上接口的在线调试工具使开发者能够查询设置或调用时所用的参数和方法是否正确,点击检查时可获得检查结果。公众账号上的菜单就是通过微信服务器
36、的接口在线调试设置的。开发者登录自己的公众平台后在高级功能里的开发模式下找到唯一标识的AppId和密钥AppSecret这两项内容,开发者凭据中的AppId和AppSecret是微信公众账号的唯一标识和密钥,因此是非常重要的,不可外泄。然后打开接口在线调试,把AppId和AppSecret两项内容填上去,然后根据AppId和AppSecret,通过https get的方法获得访问或设置接口时所要用到的凭证access_token,获取成功后如图5-10所示。图5-9 获取access_token最后通过上面获得的access_token使用网页调试工具调试该接口,编写json格式的菜单设置的代
37、码,代码中包括有类型、名字、值和路径地址。因为发送地址是click类型的,因此v_posistion是它的值,而查看地图需要跳转到页面,所以是view类型,而url是view类型必带的,表示连接到网页。最后以https post方式提交,提交后菜单就设置成功。如图5-11所示,菜单设置的代码如下: button: type: click, name: 发送位置, key: v_position, sub_button: , type:view, name:查看地图, url:http:/218.2.102.10/weaccess/show.jsp, sub_button: 图5-10 设置菜单
38、5.5 公众账号当向公众账号收到微信用户发送的信息后,微信服务器会把信息发给接口配置中填的URL。在工程中我创建了一个请求处理核心类Wechat,它的doGet()方法用于请求校验,而doPost()方法则用于接收、处理并响应消息。微信服务器发送的请求消息都封装在request对象中,一般我们会用request对象中的getInputStream()方法取得输入流,再使用dom4j读取并解析XML格式的请求信息,最后放入HashMap里。当接收到微信用户发送的信息时,先调用代码中parseXml()方法得到参数集,再取出消息类型MsgType判断微信用户发送的消息类型,然后处理。公众账号服务器
39、处理完消息后要返回XML结构消息响应微信用户的请求,因此要把响应消息对象转换成XML。关注我的公众号后首先会收到一条“欢迎关注!发送位置后即可查看附近交通拥堵情况”的消息。进入这个界面可以看到两个一级菜单:发送位置和查看地图。这里使用JSON格式的数据,发送位置通过click按钮实现,查看地图通过view类型按钮实现,微信服务器通过开发者所填的url值,能够连接到网页,获得网页信息。5.5.1 发送位置当微信用户点击发送位置后,就触发了click事件,微信服务器会推送一条XML格式的消息给公众账号服务器,公众账号服务器接收并处理微信用户的请求,处理以后再转给微信服务器。微信服务器会把信息再反馈
40、给用户。公众平台会返回一段话“发送您的地理位置,切换到输入模式下点击右下角的+号,然后选择位置发送!”。根据公众平台返回的信息定位到自己的位置或者可以手动搜索你所处的位置并发送位置后,微信服务器会返回发送成功。5.5.2 查看地图 当微信用户查看地图时,访问的是show.jsp这个程序,页面会跳转到百度地图,查看地图中采用的是javascript,并且用了ajax技术。首先创建地图与地图层实例,然后利用addTileLayer()方法把图层添加到地图上。然后在地图上通过经度和纬度来创建标注并通过addOverlay()把标注添加到地图中。微信用户能在地图上看到自己所以的位置,在位置处有个红色标
41、记,用户通过附近的标记可以看到哪里拥堵,通过地图上路线的颜色能查询到哪条路比较通畅。5.5.3查看天气当微信用户语音输入天气请求后,用户每次发送语音给公众号时,微信会在推送的语音消息XML数据包中,增加一个Recongnition字段。公众账号服务器接收并处理微信用户的请求,处理以后再转给微信服务器。微信服务器会把信息再反馈给用户。公众平台会返回一段天气文本消息。如图5-12所示图5-11 查看天气5.4 本章小结本章是整篇论文的重点,这里介绍了整个系统的开发流程,从一开始的公众账号的申请开始,然后是搭建公众账号服务器,以及公众账号服务器与微信服务器的连接,公众账号服务器上代码的部署。然后介绍
42、了微信服务器的功能以及接口信息。最后在公众号应用上着重介绍了它的功能,以及功能实现所用到的方法等等。第六章 总结与体会综合设计是学校检测我们大学四年学习情况的重要途径,是体现我们对所学知识的领悟和应用的直接方法,是对我们在校所学理论知识的一次巩固和提高,在此我对本系统做了以下归纳。微信公众号微应用,采用jsp+微信平台接口的模式来订制的一个小型平台。本系统从功能上来说,比较完备。系统采用的是web与用户交互的方式实现的,为用户提供讯息并且接收用户的请求信息,同时会把用户带有的信息存储到数据库中。系统按照用户的需求完成了功能,将程序放在不同的包中,按照类型区分,可以方便程序的补充与维护,如果程序
43、多且复杂,开发者也可根据区分不同的类型迅速找到代码。本系统基本上满足了流媒体管理系统管理方面的需要。在APP首页,我力图做到界面的简洁,在操作上,我请同学做了各种不同的测试,尽量排除一切可能因为用户的操作不当而出现的系统错误。但因为时间紧迫,本系统还存在不足有待改进。界面还很普通,不够好看,还需要通过修改样式来使之美观。本系统已经对数据库做了不少的优化,但要想达到预期的效果还需要一段时间,比如说功能还太少,可能使用户无法完全满意。况且若是后台数据库太大就会影响到运行速度;而且数据库表少,只有一张表,所以对数据库的要求也就比较高,需要进一步优化。按照系统的不足之处,将要不断地改善和完善本系统。我
44、所设计的系统代码比较简单和少,而且部分类或对象之间可以共用某些方法、函数或变量,如此就能提高系统的运行速度。综合设计是显示我们对所学知识的理解和应用,是对我们大学四年的学习生涯所学理论知识的一次巩固和提高。本系统的设计过程不仅是一个回顾我所学内容的过程,更是培养我们锻炼和处理问题的能力,也是考验我们解决问题的能力是否足够的方法。经过本系统的设计让我对软件开发有了更深的了解,也提高了我的写代码能力。在做综合设计的过程中我碰到了很多困难,但是在指导老师与同学的帮助与讲解下以及我自己的不断研究,最后还是成功地完成了我的综合设计。尽管我做综合设计的时间只有短短的一个月,但我还是在这段时间内发现了自身还
45、是有很多需要改进的地方,仍然需要继续努力,通过实践来充实自己、完善自己,然后学习更多的知识,以求得更大的发展。参考文献1柳峰.微信平台应用开发:方法、技巧与案例M.北京:机械工业出版社,2014.2潘凯华,李慧,刘欣.MySQL快速入门M.北京:清华大学出版社,2012.3方倍工作室.微信公众平台开发最佳实践M.北京:机械工业出版社,2014.4克尼亚万.Servlet和JSP学习指南M.北京:机械工业出版社,2013.5王雨竹.MySQL入门经典M.北京:机械工业出版社,2013.6 秦婧,刘存勇.零点起飞学MySQLM.北京:清华大学出版社,2013. 7 余洪春.构建高可用Linux服务器M.北京:机械工业出版社,2012.8 张志锋.JSP程序设计实训与案例教程M.北京:清华大学出版社,2013. 9 游双.Linux高性能服务器编程M.北京:机械工业出版社,2013.10 易伟.微信公众平台搭建与开发揭秘M.北京:机械工业出版社,2013.11 马建红,李占波.JSP应用与开发技术M.北京:清华大学出版社,2011. 12 张兵义,万忠,蔡军英.JSP+MySQL