毕业论文-基于SSH的在线选购电影票系统的设计与实现_第1页
毕业论文-基于SSH的在线选购电影票系统的设计与实现_第2页
毕业论文-基于SSH的在线选购电影票系统的设计与实现_第3页
毕业论文-基于SSH的在线选购电影票系统的设计与实现_第4页
毕业论文-基于SSH的在线选购电影票系统的设计与实现_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、盐城师范学院毕业设计毕业设计 基于SSH的在线选购电影票系统的设计与实现学生姓名 学 院 专 业 班 级 学 号 指导教师 2016年 5 月16日基于SSH的在线选购电影票系统的设计与实现摘 要现如今,人们生活水平日益提高,压力也越来越大,人们需要放松自己的心情,看电影显然是个不错的选择。互联网的发展使得电子商务越来越流行,网上订购电影票方便、快捷,受到大众的普遍欢迎。本文设计并实现了基于SSH的在线选购电影票系统,该系统包括后台管理员管理页面和前台用户订票页面。后台实现了城市、县区、影片,影院,场次、订单管理等功能。前台用户实现了登录注册、切换城市、浏览影片信息、查看影院信息、查看电影上映

2、场次、在线选座,查看订单,修改密码等功能。系统用户界面简洁直观、交互性强、易于操作、系统运行安全稳定、响应及时。后台管理员能够管理网站的各项基本数据。方便人们实时查看院线信息,随时订票,节约时间,同时也减轻了电影院工作人员的工作。 【关键词】选购电影票系统;在线选座;SSHthe Design and Implementation of Purchasing Movie Tickets System Online Based on SSHAbstractNowadays, peoples living standards are improving, the pressure is also

3、growing, people need to relax their mood. obviously, going to the cinema is a good choice.The development of Internet make Electronic Commerce more and more popular. Ordering movie tickets online are convenient, fast and therefore are popular with the public.In this paper, we design and implement a

4、shopping ticket system online based on SSH, It includes background administrators manage pages and foreground user booking pages. The background realizes the functions of managing the cities, countries, movies, theaters, screenings, orders and others. The front pages realize the functions of registr

5、ation, selecting cities, browsing movie information, viewing the theater information, viewing the movie screenings, selecting seats online, viewing orders, changing passwords, and others.The user interface of the system is simple, intuitive and interactive. It is easy to operate. The system is safe

6、, stable and responsive. The backstage can manage the basic data of the system. It is convenient for people to view real-time information on sessions and booking tickets at any time. So it save peoples time . It also reduces the work of the cinema staff.Keywords the system of purchase movie tickets

7、, select seats online, SSH盐城师范学院毕业设计目 录 TOC o 1-3 h z u HYPERLINK l _Toc452848426 1绪论 PAGEREF _Toc452848426 h 1 HYPERLINK l _Toc452848427 1.1 背景与意义 PAGEREF _Toc452848427 h 1 HYPERLINK l _Toc452848428 1.2 主要研究内容 PAGEREF _Toc452848428 h 1 HYPERLINK l _Toc452848429 1.3 本设计的主要工作 PAGEREF _Toc452848429 h

8、2 HYPERLINK l _Toc452848430 2 关键技术 PAGEREF _Toc452848430 h 3 HYPERLINK l _Toc452848431 2.1 SSH技术 PAGEREF _Toc452848431 h 3 HYPERLINK l _Toc452848432 2.2 Ajax技术 PAGEREF _Toc452848432 h 4 HYPERLINK l _Toc452848433 2.3 jQuery技术 PAGEREF _Toc452848433 h 4 HYPERLINK l _Toc452848434 3 系统分析与设计 PAGEREF _Toc4

9、52848434 h 4 HYPERLINK l _Toc452848435 3.1需求分析 PAGEREF _Toc452848435 h 4 HYPERLINK l _Toc452848436 3.1.1 需求用例图 PAGEREF _Toc452848436 h 5 HYPERLINK l _Toc452848437 3.1.2 系统的功能需求 PAGEREF _Toc452848437 h 6 HYPERLINK l _Toc452848438 3.2 系统总体结构设计 PAGEREF _Toc452848438 h 7 HYPERLINK l _Toc452848439 3.2.1

