《基于SSH的公交查询系统设计.pdf》由会员分享,可在线阅读,更多相关《基于SSH的公交查询系统设计.pdf(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 目i录第第一一章章 引引言言.1 11.1 选题背景.11.2 开发环境及技术简介.11.2.1 JSP基础知识.11.2.2 JDBC.21.2.3 JSP Servlet.21.2.4 开发环境.31.2.5 本文主要工作.3第第二二章章 系系统统需需求求分分析析.4 42.1系统调研.42.2系统目标.42.3 系统的功能需求.42.3.1 系统需求描述.42.3.2 系统数据流图.42.3.3 系统的功能.52.4 系统非功能需求.72.4.1 精度.72.4.2 安全性要求.72.4.3 时间特性要求.72.4.4 灵活性.7第第三三章章 系系统统设设计计.8 83.1 系统总体设
2、计.83.2 系统方案选择.103.3 系统数据库设计.123.3.1数据库设计.123.3.2 系统 E-R 图.123.3.3 数据库表结构.15第第四四章章 系系统统实实现现.1 16 64.1 用户登录模块.164.2 用户个人信息管理模块.194.3 公交系统查询模块.194.3.1 车次信息查询.194.3.2 站点信息查询.214.3.3 公交换乘方案查询.234.4 站点信息管理模块.254.4.1 删除站点.254.4.2 添加站点.254.5 车次信息管理模块.264.5.1 删除车次.264.5.2 添加车次.274.6 留言板模块.284.6.1 发表留言.284.6.
3、2 查看留言.29 4.6.3 删除留言.29第第五五章章 系系统统测测试试与与分分析析.3 31 15.1 测试概述.315.1.1 测试目的.315.1.2 测试原则.315.1.3 测试方法.315.2 测试用例.315.3 测试分析.32致致谢谢.3 33 3参参 考考 文文 献献.3 34 4总总 结结.3 3ii5 5 第第一一章章 引引第 1 页言言1 1.1 1 选选题题背背景景随着城市经济发展,城市规模越来越大,相应的城市公交系统也越来越庞大。许多新建小区大量出现,公交线路也日渐增多,给人们的出行带来了极大便利,但是由于城市规模的不断发展,给人们选择出行乘车线路造成了一定的困
4、难,所以需要提供一个高效的查询系统,才是问题根本所在。基于J2EE 的城市公交查询系统,是基于 B/S 模式的查询系统。它不仅可以用于公交公司管理系统中,也可以单独作为公交管理系统的一个模块存在,并可以制作成公交信息系统查询网,放置于城市的主要场所。这样不仅可以体现出一个城市的智能公交系统的水平,更显示出城市的数字化,信息化水平。本项目研究的基于 J2EE 的城市公交查询系统,包括公交查询系统的大部分功能,并提供了用户留言的功能,以方便根据用户提供的留言信息或是提出的建议对系统进行修改和完善,并提供了管理员用户后台维护公交信息的功能,做到能够实时添加和删除公交车次站点。为用户查询提供更会准确的
5、信息。1 1.2 2 开开发发环环境境及及技技术术简简介介1 1.2 2.1 1 J JS SP P 基基础础知知识识JSP 是“Java Server Pages”的缩写,可以解释为“基于 Java 的服务端动态页面技术”,。因为 Java 是编译解释执行的,所以 JSP 也就摆脱了VBScript、Perl 等脚本语言纯粹的解释执行带来的低效率问题。因为 Java是平台无关的,所以 JSP 是跨平台的。基于 Java 是 JSP 区别包含 ASP(Active Server Pages)在内的其它服务端动态页面技术的重要特征。JSP是服务端技术,所以 JSP 文档要先经服务端翻译、解释、执
6、行,才能得到客户端浏览器能识别的 HTML 文档。这是当前 Web 技术的潮流,是解决客户端浏览器兼容性问题的客观需要。服务端技术是 JSP 区别于 JavaScript、VBScript 等客户端动态页面技术的重要牲。JSP 是一种页面技术,而现在JSP 只实现了 HTTP(Hypertext Transfer Protocol)协议,只能应用于Web 页面。这是 JSP 区别于 Servlet 的重要牲。JSP 是一种动态技术,这是JSP 基于 Java 的自然延伸。在页面中引入程序设计语言的目的是正是为了实现动态交互。因此,JSP 就是基于 Java 的服务端动态页面技术。JSP 技术让
7、动态网面更易编写,功能更强,可移植性更好。概括起来,JSP 的设计目标主要有以下几点:(1)一次编写,到处运行(2)加强组件能力(3)作为 Java 企业平台的门户(4)更容易建立动态页面 JSP2.0 是对 JSP1.2 版本的升级,其中增加了一些新特性。JSP2.0 的设计目标是使动态网页的设计、开发和维护更加容易,网页编写者不必懂得Java 编程语言,也可以编写 JSP 网页。JSP2.0 增加了一种称为 SimpleTa第 2 页g的扩展机制来简化标签 API(括2Tag API)。JSP2.0 引入的最主要的新特性包:(1)引入简单表达式语言(EL,Expression Langua
8、ge),它用于 JSP 页面中的数据访问。这种表达式语言简化了 JSP 中数据访问的代码,不需要使用 Java Script 或者 Java 表达式。(2)引入创建自定义标签的新语法,该语法使用.tag 和.tagx 文件,这类文件可由开发人员或者网页作者编写。(3)对 XML 语法做了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx 用于 JSP 文件)。1 1.2 2.2 2 J JD DB BC CJDBC 是执行 SQL 语句的 Java API。其实,JDBC 本身是一个产品的商标名。相对与 ODBC(Open Database Connectivity 开
9、放数据库连接),也可以把 JDBC 看作“Java Database Connectivity(Java 数据库连接)”。它由一组用 Java 语言编写的类与接口组成。JDBC 已成为一种供工具/数据库开发者使用的标准 API,用户可以用纯 Java API 来编写数据库应用。使用 JDBC 可以很容易地把 SQL 语句传送到任何关系型数据库中。用户不需要为每一个关系数据库单独写一个程序。用 JDBC API 写出唯一的程序,能够将 SQL 语句发送到相应的任何一种数据库。Java 与 JDBC 的结合,使程序员可以只写一次数据库应用软件后,就能在各种数据库系统上运行。由于 Java 语言具有
10、健壮性、安全、易使用、易理解和自动下载到网络等优点,因此,它是数据库应用的一个极好的基础语言。现在需要找到一种能使Java 应用与各种不同数据库对话的方式,而 JDBC 正是实现这种对话的一种机制。JDBC 扩充了 Java 的应用范围。随着学习 Java 程序设计的人越来越多,对 Java 的数据库的访问需求越来越迫切。MIS 管理员希望 Java 与 JDBC结合,因为这有助于更容易、更经济地发布企业信息。而各个公司可以不断地使用已安装的数据库,方便地存取信息,不必顾及这些数据库是在何种DBMS 系统下存储的。有助于缩短新应用的开发时间,并可大大简化数据库的安装与版本控制。另外,在商业销售
11、信息服务领域,Java 与 JDBC 则可以更好地向外界客户提供最新信息。1 1.2 2.3 3 J JS SP P S Se er rv vl le et tJava Servlet 使用的是一种请求/响应机制,也就是说通过特定的Java 程序设计技术,由该 Servlet 动态产生的响应向某一特定的请求做出响应。Servlet 所能应用的请求/响应场合很多,但常用的还是在 Web 应用程序中用于产生超文本传输协议响应(HTTP)。据此,Servlet 可能取代其他类型的 HTTP 请求/响应机制,譬如通用网关接口(CGI)脚本。1 1.2 2.4 4 开开发发环环第 3 页境境本系统的开发
12、采用 JSP、Servlet、JavaBean、JavaScript、JDBC 等技术。本系统使用 Eclipse 作为开发环境,JDK 釆用 1.5 版本,Tomcat 8.5 作为 Web 服务器。数据库采用 SQL Server 2008。1 1.2 2.5 5 本本文文主主要要工工作作本文主要综合介绍整个系统。第一部分为引言,主要对项目开发的北京意义和项目的开发环境、开发技术进行介绍;第二部分为系统需求分析,主要描述系统的调研情况,以及系统功能需求和系统非功能需求,简单的介绍了系统的主要功能模块,包括用户登录、公交查询、留言管理和管理员维护等模块;第三部分为系统设计,主要解释了系统结构
13、设计、方案的选择和系统数据库的设计;第四部分为系统功能模块的实现,描述了各个功能模块的实现,并给出关键模块的实现代码以及运行的效果截图;最后部分对系统做了整体测试,给出系统功能测试用例表。第第二二章章 系系统统需需求求分分第 4 页析析2 2.1 1 系系统统调调研研在城市公交信息化发展中已有公交查询系统,查询城市公交换乘方案等。有很多系统没有后台的维护管理功能,公交信息不能实时的更新,本系统提供了管理员进行添加、删除车次站点等功能,并提供了用户留言的功能,更加具有实时性和人性化,使公交管理公司能够对用户提供的留言信息和提出的建议对系统进行修改和完善。2 2.2 2 系系统统目目标标本项目设定
14、的目标如下:(1)方便市民更好地掌握公交有关信息,辅助公交管理。(2)适应成都未来公共交通及社会交通模式快速变化的要求,适应公交运输体制改革的要求、适应成都公交服务向更高层次发展的要求。(3)为未来智能公交系统查询系统以及开发基于更广大用户的开放式的网络查询系统打下基础。(4)提高开发人员的软件开发能力,包括对软件工程思想的理解和运用、编程思想和动手能力的结合以及对项目开发进程的管理能力。2 2.3 3 系系统统的的功功能能需需求求2 2.3 3.1 1 系系统统需需求求描描述述系统需求:城市公交查询系统需要满足来自两方面的需求,分别是查询公交系统的普通用户,后台维护管理人员。查询公交系统的普
15、通用户的需求是查询城市公交线路、站点和换乘方案等信息。后台维护管理人员对后台数据库的备份和恢复,添加公交线路站点和更改已有公交线路站点。在城市公交查询系统开发时应该满足以下具体的系统需求:(1)满足用户查询公交信息的基本要求。(2)满足后台管理人员方便更改城市公交线路站点等信息的基本要求。(3)对使用该系统的用户技能要求比较低,操作方便。(4)能够使用人机互交,界面大方得体,实用。(5)能够保障城市公交信息数据的安全,准确。2 2.3 3.2 2 系系统统数数据据流流图图系统数据流图如图 2-1 所示。第 5 页管理员登录车次管理用户登录账用户注册号线路管理留言删除用户车辆信息库线路信息留言本
16、站点管理站点信息公交车查询用户图 2-1 系统数据流图如图所示,管理员登录系统后,可进行车次管理、站点管理、线路管理、删除用户等操作。普通用户注册登录后,可进行公交信息查询、留言版留言。2 2.3 3.3 3 系系统统的的功功能能系统功能模块图如图 2-2 所示。第 6 页基于 J2EE成都市公交查询系统用户登录模块用户个人信息管理模块公交系统查询模块留言板模块车次信息维护模块站点信息维护模块图 2-2 系统功能模块图基于系统需求分析,以下为该系统的相信基本功能:(1)用户登录模块管理员和普通用户分别拥有自己的用户名和密码。对于普通用户注册后如果登录成功,则直接进入到用户个人主界面并选择各种操
17、作,否则会返回到登录界面重新进行登录。管理员登录成功进去管理员住界面选择各种操作。(2)公交系统查询模块普通用户登录成功后可根据自己需要进行公交查询。有包括车次查询、站点查询和查询公交换乘方案等。车次查询即为根据车次号查询车次经过的站点,该车次开收车时间,票价等基本信息;站点查询为经过该站点的车次信息;公交换乘方案查询即分别输入起始站点和目的站点并查询公交乘车方案。(3)留言板模块普通用户登录系统后,进入留言版模块,用户可以提出自己的一些看法意见和对本公交系统的建议,以供公交管理人员根据用户建议更加完善本系统,并能查看以前的留言。(4)用户个人信息管理模块用户登录成功后即可进入到用户的个人主界
18、面,在个人主界面中,用户可以查看个人详细信息,包括用户名账号,保护邮箱等信息,并可以自行修改密码等个人信息,最后注销登录返回到系统登录界面。(5)站点信息管理模块管理员登录系统后进入相应管理员主界面,在管理员主界面中,可对公交站点信息进行添加和删除,实时更新公交变动信息。(6)车次信息管理模块管理员登录系统后进入相应管理员主界面,在管理员主界面中,可对公交车次信息进行添加和删除,实时更新公交变动信息。2 2.4 4 系系统统非非功功能能需需求求2 2.4 4.1 1 精精第 7 页度度本系统所需的数据类型主要包括用户名、密码等。相关精度要求如下:用户名:英文加数字组合,并以英文开头。例如:“d
19、d123”密码:5 到 12 位密码。例如“yx123”在登录时,必须注意所选择的身份跟用户名和密码要保持一致。2 2.4 4.2 2 安安全全性性要要求求本系统的用户分为管理员和普通用户两类,用户登录时需要根据权限选择不同的功能,每个用户都有自己固定的用户名和密码。2 2.4 4.3 3 时时间间特特性性要要求求响应时间:基本的信息查询响应时间最长为 5 秒。对于维护或者批量修改更新数据库的内容响应时间则根据具体软件和硬件情况而定。2 2.4 4.4 4 灵灵活活性性对设备的要求较低,且具有良好的可移植性,用户无论何时何地都可以方便、快捷地使用该系统,具有较强的灵活性和方便性。第第三三章章
20、系系统统设设第 8 页计计3 3.1 1 系系统统总总体体设设计计本系统设计使用了面向对象技术和模块化技术。面向对象技术是一种软件开发和程序设计技术,其所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系。对象是封装了数据和操作的程序块。所谓封装是为这个程序块建立显示的界面,其它对象只能向这个界面发消息,不能访问内部的私有数据和操作。因此,内部的数据和实现操作的算法若有改动,对其它程序对象没有任何影响。封装使程序局部化、易修改、好维护,但许多对象有相同的功能时免不了重复,所以面向对象技术有继承的机制。此外,由于对象自己操作自己的数据,对同一消息不同的对象均以自己的方式响应,使得一种消
21、息可有多种响应方式,这就是多态性。封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、可靠、可重用、易维护。因而面向对象技术也成为当今计算机的新兴技术。系统总体流程如图 3-1 所示。第 9 页用户登陆普通用户或者管理员开始NY用户名和密码是否正确普通用户进入普通用户主界面管理查询留言等操作员进入管理员主界面进行添加删除查询等操作退出系统结束Y用户名和密码是否正确N图 3-1 系统流程图图 3-1 详细阐述了该系统的整体操作流程。首先用户进行登录,选择登录身份是普通用户或者管理员,如果用户名和密码正确则进入到相应的用户个人主界面,否则返回登录界面重新进行登录。在用户个人主界面,用
22、户可以进行各自需要的操作。若用户为普通用户,则可以进行查询公交信息,留言,注销和更改个人信息等操作;用户为管理员,可添加删除公交信息。最后,用户操作完毕,即可退出本系统,整个系统操作流程到此结束。3 3.2 2 系系统统方方案案选选第 10 页择择目前比较流行的系统软件开发技术有 ASP.NET 或 JSP(Java ServerPages)与 WEB 数据库相结合两种,分别由微软和 SUN 公司开发的一种动态网页语言。都是非常完备的开发技术。目前网络上和各大文献也对两者进行了比较,其中各有优缺点。首先,JSP 与微软的 ASP 技术非常相似。两者都提供在 HTML 代码中混合某种程序代码、由
23、语言引擎解释执行程序代码。在 ASP 或 JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 WEB 服务器,而ASP 和 JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。ASP 和 JSP 都是面向 WEB 服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP 的编写语言是基于 VB 的脚本语言,JSP 使用的是 JAVA,这是两者最明显的区别。ASP 与 JSP 还有一个更为本质的区别:两种语言引擎用完全不通的方式处理页面中嵌入的程序代码。在
24、ASP 下,基于 VB 的脚本代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 JAVA 虚拟机执行,这种编译操作仅在对 JSP 页面第一次请求是发生。动态语言 JSP 和 ASP 在性能上的比较如表 3-1 所示。表 3-1 JSP 与 ASP 性能对比表性能JSPASP运行速度快较快运行损耗较小较大难易程度容易掌握简单运行平台绝大部分平台Windws 平台扩展性好较好安全性好较差函数支持多较少数据库支持多多厂商支持多较少支对 XML 的支持持不支持对组件的支持支持支持对分布式处理的支持支持支持应用程度较广较广图示:3-1JSP 与 ASP 性能对比表由上表我
25、们可以很清楚的发现 JSP 具有运行速度快,运行耗损小,跨平台性,通用性好,良好的结构,强大的数据库等都更比 ASP.NET 更具优越性。两者中,JSP 应该是未来发展的趋势。基于 JSP 的众多技术优点和当前发展的趋势,在参考了大量文献资料后,我决定选取 JSP 作为开发本公交查询系统的主要技术。而数据库选用 SQL Server 2008 因其有以下优点:第 11 页1、保护您的信息:SQL Server 2008 利用全面审核功能、透明数据加密和外围应用配置器(仅启用所需服务最大限度地减少安全攻击)来提高符合性和安全性。2、确保业务连续性:SQL Server 2008 附带提供的数据库
26、镜像可提高应用程序的可靠性,简化发生存储失败后的恢复过程。3、提供可预测响应:SQL Server 2008 提供更广泛的性能数据收集、新的中央数据存储库(存储性能数据),以及改进的数据压缩(使您可以更有效地存储数据)。4、最大限度地减少管理监视:Declarative Management Framework(DMF)是 SQL Server 2008 中一个基于策略的新型管理框架,它通过为大多数数据库操作定义一组通用策略来简化日常维护操作,降低总拥有成本。5、集成任何数据:SQL Server 2008 提供改进的查询性能和高效且具成本效益的数据存储,允许您管理和扩展数量庞大的用户和数据当
27、前,主流的抽象 WEB 应用体系结构主要有两种:即 C/S 客户机/服务器结构以及 B/S 浏览器/服务器结构。C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是 Client/Server 形式的两层结构,由于现在的软件应用系统正在向分布式的 Web 应用发展,Web 和 Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有
28、的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层 3-tier 结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。以目前的技术看,局域网建立 B/S 结构的网络应用,并通过 Internet/Intran
29、et 模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如 LAN、WAN、Internet/Intranet 等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全第 12 页。比较 C/S 和 B/S 优缺点发现,B/S 模式具有分布性特点,可以随时随地进行业务处理。业务扩展简单方便,通过增加网页即可增加服务功能。维护简单方便,只需改变网页,即可实现所有用户的同步更新;开发简单,共享性强等。结合本系统实际情况,我选择采用 B/S 模式。因此,本系统开发选用 JSP+SQL Server
30、方案,基于 B/S 模式开发。3 3.3 3 系系统统数数据据库库设设计计3 3.3 3.1 1 数数据据库库设设计计数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。因此,数据库设计是信息系统开发和建设的重要组成部分。本系统数据库表有 administrator 表、BusInfo 表、BusSt 表、message表、StInfo 表、userInfo 表等共 6 张表。其中 administrator 表为
31、管理员表,保存有管理员名和密码信息;message 表为留言信息表;userInfo 表为用户表,保存有用户注册信息;BusInfo 表为车次信息表,存有起点站和终点站信息;StInfo 表为站点表,存有本系统所有的站点,为系统站点库;BusSt 表为每个车次中间站点与车次线路的关联表。3 3.3 3.2 2 系系统统 E E-R R 图图(1)用户实体及属性如图 3-2 所示。第 13 页图 3-2 用户实体及属性(2)管理员实体及属性如图 3-3 所示。图 3-3 管理员实体及属性(3)车次信息表 BusInfo 如表 3-4 所示。图 3-4 车次信息实体及属性(4)站点信息表 StIn
32、fo 如表 3-5 所示。第 14 页图 3-5 站点信息实体及属性(5)中间站点关联表 BusSt 如表 3-6 所示。图 3-6 中间站点关联实体及属性(6)留言信息表 message 如表 3-7 所示。第 15 页图 3-7 留言信息实体及属性3 3.3 3.3 3 数数据据库库表表结结构构(1)用户表 userInfo 如表 3-2 所示。表 3-2 用户表信息列名中文名称数据类型长度允许空用户username名varcharNot null用户密码userpassworduseragNot nulle5050varcharin用户年龄t4null地address址varchar50
33、null邮email箱varchar50null问question题varchar50null答answer案varchar50null证件idnum号varchar50null(2)管理员表 administrator 如表 3-3 所示。表 3-3 管理员信息列名中文名称数据类型长度允许空管理员adminiID名varchar50Not null密adminipassword码varchar50Not null(3)车次信息表 BusInfo 如表 3-4 所示。表 3-4 车次信息表列名中文名称数据类型长度允许空 车BusNu第 16 页m号int4Not null起始站beginSti
34、d号int4null起点BeginSt站varchar50Not null终点站endStid号int4null终点EndSt站varchar50Not null票TicketNote价varchar50null车子档BusLevel次Varchar50null票档Note次varchar50null(4)站点信息表 StInfo 如表 3-5 所示。表 3-5 站点信息表列名中文名称数据类型长度允许空站点StID号Int4Not null站点名AtName称Varchar50Not null(5)中间站点关联表 BusSt 如表 3-6 所示。表 3-6 站点信息表列名中文名称数据类型长度允
35、许空编id号int4Not null车BusNum号int4Not null站点StID号int4Not null站点序StOrder号int4null(6)留言信息表 message 如表 3-7 所示。表 3-7 留言信息表列名中文名称数据类型长度允许空用户username名varchar50Not null留言日messagedate期datetime8Not null留言主topic题varchar50Not null邮email箱varchar50null留言内messagetext容varchar250Not null留言序id号int4Not null第第四四章章 系系统统实实现
36、现4 4.1 1 用用户户登登录录模模块块(1)模块功能描述 该系统的用户应为普通用户或管理员,他们分别有自己的用户名和密码,用户选择身份后,进入到各自的登录界面,输入相应的用户名和密码,如果登录成功后,即可进入到相应的个人主界面,否则将给予出错提示,并返回登录界面重新登录第 17 页。(2)用户登录流程如图 4-1 所示。开始用户登陆普通用户或者管理员管理普通用户员用户名和密码是否正确用户名和密码是否正确Y进入普通用户主界面Y进入管理员主界面结束N图 4-1 用户登陆流程图(3)关键代码实现String adminname=request.getParameter(adminname)=nu
37、ll?:request.getParameter(adminname);adminname=exChange(adminname);/字符串乱码处理String password=request.getParameter(password)=null?:request.getParameter(password);password=exChange(password);/字符串乱码处理N String sql=;String rand=(String)session.getAttribute(rand);String input=request.getParameter(vaild);int
38、n=0;try第 18 页conn=db.getConnection();stmt=conn.createStatement();sql=select*from administrator where adminiID=+adminname+and adminipassword=+password+;rs=stmt.executeQuery(sql);if(rs.next()&rs!=null)n+;if(n 0&input.equals(rand)session.setAttribute(adminname,adminname);session.setAttribute(adminpassw
39、ord,password);session.removeAttribute(rand);response.sendRedirect(loginSuccess.jsp);else response.sendRedirect(error.jsp);(4)模块运行界面如图 4-2 所示。图 4-2 用户登陆界面图 4-2 为用户登录界面,用户需要输入用户名和密码,如果输入正确,则直接进入到用户主界面,否则返回登录界面重新登录。4 4.2 2 用用户户个个人人信信息息管管理理模模第 19 页块块(1)模块功能描述用户登录成功后即可进入到用户的个人主界面,在个人主界面中,用户可以查看个人详细信息,包括用
40、户名账号,保护邮箱等信息,并可以自行修改密码等个人信息,最后注销登录返回到系统登录界面。(2)模块运行界面如图 4-3 所示图 4-3 用户个人信息查询(2)模块流程如图 4-4 所示。用户查看个人信息用户修改个人信息注销返回登录界面开始结束图 4-4 用户个人信息流程图4 4.3 3 公公交交系系统统查查询询模模块块4 4.3 3.1 1 车车次次信信息息查查询询(1)模块功能描第 20 页述用户登录成功后即可进入到用户的个人主界面,在个人主界面,用户首先可以进行车次信息查询。车次信息查询是为用户提供一个按公交车的车号(如:1 路)查询,并显示该公交车的相关信息(如:公交车的起点站、终点站、
41、票价和车子的档次等信息)。(2)模块运行界面如图 4-5 所示。图 4-5 车次信息查询相应的代码:public ArrayList queryBusNumDetail(String busNum)ArrayList arrayList=new ArrayList();DBConnection2 db=DBConnection2.getInstance();Connection conn=null;Statement stmt=null;ResultSet rs=null;String sql=;try if(busNum.equals()|busNum=null)sql=select*fro
42、m busInfo;else busNum=exChange(busNum);/字符串转码sql=select*frombusInfowherebusnum=+Integer.parseInt(busNum)+;conn=db.getConnection();stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=stmt.executeQuery(sql);while(rs.next()&rs!=null)HashMap hashMap=new HashMap();h
43、ashMap.put(BusNum,+rs.getInt(busnum);hashMap.put(BeginSt,rs.getString(beginst);hashMap.put(EndSt,rs.getString(endst)第 21 页;hashMap.put(TicketNote,rs.getString(ticketnote);hashMap.put(BusLevel,rs.getString(buslevel);hashMap.put(Note,rs.getString(note);arrayList.add(hashMap);catch(Exception e)e.printS
44、tackTrace();finally try if(stmt!=null)stmt.close();db.freeConnection(conn);catch(Exception e)e.printStackTrace();return arrayList;调用此方法时,在页面中先引用包 com.busSystem.util,再创建QueryData 类的对象,通过对象调用 statisticsByBusInfo()这个方法。4 4.3 3.2 2 站站点点信信息息查查询询(1)模块功能描述用户登录成功后即可进入到用户的个人主界面,在个人主界面,用户首先可以进行站点信息查询。站点信息查询是为
45、用户提供按公交车某一个站点查询到该站点需要乘坐公交车的车号。(2)模块运行界面如图 4-6 所示。图 4-6 站点信息查询 相应代码:public ArrayList queryStInfo(String stname)ArrayList arrayList=new ArrayList();DBConnection2 db=DBConnection2.getInstance();Connection conn=null;Statement stmt=null;ResultSet rs=null;String sql=;try stname=exChange(stname);/字符串转码conn
46、=db.getConnection();stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)第 22 页;sql=selectbusInfo.busnum,busInfo.BeginSt,busInfo.EndSt,busInfo.TicketNote,stInfo.stname from busInfo,stInfo,busst where stnamelike%+stname+%and stInfo.stid=busst.stid and busst.busnum=bu
47、sInfo.busnum;rs=stmt.executeQuery(sql);while(rs.next()&rs!=null)HashMap hashMap=new HashMap();hashMap.put(BusNum,+rs.getInt(busnum);/将从数据库中查出的值放入 hashmap 中hashMap.put(BeginSt,rs.getString(BeginSt);hashMap.put(EndSt,rs.getString(EndSt);hashMap.put(TicketNote,rs.getString(TicketNote);hashMap.put(StNam
48、e,rs.getString(stname);arrayList.add(hashMap);/将所有的 hashmap 放入 arrayList catch(Exception e)e.printStackTrace();finally try if(stmt!=null)stmt.close();db.freeConnection(conn);catch(Exception e)e.printStackTrace();return arrayList;调用此方法时,在页面中先引用包 com.busSystem.util,再创建QueryData 类的对象,通过对象调用 queryStInfo
49、()这个方法第 23 页。公交系统查询模块流程图如图 4-7 所示。显示查询信息结束开始图 4-7 系统查询流程图4 4.3 3.3 3 公公交交换换乘乘方方案案查查询询(1)模块功能描述用户登录成功后即可进入到用户的个人主界面,在个人主界面,用户首先可以进行公交换乘方案的查询。公交换乘方案查询即为用户输入起始站点和目的站点,然后点击查询搜索乘车路线确定换乘的方案。(2)模块运行界面如图 4-8 所示。图 4-8 公交换乘方案查询用户查询车次、站点和换乘方案信息 相应代码:public ArrayList checkSt(String stname)第 24 页ArrayList arrayL
50、ist=new ArrayList();DBConnection2 db=DBConnection2.getInstance();Connection conn=null;Statement stmt=null;ResultSet rs=null;String sql=;try/stname=exChange(stname);/字符串转码if(stname!=null)stname=exChange(stname);if(!stname.equals()sql=select*from stinfo where stname like%+stname+%;else sql=select*from