10、前台页面 PAGEREF _Toc452848439 h 7 HYPERLINK l _Toc452848440 3.2.2 后台管理 PAGEREF _Toc452848440 h 9 HYPERLINK l _Toc452848441 3.3 数据库设计 PAGEREF _Toc452848441 h 12 HYPERLINK l _Toc452848442 3.3.1 系统E-R图 PAGEREF _Toc452848442 h 12 HYPERLINK l _Toc452848443 3.3.2数据库表设计 PAGEREF _Toc452848443 h 14 HYPERLINK l

11、_Toc452848444 4 系统实现 PAGEREF _Toc452848444 h 16 HYPERLINK l _Toc452848445 4.1用户登录模块16 HYPERLINK l _Toc452848448 4.2切换城市模块 PAGEREF _Toc452848448 h 18 HYPERLINK l _Toc452848451 4.3电影详情模块 PAGEREF _Toc452848451 h 19 HYPERLINK l _Toc452848456 4.4按日期查询场次模块 PAGEREF _Toc452848456 h 20 HYPERLINK l _Toc452848

12、461 4.5用户选座模块 PAGEREF _Toc452848461 h 22 HYPERLINK l _Toc452848462 4.5.1 选座模块 PAGEREF _Toc452848462 h 22 HYPERLINK l _Toc452848464 4.5.2 付款模块 PAGEREF _Toc452848464 h 25 HYPERLINK l _Toc452848465 4.6影片管理模块 PAGEREF _Toc452848465 h 26 HYPERLINK l _Toc452848476 5 系统测试与结果分析 PAGEREF _Toc452848476 h 29 HYP

13、ERLINK l _Toc452848477 5.1 功能测试 PAGEREF _Toc452848477 h 29 HYPERLINK l _Toc452848478 5.2测试结果分析 PAGEREF _Toc452848478 h 31 HYPERLINK l _Toc452848479 结 论 PAGEREF _Toc452848479 h 32 HYPERLINK l _Toc452848480 参考文献 PAGEREF _Toc452848480 h 33 HYPERLINK l _Toc452848481 致 谢 PAGEREF _Toc452848481 h 34 第34页,共

14、34页1绪论1.1 背景与意义中国电影进入一个蓬勃发展的新时期,必然引发中国观众对电影票需求的增大,近几年去影城看电影的观众越来越多,电影票房也一次又一次的刷新纪录。传统的购票方式是买电影票必须到电影院买,遇到周末或节假日,则需要排队等待,这样既浪费时间,又影响心情,售票人员的工作量也比较大。随着互联网的发展,电子商务越来越流行,它不仅成本低,而且效率高,快捷方便。伴随电影业及互联网的发展,国内外的电子票务系统也在高速地发展,国内有许多的网上订票系统,这些网站设计的也不错,用户体验良好,几乎包括全国大部分城市,县区的电影院,人们可以很方便地在家上网查看影院的影片以及票务的信息,这样既省时又省力

15、,同时可以了解到不同影片的信息,有更多的选择。由此看来订票软件很受大众欢迎,具有广阔的市场前景。本文设计并实现了基于SSH的在线选购电影票系统,通过本系统,不仅人们可以实时查看每个电影院正在上映的电影及场次,根据自己的喜好和闲暇时间随时订票,节约时间。另外也减轻了电影院售票人员的工作,提高了管理效率,降低了管理成本。1.2 主要研究内容在线选购电影票系统的使用者包括电影院票务管理人员和用户,用户分为游客和已注册用户。本系统为各个使用者解决以下问题:(1)电影院票务管理人员对影片信息进行增加、修改及删除操作,列出所有影片,按照影片名称、类型、版本、地区、导演、主演、上映时间等进行多条件查询。分别

16、对影片类型、版本、地区信息进行增加、修改及删除操作,列出所有类型、版本、地区。分别按照类型名称、版本名称、地区名称进行查询。对影院信息进行增加、修改及删除操作,列出所有影院,按照影院名称、所在城市、所属县区等进行多条件查询。对影厅信息进行增加、修改及删除操作,列出所有影厅,按照影院名称、影厅名称等进行多条件查询。分别对城市、县区信息进行增加、修改及删除操作,列出所有城市、县区,对城市信息按照城市名称查询,对县区信息按照城市名称、县区名称多条件查询。对电影院排片信息进行增加、修改及删除操作,列出所有影院排片信息,按照影院名称查询排片信息。对电影院放映影片的场次信息进行增加、修改及删除操作,列出所

17、有影院放映影片的场次信息,按照影院名称查询信息。列出所有已注册用户的个人信息,有权限删除已注册用户的信息。查看所有用户的订单信息。根据用户名称查询用户所有的订单信息。(2)游客可以根据自己的所在地选择城市后,页面自动列出用户选择的城市所对应的县区。用户可以根据县区查询出这一县区的所有电影院。用户可以查看某个电影院的详细信息以及此电影院正在上映的电影。用户可以查看到每个正在上映的电影的详细信息。用户选择电影院及这个电影院的一部正在上映的电影后,可以按日期查看到这个电影的场次信息。用户也可以先选好电影,然后再选择电影院,同样能按日期查看到这部电影在此电影院的场次信息。用户必须先注册才可以订购电影票

18、。(3)已注册用户为已注册用户除了解决游客的所有问题外,还解决了以下问题:用户登录之后可以选座,订购电影票。用户可以修改自己的登录密码。用户能够查看到自己已订购电影的订单,以及订单详情。用户能够删除订单。1.3 本设计的主要工作本设计的在线选购电影票系统,是一个面向电影院票务管理人员和订购电影票的顾客的系统,实现电影院票务管理人员对电影、电影院、场次、订单等信息的管理,顾客可以方便地查看电影、影院、场次等信息,选座订票的系统。在线选购电影票系统基于J2EE开发平台,采用MVC(Model、View、Controller,模型、视图、控制器)模式,使用Struts2+Spring+Hiberna

19、te的框架体系。使用Hibernate实现对数据库的操作。使用Struts2连接控制层与视图层。使用Spring容器实例化类的属性。前台页面采用DIV与CSS布局,美化页面排版,给用户良好的视觉体验;使用JavaScript验证用户输入信息是否规范;使用Ajax 技术与后台数据动态交互,实现页面的异步刷新,减轻服务器的压力。2 关键技术2.1 SSH技术 SSH(Struts、Spring、Hibernate)是一个集成框架,是目前较流行的一种Web应用程序开源框架。可以用于构建灵活、易于扩展、稳定、安全和健壮的多层 Web 应用程序1。Struts2是一个实现MVC(Model、View、C

20、ontroller,模型、视图、控制器)的框架,极大地方便了软件开发。使用MVC模式,Web应用程序被分成三层:模型层、视图层、控制器。其中,模型层用Java程序来实现数据库访问,处理业务逻辑,视图层用JSP来实现,控制层用Action类来实现,起着中间调度的作用 2 。Struts2框架主要就是给了我们一个规范的核心控制器,主要负责:(1)接收请求的参数;(2)调用模型层实现业务,获取数据;(3)页面导航,指定某一个视图层的页面给用户响应。Spring是一个开源框架,是一个代理的工厂。Spring就是一个使用IOC(Inversion of Control,控制反转)和AOP(Aspect

21、Oriented Programming,面向方面编程)的一个框架。Spring通过控制反转来促进低耦合,通过面向切面编程来实现高内聚。调用者不再创建被调用者的实例,由Spring容器创建,称为控制反转3。创建被调用者实例的工作通常由外部容器来完成,然后注入调用者,因此也称为依赖注入。Spring的依赖注入,包括属性注入和构造注入。属性注入就是调用类的set方法注入。构造注入就是使用类的构造方法注入 4 。Hibernate是一个操作数据库的持久化框架。Hibernate 一共有5个接口 5 。Session接口是最核心的接口。所有数据库的操作都要使用这个接口的方法实现。是一个与数据库的连接对

22、象。封装了Connection对象。SessionFactory接口是Session的工厂类。负责生成Session对象。Configuration类负责加载设计图纸hibernate.cfg.xml文件,并且生成SessionFactory工厂对象。Transaction是事务操作的接口,在Hibernate中增,删,改要加事务。Query接口负责执行HQL语句6。2.2 Ajax技术Ajax(Asynchronous Javascript And ExtensibleMarkupLanguage,异步JavaScript和可扩展标记语言)是指一种创建交互式网页应用的网页开发技术。使用Aja

23、x除了异步发送请求外,还能动态加载服务器响应数据7。使用Ajax能避免频繁刷新页面,服务器响应的是数据,而不是整个页面。Ajax负责获取服务器数据,然后将服务器的数据动态加载到浏览器中 。Ajax使用简单的XMLHttpRequest对象发送请求,使用简单的JavaScript函数监视服务器响应。在服务器响应完成后,JavaScript通过DOM动态更新HTML页面。自始至终,用户的动作无须中断,所感受的是一种连续的体验 8 。2.3 jQuery技术jQuery是一个JavaScript库。它帮助我们简化了JavaScript代码。可以在任何Web应用中使用:jQuery可以做到跨浏览器运行

24、,开发者只要面向jQuery编程,JavaScript脚本即可在不同的浏览器之间自由切换9。jQuery团队特意使jQuery关注以下任务:使得在页面编程中使用不唐突的JavaScript技巧成为简单快乐的事儿,而无需耗费大量精力写大块代码。我们将发现有效地使用jQuery,可以编写更少的代码在页面上实现更多的功能10。jQuery还有一个比较大的优势是文档完整,各种应用描述的很详细,并且还有许多成熟的插件可供选择 11 。jQuery因为它的简便易用,已被大量的开发人员推崇。要在自己的网站中应用jQuery库,需要下载并配置它。3 系统分析与设计3.1需求分析本系统根据权限的不同,将用户分为

25、三类参与者, 后台管理员、游客、注册用户。(1)后台管理员:主要负责将电影、影院、城市、县区、场次、订单等信息增加,修改,删除,并写入数据库。(2)游客:有选择城市,浏览电影,查找电影院,查看影片场次的权限,游客想要选座购票就必须注册。(3)已注册用户:有登录,选择城市,浏览电影,查看电影院,查看电影场次的权限,注册用户还拥有选座订票,删除订单,修改密码的权限。3.1.1 需求用例图下面是根据需求分析设计的系统用例图,后台管理员的用例图如图3-1 所示,注册用户的用例图如图3-2所示,游客的用例图如图3-3所示。图 3-1 后台管理员的用例图图 3-2 注册用户的用例图 图 3-3 游客的用例

26、图3.1.2 系统的功能需求系统的功能需求从结构上分为两块,前台用户模块和后台管理员模块。本系统的系统功能图如图3-4所示。 注册登录 修改密码 注册登录 修改密码 查看电影信息 查看影院信息 查看订单 选座购票 影片管理 城市管理 县区管理 场次管理 查询注册用户 查询用户订单 基于SSH的在线选购电影票系统后台管理员 前台用户 影院管理 图3-4系统功能图在线选购电影票系统包括以下几个主要功能:(1)前台页面用户的注册、登录、修改密码:实现用户的注册、登录、修改密码的功能。用户查看电影信息:用户能够查看到正在上映的电影和电影详情。用户查看影院信息:用户可以通过选择城市、县区来查看电影院和电

27、影院详情。用户查看场次信息:用户可以在选择电影、电影院和日期之后能够看到这部电影在此电影院的放映场次信息。用户选座订票:用户登录之后选择场次之后就可以去选择座位了。如果用户没有登录,页面就会跳转到登录页面。用户查看订单和订单详情:用户登录之后可以查看自己的订单和订单详情。用户删除订单:用户登录之后可以查看自己的订单,然后根据需要删除订单。(2)后台管理影片管理:管理员可以对影片添加,修改,删除,查询,分页。城市管理:管理员可以对城市进行添加,修改,删除,查询,分页。县区管理:管理员可以对城市的县区进行添加,修改,删除,查询,分页。影院管理:管理员可以对影院的添加,修改,删除,查询,分页。影厅管

28、理:管理员可以对影院里的影厅进行添加,修改,删除,查询,分页。场次管理:管理员可以对影院上映电影的场次进行添加,修改,删除,查询。用户管理:管理员可以查看已经注册了的用户的相关信息。 订单管理:管理员有权限查看用户的订单信息。3.2 系统总体结构设计3.2.1 前台页面(1)用户注册、登录模块用户注册:验证用户输入的邮箱、用户名、密码是否为空,若为空,提示用户输入相应信息;验证两次输入的密码是否相同,若不同,提示用户两次输入的密码不同;验证邮箱、用户名是否已注册,若已经被注册,提示用户重新输入;若邮箱、用户名、密码都不为空、且邮箱、用户名没有被注册,两次密码输入相同,则用户注册成功。用户登录:

29、验证邮箱,密码是否为空,若为空,则提示用户输入邮箱、密码;验证邮箱是否存在,密码是否正确,若邮箱不存在或密码不正确,则提示用户邮箱或密码错误;若用户输入的邮箱、密码不为空并且邮箱存在且密码正确,则登录成功。用户注册及登录流程图如图 3-5 所示。 开始开始开始开始注册页面登录页面注册页面登录页面输入邮箱、用户名、密码输入邮箱输入邮箱、用户名、密码输入邮箱、密码输入信息不为空给出提示 给出提示输入信息不为空给出提示 给出提示 邮箱、密码不为空 否 否 是 是两次输入密码相同 邮箱、密码都正确 否 两次输入密码相同 邮箱、密码都正确 是 是邮箱用户名被注册 登录成功 邮箱用户名被注册 登录成功结束

30、 结束 注册成功 否注册成功结束结束图3-5用户注册及登录流程图(2)用户选座订票模块用户可以查看正在上映的电影,切换城市,查找电影院,查看电影场次。已注册用户必须登录之后才可以选座订票,查看订单,修改密码了。若用户没有登录,页面自动跳转到登录页面。如果用户没有注册,则必须先注册并且登录之后才可以选座订票,查看订单及修改密码。用户选座订票的流程图如图 3-6 所示。开始开始网站前台网站前台浏览电影查看电影场次浏览电影院浏览电影查看电影场次浏览电影院注册新用户是否注册 注册新用户是否注册 是 登录是否登录 否 登录是否登录 是 修改密码选座订票查看订单订单修改密码选座订票查看订单订单 结束 结束

31、图 3-6 用户选座订票流程图3.2.2 后台管理(1)影片管理模块管理员在登录后,在影片管理模块可以进行影片的添加,修改,删除以及按条件查询。点击影片管理,进入影片列表界面,点击新增按钮,填写新增影片信息。信息中有电影名称、图片、上映日期、导演、主演、类型,版本,地区剧情等信息,其中类型、版本、地区是多选框。所有信息填写完成,点击底部的保存按钮,则影片信息添加成功。页面跳转到影片列表界面。点击每个电影后面的编辑,删除。可以对影片原有信息进行修改和删除。影片管理流程图如图 3-7 所示。 图 3-7 影片管理流程图(2)场次管理模块管理员在登录后,在场次管理模块可以进行场次的添加,修改,删除以

32、及条件查询。点击场次管理,来到场次列表界面,单击新增按钮,输入新增加的场次信息。信息中有电影名称、影院、影厅、价格等信息,其中影院、影厅是下拉列表框,用户可以选择单个。所有信息填写完成后,单击保存按钮,则场次信息添加成功。页面跳转到场次列表界面。点击每个场次后面的编辑,删除。可以对场次原有信息进行修改和删除。场次管理流程图如图3-8所示。图 3-8 场次管理流程图(3)订单管理模块订单管理模块就是查看前台用户的订单信息,管理员可以根据前台用户的要求删除用户的订单信息,已达到管理目的。订单管理流程图如图3-9所示。开始开始订单订单管理模块删除订单信息 删除订单信息 查询订单信息 查询订单信息 输

33、入查询信息 输入查询信息 是否删除 否 查询 查询 是 结束结束图 3-9订单管理流程图3.3 数据库设计3.3.1 系统E-R图在线选购电影票系统共有12个实体,有用户实体,管理员实体,影片实体,影院实体,影厅实体,城市实体,县区实体,场次实体,语言版本实体,订单实体等。 描述:管理员实体,包括用户名和密码等属性。前台用户实体,包括用户名,密码,邮箱、城市等属性。用户以及管理员实体图如图 3-10 所示。用户管理员用户管理员城市城市用户名用户名密码用户名密码用户名密码邮箱密码邮箱图3-10 用户以及管理员实体及属性描述:影片实体,包含影片名称,图片,首映,类型,版本,导演,主演,时长,剧情等

34、属性。影片实体图如图3-11所示。影片影片剧情名称剧情名称时长图片时长图片主演导演版本类型首映主演导演版本类型首映图3-11影片实体及属性描述:影院实体,包含名称,地址,电话,城市,县区等属性。影院实体图如图3-12所示。影院影院地址县区城市名称地址县区城市名称电话图电话图3-12影院实体及属性场次影片时间影院描述:场次实体,包含影片,影院,时间,语言版本,价格等属性。场次实体图如图3-13所示。场次影片时间影院影厅影厅语言版本价格 语言版本价格图3-13场次实体及属性描述:订单实体,包含用户,场次,座位,数量,总价等属性。订单实体图如图3-14所示。订单订单总价用户场次座位数量总价用户场次座

35、位数量图3-14订单实体及属性本系统总E-R图如图 3-15 所示。 m类型影院1 n 1类型影院 n县区 1 n n县区版本影片影厅 m n m n版本影片影厅 n 1 1地区 n n地区场次 n n场次城市 1 n 1城市 语言版本用户订单 1 n 1 1语言版本用户订单图3-15实体总E-R图3.3.2数据库表设计本系统数据库一共有12张数据库表:有用户信息表,管理员信息表,影片信息表,版本信息表,地区信息表,类型信息表,城市信息表,县区信息表,电影院信息表,放映厅信息表,场次信息表,订单信息表等。系统采用MySQL数据库,主要表结构设计如下:(1)描述:用于存储用户注册信息的用户信息表

36、,主要字段有用户名,邮箱,密码,联系电话,城市等。表3-1 user用户信息表序号字段类型长度说明Null1user_uidint11用户编号(主键)否2user_namevarchar20用户名否3user_pwordvarchar20密码否4user_emailvarchar20邮箱否5user_phonevarchar12联系电话是7user_ucityint11城市(外键)否(2)描述:用于存储电影信息的影片信息表,主要字段有影片名,图片,首映,类型,版本,地区,时长,导演,主演,剧情等。表3-2 film影片信息表序号字段类型长度说明Null1film_idint11电影编号(主键)

37、否2film_namevarchar30影片名否3film_imgvarchar100图片是4film_datedate0首映是5film_categoryvarchar30类型是7film_typevarchar30版本是8film_nationvarchar30地区是9film_hourint11时长是10film_directorvarchar20导演是11film_actorvarchar50主演是12film_descriptionvarchar500剧情是(3)描述:用于存储电影院信息的影院信息表,主要字段有影院名称,联系电话,县区,影院地址,所在城市等。表 3-3 cinema影

38、院信息表序号字段类型 长度说明Null1cinema_idint11影院编号(主键)否2cinema_namevarchar20影院名称否3cinema_callvarchar20联系电话是4cinema_countryint11 县区(外键)否5cinema_placevarchar46影院地址是6cinema_areaint11所在城市(外键)否(4)描述:用于存储影院排片信息的排片信息表,主要字段有影院,影片等。表3-4 cinema_film排片信息表序号字段类型长度说明Null1idint11排片编号(主键)否2cinemaint11影院(外键)否3filmint11影片(外键)否(

39、5)描述:用于存储电影院上映电影场次的场次信息表,主要字段有电影,价格, 放映日期,放映厅,影院,语言版本,放映时间等。表 3-5 screen场次信息表序号字段类型 长度说明Null1screen_idint11场次编号(主键)否2screen_filmint11电影(外键)否3screen_pricefloat5价格是4screen_datedate0 放映日期否5screen_hallint11放映厅(外键)否6screen_cinemaint11影院(外键)否7screen_languageint11语言版本(外键)否8screen_timetime0放映时间是(6)描述:用于存储用户

40、提交的电影订单的订单信息表,主要字段有用户,场次,座位,数量,总价等。表3-6 order订单信息表序号字段类型长度说明Null1order_idint11订单编号(主键)否2order_userint11用户(外键)否3order_screenint11场次(外键)否4order_seatvarchar40座位是5order_numint11数量是6order_totalfloat5总价是4 系统实现系统是使用MyEclipse 10开发工具开发的,Java开发包是 JDK 1.7,服务器采用Tomcat 7.0,数据库使用MySQL 5.6。4.1 用户登录模块用户登录采用邮箱,密码验证,

41、验证用户输入的邮箱,密码是否为空。用户填写的邮箱不存在或者密码错误,则给出相应的文字提示。若用户输入的账号密码全都正确,则跳转到首页。这些是用Ajax技术把用户填写的信息提交到后台与数据库中的信息比较来判断的。之所以没有分开提示,是为了保护用户账号信息。登录验证界面的主要实现代码如代码段一所示。/代码段一 function myshow() var userEmail =$(#email).val(); var userPass =$(#pass).val(); if(userEmail=) / 判断用户邮箱是否为空 $(#tip).html(请输入邮箱!); return false; if

42、(userPass=) / 判断用户密码是否为空 $(#tip).html(请输入密码!); 、 return false; $.ajax( url:$pageContext.request.contextPath/user/islogin.action, data: userEmail:userEmail, / 将邮箱传给后台 userPass:userPass, / 将密码传给后台 , type:POST, async:false, success:function(data) if(data=error) / 若后台返回“error”,给出提示 $(#email).focus(); $(

43、#tip).html(账号不存在或密码输入有误); return false; if(data=success) / 若后台返回“success”,页面跳转到首页 window.location.href=$pageContext.request.contextPath/font/index.jsp; return true; ); 后台接收Ajax传来的参数,如果数据库中没有用户输入的邮箱,则返回“error”,如果数据库中有此邮箱,如果用户输入的密码和数据库中的密码相同,则返回“success”,如果两个密码不一样,则返回错误,控制台输出“密码错误”。登录的后台主要实现代码如代码段二所示。

44、前台登录界面如图4-1所示。/代码段二Action(value=islogin)public void isLogin() PrintWriter out = response.getWriter(); String useremail=request.getParameter(userEmail); / 获取用户输入的邮箱 String userepass=request.getParameter(userPass); / 获取用户输入的密码 request.getSession().setAttribute(userEmail, useremail); / 将useremail存入sess

45、ion request.getSession().setAttribute(userPass, userepass); / 将userepass存入session String flag=error; if(userBIZ.findEmail(useremail) / 如果数据库中有此邮箱 User user=userBIZ.findbyemail(useremail); / 找到此用户 if(user.getUserPass().equals(userepass) / 如果密码正确 String name=user.getUserName(); / 获取用户名name request.get

46、Session().setAttribute(userName, name); / 将name存入session flag=success; out.write(flag); else out.write(flag); / 如果密码不正确,返回error else System.out.println(cannt find); / 如果数据库中没有此邮箱,返回error out.write(flag); 图4-1 前台登录界面4.2切换城市模块用户登录之后,页面默认显示用户注册时选择的城市,用户可以点击城市后面的切换城市文字来切换城市,点击后页面会弹出一个对话框,对话框里有一个下拉列表来选择城

47、市。用户选择城市后,首页也会跟着显示用户选择城市的县区。弹出框是一个div,默认不显示,点击切换城市时才显示。点击确定,弹出框消失,页面重新加载,城市改变为用户刚刚选择的城市,县区,影院随之改变。前台实现代码如代码段三所示。切换城市界面如图4-2、4-3、4-4所示。/代码段三function disappear() var cityid=$(#cityId).val(); / 用户选择的城市的城市Id $.ajax( url:$pageContext.request.contextPath/user/selectCity.action, data: cityid:cityid, / 将城市I

48、d传给后台 , type:POST, error: function () alert(有错误,请检查!); , / 错误提示 success: function(response) window.location=location; / 页面重新加载 );后台根据Ajax传来的城市id,获得城市,给session里的“usercityName”重新赋值,再传回前台。后台实现代码如代码段四所示。 /代码段四 public void selectCity() PrintWriter out = response.getWriter(); Integer cityid=Integer.parseI

49、nt(request.getParameter(cityid); / 获取前台传来的城市id City city =cityBIZ.findbyId(cityid); request.getSession().setAttribute(usercityId, city.getCityId(); /usercityId重新赋值 request.getSession().setAttribute(usercityName, city.getCityName(); /usercityName重新赋值 out.println(“haha”); out.flush(); out.close(); 图4-

50、2切换城市前界面图4-3切换城市弹出框图4-4切换城市后界面4.3电影详情模块在用户选择电影院后,页面会从后台调出这个影院正在上映的电影,以电影图片列表形式展现,当用户点击电影图片时,图片底部会利用Ajax局部刷新,把电影的Id传给后台,读取后台传过来的数据,显示用户所选电影的详情。前台实现代码如代码段三类似。后台接收到前台Ajax传来的参数filmId,根据filmId查找电影,把影片详细信息返回给前台页面。后台实现代码如代码段五所示。电影详情界面如图4-5、4-6所示。 /代码段五 Action(value=findbyfilmId) public void findbyfilmId()

51、Integer id = Integer.parseInt(request.getParameter(filmId); /获取前台传来的电影Id Film film = filmBIZ.findbyId(id); /将电影Id,名称,上映日期,类型,地区,导演主演等信息串连城字符串 String temp = String.valueOf(film.getFilmId() + ;+ film.getFilmName()+ ; + film.getFilmDate()+;+ film.getFilmCategory()+ ; + film.getFilmType()+ ;+ film.getFi

52、lmNation()+ ; + film.getFilmHour()+;+ film.getFilmDirector()+; + film.getFilmActor()+;+ film.getFilmDescription()+;; out.println(temp); 图4-5电影详情界面一图4-6电影详情界面二4.4按日期查询场次模块用户选择了电影院和电影之后,可以按照日期查询电影场次信息,用户可以查询到从当前日期开始往后5天的电影场次信息。考虑到系统的实时性,如果用户查看当天的场次,只把当前时间之后的场次查询出来,因为之前的场次已经放映过了或者正在放映,所以不允许再售票了。给每个日期加一

53、个超链接,调用getbydate()函数,来动态显示用户与选择的日期对应的电影场次。getbydate()函数中,如果用户选择的是当前日期,则把当前时间也作为参数,利用Ajax传递给后台的selectbyDate函数,如果用户选择的不是当前日期,则不传当前时间参数。前台实现代码如代码段六所示。1)/代码段六 function getbydate(day) var today=new Date(); var ss=#tab2; if(day=forDate(today) / 如果用户选择的是当前日期 var timenow=today.getHours()+:+today.getMinutes(

54、); $.ajax( url:$pageContext.request.contextPath/screen/selectbyDate.action, data: screenDate:day, / 用户选择的日期 filmId:filmId, / 影院Id cinemaId:cinemaId, / 电影Id screentime:timenow, / 当前时间 , type:POST, success:function(response) var arr = response.split(,); var str = 电影名称 放映时间语言版本 + 放映厅价格在线选座; for(var i =

55、 0;iarr.length-1;i+=6) / 将后台获取的数据写到表格里 var temp = +arri+1+arri+2+ +arri+3+arri+4+arri+5+ + ; str += temp; $(ss).html(str); ); else /如果用户选择的不是当前日期,代码同if 语句里相同,只是不传当前时间参数 后台的selectbyDate函数,从前台接收参数,将日期参数格式化为yyyy-MM-dd格式,将时间参数格式化为HH:mm格式后放到map里,然后调用ScreenBIZ里的findbyfilm()函数,它在调用ScreenDAO里的findbyFilm函数。后

56、台selectbyDate函数的主要实现代码如代码段七所示。按日期查询场次界面如图4-7、4-8所示。/代码段七 public void selectbyDate() String dateid = request.getParameter(screenDate); if(dateid!=null&!.equals(dateid) String date=dateid.substring(0, 4)+-+dateid.substring(4, 6)+-+dateid.substring(6, 8); Date d1 = new SimpleDateFormat(yyyy-MM-dd).pars

57、e(date); /格式化date map.put(screenDate, d1); List screenlist =screenBIZ.findbyfilm(map) ; PrintWriter out = response.getWriter(); StringBuffer jsonBuffer = new StringBuffer(); for (int i = 0; i screenlist.size(); +i) /将电影名、场次开始时间、影厅、价格等连成字符串 String temp = String.valueOf(list.get(i).getScreenId() + , +

58、 list.get(i).getFilm().getFilmName()+ , + list.get(i).getScreenTime().toString().substring(0, 5) + , + list.get(i).getLanguage().getLanguageName()+ , + list.get(i).getHall().getHallName()+ , + list.get(i).getScreenPrice()+ ,; jsonBuffer.append(temp); out.println(jsonBuffer.toString(); / 将字符串返回给前台图4-

59、7 4月27号的电影场次界面图4-8 4月28号的电影场次界面4.5用户选座模块4.5.1 选座模块用户选择电影的某一场次之后,页面跳转到选座页面。选座页面是用jQuery写的,将座位信息封装在一个数组里,为可选座和已售出座位通过CSS设置不同的背景色。选座时如果座位为可选座状态,则添加座位,统计票数,计算票价总额。如果用户想要删除已选择的座位,再次单击座位就可以了,已选择的座位就会被删除,同时票数减一,票价总额也随之改变。已售出的座位用户是无法选择的。提交订单后将选座信息保存到订单中。前台主要实现代码如代码段八所示。用户选座流程界面如图4-9、4-10、4-11所示。/代码段八$(docum

60、ent).ready(function() var $cart = $(#seats_chose), /座位区 $tickects_num = $(#tickects_num), /票数 $total_price = $(#total_price); /票价总额 var sc = $(#seat_area).seatCharts( click: function() if (this.status() = available) /若为可选座状态,添加座位 $( + (this.settings.row + 1) + 排 + this.settings.label + 座) .attr(id,

温馨提示

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

评论

0/150

提交评论