




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本本 科科 毕毕 业业 论论 文文 目目 录录 1 1 绪论绪论 1 1 1 1 研究背景及研究意义 1 1 2 研究内容 1 1 3 论文结构 2 2 2 系统开发工具与相关技术介绍系统开发工具与相关技术介绍 3 3 2 1 JSF 技术 3 2 2 PrimeFaces 3 2 3 MyEclipse 4 2 4 MySQL 4 2 5 Java 语言 4 3 3 需求分析需求分析 5 5 3 1 系统功能需求分析 5 3 1 1 普通用户功能 5 3 1 2 管理员功能 6 3 2 系统数据库分析 7 3 2 1 数据库物理建模分析 7 3 2 2 实体表详细分析 7 3 3 系统结构分析 10 3 3 1 系统功能结构分析 10 3 3 2 系统逻辑结构分析 10 4 4 系统详细设计系统详细设计 1212 4 1 普通用户功能的设计 12 4 1 1 用户注册 登录功能 12 4 1 2 查找电影功能 14 4 1 3 电影投票功能 14 4 1 4 添加影评功能 15 4 1 5 礼品兑换功能 15 4 1 5 用户订 退功能 16 本本 科科 毕毕 业业 论论 文文 4 2 管理员功能的设计 17 4 2 1 管理员登录功能 18 4 2 2 电影信息管理功能 18 4 2 3 用户信息管理功能 19 4 2 4 礼品管理功能 21 4 3 主要界面设计 22 4 3 1 主页设计 22 4 3 2 电影详情页面设计 23 4 4 关键问题及解决方案 23 5 5 系统的实现系统的实现 2727 5 1 系统开发以及运行环境 27 5 2 面向普通用户的系统功能 27 5 2 1 系统主页功能 27 5 2 2 用户注册 登录功能 28 5 2 3 查找电影功能 29 5 2 4 查看全部电影功能 29 5 2 4 查看电影排名功能 32 5 2 5 投票功能 32 5 3 面向管理员的系统功能 32 5 3 1 管理员主页 32 5 3 2 电影信息管理功能 33 5 3 3 用户信息管理功能 35 5 3 4 礼品管理功能 37 结结 论论 3939 致致 谢谢 4040 参参 考考 文文 献献 4141 本本 科科 毕毕 业业 论论 文文第 1 页 共 45 页 1 1 绪论绪论 随着经济的发展 人们生活质量提高了 娱乐方式也日新月异 电影不再是 奢 侈品 而是人们日常生活中休闲娱乐必备的商业产物 在这个网络信息化浓厚的时代 网络成为主要的通讯手段 当代网络如此发达 也有不少基于 Web 的电影院网站 如 深圳太阳数码影城 Mtime 时光网 58 影院等 他们多用 JSP 实现动态网站制作 JSP 将网页的设计同网页的后台逻辑分离 是支持可重用的基于组件的设计 但是 JSP 的 组件不够丰富 要实现特殊功能的控件 如用户打分的可拖拉五角星打分条 没有现 成的组件 编写制作起来非常复杂麻烦 虽然 JSP 简化了编程开发 但在复杂逻辑中 还是要编写很多代码 开发人员的学习负担也不断加重 JavaServer Faces JSF 框架 可以很好的解决以上问题 它提供全新的 动态的标签库 且组件丰富多样 组件可 以同托管 Bean 绑定 进一步简化了代码编写 减少了代码量 利用 JSF 能制作出饱满 的页面 且支持拖拽功能 非常方便 因此本系统要使用 JSF 框架 利用发达的网络 技术 构建起一个基于 Web 的影院信息管理系统 1 11 1 研究背景及研究意义研究背景及研究意义 信息时代的今天 我们感受到计算机科学日新月异的气息日渐膨胀 如此 信息 的传播途径与传递方式也随之丰富多彩 发展日渐成熟的计算机网络承载着大量信息 的流通任务 人们的生活也越来越依靠网络 在日常娱乐商品中 电影成为丰富精神 生活的佳品 而如今信息流逝太快 传统媒体不能对影院起到较高效的宣传与展示 电影文化只存在于纸张和胶片中使其传播力度受到局限 由此一来 人们不易在第一 时间获知影院动态 许多精彩的电影信息得不到广泛交流 得不到有效的定格 人们 想要了解详细的 日志性的影院信息可能也无从下手 我们要利用发达的网络 利用 时新的技术 构建起一个基于 Web 的影院信息管理系统 这样 各大影院就可以合理 规划电影信息 展示影院文化 与客户做好充分交流 让用户感受到实时信息 使影 院运营的更加流畅 获取更好的经济效益 1 21 2 研究内容研究内容 该系统主要面向普通用户和管理员两种人群 对于普通用户可实现注册 登录功能 积分获取功能 查找站内电影功能 多条件查找 浏览影院电影信息功能 添加影评 功能 电影投票功能 订 退票功能 兑换礼品功能 管理员可实现注册 登录功能 更 新电影信息功能 据用户投票进行电影排名功能 更新展示的礼品功能 管理用户功 能 本本 科科 毕毕 业业 论论 文文第 2 页 共 45 页 该系统使用了新框架 JavaServer Faces 2 0 使用的开发语言为 Java 语言 开发工 具采用的是 MyEclipse10 0 采用 Tomcat7 0 作为 Web 服务器 采用 MySQL 作为数据 库 1 31 3 论文结构论文结构 本文首先对实现系统所有的技术和工具进行了介绍 第二章 其次对系统需求进 行了详细的分析 第三章 再次 本文对系统的详细设计与实现 以及所遇到的关键 问题及解决方案做了详细的阐述 第四章 最后对系统实现效果进行了展示 第五章 本本 科科 毕毕 业业 论论 文文第 3 页 共 45 页 2 2 系统开发工具与相关技术介绍系统开发工具与相关技术介绍 本系统使用 JSF2 0 技术 PrimeFaces3 5 参考实作 MyEclipse10 0 开发环境 MySQL 数据库 Tomcat7 0 服务器 2 12 1 JSFJSF 技术技术 JavaServerFaces JSF 是一个新的 基于 Java 的标准框架 它为 Web 应用程序 提供了用户接口 而且它化简了用户接口的应用 也就是说 JSF 提供了一种以组件为 中心的用户界面 UI 构建方法 1 不管是前台页面设计人员还是后台程序开发人员 都 可以使用 JSF 独立地完成自己涉及的模块 前台与后台得到了有效地分离 大大减小 了耦合度 JSF2 0 内置于 Facelets 提供的先进模板 与 Ajax 更完美地结合 它提供了 复合多种功能的组件 只需将组件的功能属性启动 就可以非常简便的使用该功能 它整合了 Bean 的验证 改进了验证规范 2 JSF 有很多用于提高其 Web 应用程序的类 库 如 PrimeFaces MyFaces 等 本系统使用了 PrimeFaces 类库 MVC 是常用的设计模式 本系统使用了 JSF 来实现 MVC 是 Model View Controller 的简称 即模型 视图 控制器 3 使用 JSF 实现视图层 使页面更加独特 美观 它解决了网页设计的静态性与程序设计的动态性间的矛盾 使设计更加方便简 洁 JSF 提供了一组新的动态的标签 它与后台动态程序相连接 JSF 框架自带的 Servlet 担任了 MVC 中的控制器 而后台 Bean 实现了模型层 JSF 实现了视图和业务 逻辑代码的完全分离 完全遵循 MVC 2 模式 4 那么在JSF中是怎样实现前台与后台的联系 利用什么来管理资源的呢 这就是托 管Bean 在Java编程语言中 一个托管Bean Managed Bean 就是一个Java对象 定义 了托管Bean 就不需再手动实例化类对象了 托管Bean代表了一种可管理的资源 比 如一个组件 一个台设备 一个服务类 托管Bean具有惰性初始化的性质 仅当在运 行时间内应用程序需要它时 容器才将它初始化 也就是说 在JSF 架构中 后台处 理Bean 交由JSF容器进行管理 配置文件为faces config xml Bean 对象的生命周期可 以为null 用时才生成 5 任何Java公共类 任何无参的构造函数都能做托管 Bean List和Map对象也可以 2 2 22 2 PrimeFacesPrimeFaces Primefaces是JSF的参考实例 它提供了丰富的组件 内置于Ajax 基于JSF2 0标准 它是轻组件库 只有一个jar文件 无需配置 没有必要的依附体 是页面表现的更生 动 倍受程序开发者的青睐 PrimeFaces提供了局部页面呈现功能 这就可以选择在一 个JSF生命周期中要运行什么 最后要同Ajax返回什么数据 JSF的原稿基于jQuery和 本本 科科 毕毕 业业 论论 文文第 4 页 共 45 页 JavaScript 6 PrimeFaces提高了JSF Web应用程序开发的效率 它主要由三个模块构成 即UI模块 Optimus模块和FacesTrace模块 UI提供的组件支持通过Ajax更新页面 Optimus模块简化了JSF的开发 FacesTrace模块提供的各种工具能够JSF Web应用程序 可查看JSF生命周期 进行性能跟踪查看 监听页面信息等 2 32 3 MyEclipseMyEclipse 本系统使用My Eclipse10 0开发平台 Myeclipse 是Eclipse 支持下的J2EE开发插件 功能十分完善 具备了完备的编码 调试 测试和发布等功能并且完整支持 HTML Struts JSF CSS JSP SQL Hibernate Spring 等技术 Myeclipse 插件基 本上涵盖了众多Eclipse 插件的功能 能满足我们的各种应用需求 基本上安装了它就 无须其它任何插件 7 用Genuitec公司的集成开发环境MyEclipse做开发 人机界面良好 交互性好 实时性强 移植性强 经过实际运行检验 证实了该系统操作简便 响应 快 通用性 灵活性和安全性好 8 能够明显提影院信息管理的效率 2 42 4 MySQLMySQL MySQL 是由瑞典MySQL AB 公司开发的一个开放源码的小型关联式数据库管理 系统 由于其体积小 速度快 总体拥有成本低被广泛地应用在Internet 上的中小型网 站开发中 目前通过JDBC 连接MySQL 一般采用两种方式 JDBC ODBC 连接桥方式 和纯Java 驱动程序直接连接的方式 9 JDBC Java Data Base Connectivity 是基于中 间件平台的一种数据库访问技术 他能够很好的与ODBC Open DataBase Connectivity 结合 具有可移植性 平台无关性 10 要通过JDBC 访问MySQL 需要 下载JDBC 驱动程序 通过DriverManager 类的getConnection 方法可以建立连接 11 数据库中数据的丢失 若无法通过软件等途径恢复 则会致使业务无法进行 12 所以数据库的备份是非常重要的 MySQL可通过Mysqldump 客户端管理工具 直接 拷贝 日志进行备份 2 52 5 JavaJava 语言语言 Java 语言是一种纯面向对象的编程语言 它主要的特性是面向对象 可移植性 多线程 动态性 面向对象所具有的封装性 继承性 多态性等特点使其具有强大的 生命力 15 java 文件中存放了 Java 源程序 它经 javac 命令编译后就生成了相应的 class 文件 本本 科科 毕毕 业业 论论 文文第 5 页 共 45 页 3 3 需求分析需求分析 所谓好的开始是成功的一半 在启动一个项目前需求分析是必不可少的也是至关 重要的一步 我们要对准启动项目进行数据采集 分析预计实现的功能及功能的可行 性 对系统结构进行搭建 对数据对象进行物理建模 对其存储方式 存储结构 依 赖关系进行缜密的揣测定夺 3 13 1 系统功能需求分析系统功能需求分析 基于 Web 的影院信息管理系统面向两种用户 即普通用户和管理员 普通用户为 影院的大众客户 通过该系统与影院进行信息交流 管理员则是对系统的数据进行管 理 主要是对数据的修改 添加和修改 下面对面向普通用户功能和面向管理员功能进行具体分析 3 1 1 普通用户功能 普通用户功能用例图建模分析如图 3 1 所示 图 3 1 普通用户功能用例建模分析图 a 普通用户注册功能 用户输入用户名及密码后 注册成功后方可登录 未经注 册登录者 系统予以提示 并拒绝本次登录 普通用户身份代码为 0 b 普通用户登录功能 对已注册用户经行用户名与密码的匹配验证 验证通过后 方可登录成功 c 积分获取功能 用户注册成功后自动获取相应积分 本系统为 30 分 订票成 功后会获取相应积分 本系统为 10 分 退票后收回所获积分 积分可换取礼品 本本 科科 毕毕 业业 论论 文文第 6 页 共 45 页 d 添加影评功能 用户可对电影进行评价 打分 e 电影投票功能 用户可选择进入投票页面 对电影进行投票 f 订票功能 用户登录成功后可订电影票 根据座位图选择座位号 订票成功后 返回订单号 g 退票功能 登录后可查看订单信息 在订单生产后 24 小时内可退订 h 查找电影功能 用户可根据电影名称 电影效果 是否为 3D 电影 上映日期 观看日期 电影分类查找站内电影 i 浏览网站功能 用户无需登录 可查看近期上映电影信息 站内电影列表 电 影详细信息等页面 但如果要实现登录后才有的功能 若尚未登录 系统会予以提示 3 1 2 管理员功能 管理员功能用例图建模分析如图 3 2 所示 图 3 2 管理员功能用例建模分析图 a 管理员登录功能 管理员已添加到数据库中 身份代码为 1 管理员无注册功 能 新的管理与由已有管理员进行添加 见更新用户功能 登录时 系统根据身份代 码验证身份 同时验证用户名和密码是否匹配 可报错 登录成功后进行相应操作 b 更新电影信息功能 可添加 删除电影 修改电影信息 电影名称 上映时间 电影简介 电影效果 海报 c 更新礼品信息 对用户积分可换取的礼品进行添加 删除 d 发布电影排榜功能 根据用户投票对电影进行热度排名 将排名列表公布 本本 科科 毕毕 业业 论论 文文第 7 页 共 45 页 e 更新用户功能 总管理员 身份代码为 1 可添加新管理员和普通用户 新管理 员属于二级管理员 身份代码为 2 只有总管理员才能删除二级管理员和普通用户 f 普通用户功能 管理员登录后拥有普通用户的多有功能 3 3 2 2 系统数据库分析系统数据库分析 本系统设计到的实体表有 用户信息表 电影信息表 电影分类表 影评表 礼 品信息表 影院座位表 订单表 礼品兑换单表 3 2 1 数据库物理建模分析 系统数据库物理建模如图 3 3 所示 userinform film gift criticism filmcategory subscrib giftexchange allseat N 1 外外键键 userId 1 N 外键 giftId N 1 外键 userId N 1 外键 filmId N 1 外键 filmId N N 图 3 3 数据库物理建模 userinform 用户信息表 与 gift 礼品表 通过 giftexchange 礼品兑换单表 关 联起来 userinform 与 film 电影信息表 通过 subscribe 订单表 关联起来 film 与 criticism 评论表 为 N 1 的关系 film 与 filmcategory 电影分类表 为 N N 的关系 allseat 为座位表 存储影院多有座位号 与其他表没有关联 3 2 2 实体表详细分析 a userinform 为用户信息表 它记录了用户名 userName 用户密码 passWord 身份编码 ustatus 标记普通用户和管理员级别 用户编号 userId 用户积分 uscore 用户信息表如表 3 1 所示 b film 为电影信息表 它记录了电影名称 filmName 电影编号 filmId 电影 效果 is3D 电影海报 filmPicture 电影简介 filmDescribe 电影得分 filmScore 所得投票数 vote 上映时间 filmTime 播出时间 showTime 电 本本 科科 毕毕 业业 论论 文文第 8 页 共 45 页 影分类 category1 category2 category3 余票数 ticketCount 电影信息表如表 3 2 所示 表 3 1 用户信息表 字段名称字段类型主键外键是否为空默认值 userId int 11 是否 userNamevarchar 10 否 passWordvarchar 15 否 ustatusint 1 否 uscoreint 10 unsigned是 表 3 2 电影信息表 字段名称字段类型主键外键是否为空默认值 filmIdint 11 是否 filmNamevarchar 20 是NULL Is3Dvarchar 5 是NULL filmDescribetext 是NULL filmPicturevarchar 20 是NULL category1varchar 10 是NULL category2varchar 10 是NULL category3varchar 10 是NULL filmTimevarchar 20 是NULL showTimevarchar 100 是NULL voteint 11 是NULL filmScoreint 11 是NULL ticketCountint 11 是NULL c filmcategory 为电影分类表 它记录了分类编号 fcategoryId 分类名称 fcategory 电影分类表如表 3 3 所示 表 3 3 电影分类表 字段名称字段类型主键外键是否为空默认值 fcategoryId int 11 是否 fcategoryvarchar 10 是NULL 本本 科科 毕毕 业业 论论 文文第 9 页 共 45 页 d gift 为用户积分兑换的礼品信息表 它记录了礼品编号 giftId 礼品名称 giftName 礼品描述 giftDescribe 礼品实体图 giftPicture 所需积分 requiredScore 礼品信息表如表 3 4 所示 表 3 4 礼品信息表 字段名称字段类型主键外键是否为空默认值 giftId int 11 是否 giftNamevarchar 20 是NULL giftDescribetext是NULL giftPicture varchar 20 是NULL requiredScoreint 11 是NULL 表 3 5 电影票订单表 字段名称字段类型主键外键是否为空默认值 subId int 11 是否 filmIdint 11 是否 filmNamevarchar 20 是NULL subTime varchar 20 是NULL subNumint 11 是NULL userIdint 11 是否 e subscrib 为电影票订单表 它记录了订单号 subId 电影编号 filmId 电影 名称 filmName 下单时间 subTime 座位号 subNum 用户编号 userId 电 影票订单表如表 3 5 所示 f citicism 为电影评论表 它记录了影评编号 criId 影评内容 criDescribe 电影编号 filmId 电影评论表如表 3 6 所示 表 3 6 电影评论表 字段名称字段类型主键外键是否为空默认值 criId int 11 是否 criDescribetext否 filmIdvarchar 20 是否 本本 科科 毕毕 业业 论论 文文第 10 页 共 45 页 g giftexchange 为礼品兑换单表 它的性质同电影票订单表一样 用户每兑换一样 礼品便生成一张兑换单 它记录了兑换单编号 giftexchangeId 礼品编号 giftId 用户编号 userId 礼品名称 giftName 礼品实体图 giftPicture 礼品兑换单表 如表 3 7 所示 表 3 7 礼品兑换单表 字段名称字段类型主键外键是否为空默认值 giftexchangeId int 11 是否 giftIdint 11 是否 userIdint 11 是否 giftName varchar 20 是NULL giftPictureint 11 是NULL h allseat 为影院所有的座位编号表 它为独立的表 与其它表没有联系 它之记 录了所有座位号 seatNumber 座位编号表如表 3 8 所示 表 3 8 座位编号表 字段名称字段类型主键外键是否为空默认值 seatNumber int 11 是否 3 3 3 3 系统结构分析系统结构分析 3 3 1 系统功能结构分析 本系统面向的操作主体为普通用户和管理员 操作对象主要为电影信息 用户信 息和礼品信息 普通用户对电影信息的操作有查看 打分 投票 订 退票 对礼品信 息的操作有查看 兑换 对用户个人信息的操作有查看和修改 管理员对三种信息的 操作有增加 删除 修改 系统功能结构图如图 3 4 所示 3 3 2 系统逻辑结构分析 JSF 中用到托管 Bean 实现前台页面同后台的传值 该系统采用 JDBC 技术实现同 数据库的连接 包 cinemasManageBean 中定义了所有的托管 Bean 托管 Bean 与前台 空间绑定 Dao 包中定义了所有的具体的业务逻辑 后台通过 Dao 包同数据库连接 本本 科科 毕毕 业业 论论 文文第 11 页 共 45 页 对数据库进行操作 在 cinemasManageBean 包中调用这些操作和返回的结果集向前台 页面传值 filter 包中是过滤器 文件上传时用到 系统包图如图 3 5 所示 图 3 4 系统功能结构图 cinemasManageBeanDao filter 图 3 5 系统包图 基于 Web 的影院信息管理系统 普通用户功能管理员功能 电影信息 礼品 个人信息 电影信息 礼品信息 用户信息 个人信息 查看 添加影评 打分 订 退票 兑换 修改 删除 修改 增加 本本 科科 毕毕 业业 论论 文文第 12 页 共 45 页 4 4 系统详细设计系统详细设计 本系统面向管理员和普通用户两种人群 管理员不可注册 只能由已有管理员进 行添加 系统主页 所有电影信息是开放的 无需登录就可浏览 而订票 兑换积分 电影投票 电影评价是要用户进行登录后才可享有的功能 系统要对实体 用户 电影 电影分类 影评 礼品 订单进行管理 所以建立 了相应的托管 Bean 的类 UserBean FilmBean AllfCategoryBean CriticismBean GiftBean SubscribBean 托 管 Bean 要对数据库进行访问则通过 Dao 包的相应类 UserDao FilmDao AllfCategoryDao CriticismDao GiftDao SubscribDao 实现 系 统类图如图 4 1 所示 UserBeanFilmBean GiftBean AllfCategoryBeanCriticismBeanSubscribBean BaseDao UserDaoFilmDao GiftDao AllfCategoryDao CriticismDaoSubscribDao 图 4 1 系统类图 4 14 1 普通用户功能的设计普通用户功能的设计 本本 科科 毕毕 业业 论论 文文第 13 页 共 45 页 4 1 1 用户注册 登录功能 a 用户注册 userlog xgtmluserBean UserBeanuserdao UserDao uRegist userdetail xhtml xhtml setUserName String userRegist String String setPassWord String 图 4 2 用户注册时序图 该功能实质就是对数据库的用户表进行插入操作 用户注册时向页面的 输入用户名和密码 分别与 userBean 中的 userName 和 passWord 绑定 的 required 属性值为真 用进行输入空的提示 注册按钮的 action 属性值为 userBean uRegist 即与 userBean 的 public String uRegist 方法绑 定 点击注册按钮后 触发 UserBean 类中的 uRegist 方法 在该方法中又嵌套调用 UserDao 中的 public String userRegist String userName String passWord 方法 将前台 传入 userBean 的 userName 和 passWord 的值作为参数传给 userRegist 方法 若注册 成功 则返回字符串 yes 若失败则返回 fail 对 face config xml 进行配置 检测与 userBean 绑定的函数的返回值 实现页面跳转 时序图如图 4 2 所示 b 用户登录 本本 科科 毕毕 业业 论论 文文第 14 页 共 45 页 userlog xhtml xhtmluserBean UserBeanuserdao UserDao ucheckLogin findusers String String setSessionValue String Object 图 4 3 用户登录时序图 用户登录就是对数据库的用户表进行查找 锁定用户名和密码两个条件 用户登 录时向中输入用户名和密码 两个输入文本框分别与 userBean 的 userName 和 passWord 绑定 其 required 属性值为真 登录按钮与 userBean 的 public String ucheckLogin 方法绑定 点击登录按钮后触发 UserBean 类中的 ucheckLogin 方法 在该方法中又嵌套调用 UserDao 类中的 public String findusers String userName String passWord 方法 将前台传入 userBean 的 userName 和 passWord 作为参数送入 findusers 登录成功后返回字符串 success 若失败则 返回 fail 同样对 face config xml 文件进行配置实现页面跳转 时序图如图 4 3 所示 4 1 2 查找电影功能 该功能使用 PrimeFaces 中的控件 dataTable 实现 dataTable 的 value 属性值是一个 数据集 即要放入该数据表的数据集合 在此 该数据集为 filmBean films 即 dataTable 与 filmBean 中的集合 films 绑定 films 由 FilmDao 类中的 public List findFilm 方法返回 dataTable 的 var 属性值表示数据集中的一个元 素 在此 var fsearch dataTable 中加入 使用期 filterBy 属性即可实现按 指定字段查找 如按电影上映日期查找 赋值 filterBy fsearch filmTime filmTime 为 filmBean 的一个属性 表示上映时间 即可 4 1 3 电影投票功能 本本 科科 毕毕 业业 论论 文文第 15 页 共 45 页 fvote xhtml xhtmluserBean UserBeanfilmBean FilmBeanfilmdao FilmDao filmVote ActionEvent getSessionValue String filmVote int int 图 4 4 电影投票时序图 该功能就是对数据库的电影表的票数字段进行更新操作 该功能使用 dataTable 盛 放数据集 即所有电影 每条记录后面加一个投票功能列 使用 其 actionListener 属性值为 filmBean filmVote 即与 FilmBean 类的 public void filmVote ActionEvent event 方法绑定 filmVote 中调用 FilmDao 类的 public int filmVote int vote int filmId 方法 形参 vote 为当前票数 filmId 为待打分电影的编 号 这两个参数由页面的传入 在后台使用 event getComponent getAttributes get f attribute 的 name 属性值 方法即可获取 f attribute 的值 时序图如 图 4 4 所示 4 1 4 添加影评功能 用户在电影详细信息页面进行电影打分和添加影评 a 电影打分 使用 PrimeFaces 的 rating 组件实现 并给 rating 添加 ajax 设置 rating 与 filmScore filmBean 的一个属性 表示电影当前得分 绑定 设置 ajax 监听事件为 rate 监听动作为 filmBean onrate 更新对象为消息控件 即用户进行打分动作后会 触发 FilmBean 类的 public void onrate RateEvent rateevent 方法 在该方法中嵌套 调用 FilmDao 类中的 public int rateScore int filmScore int filmId 方法 将前台传入 的电影当前得分 通过 getSessionValue 键 得到 和电影编号 通过前台 rating 组 件的得到 作为实参传入 如此实现打分 打分的实质就是对数据库的电 影表进行更新操作 更新其得分字段 打分成功后会有消息提示用户的打分值 在 onrate 方法中调用 FaceContext getCurrentInstance addMessage 方法实现消息提示 b 添加影评 本本 科科 毕毕 业业 论论 文文第 16 页 共 45 页 影评的添加实质上就是在数据库中影评表里插入一条记录的操作 使用 盛放用户输入的评论 该控件与 criticismBean criDescribe criDescribe 属性为影评字段 绑定 提交按钮与 criticismBean fCriticismInsert 绑定 且设置提交按 钮的 ajax 值为真 更行对象为整个表单 实现动态刷新 提交评论后就能立刻看到自 己的评论 点击提交按钮后触发 CriticismBean 类的 public void fCriticismInsert 方法 该方法中又嵌套调用 CriticismDao 类中的 public int filmCriInsertByid int filmId String criDescribe 方法 filmId 通过 getSessionValue 方法得到 criDescribe 通过绑定的 前台控件传入 4 1 5 礼品兑换功能 用户登录成功后 点击礼品兑换选项卡进入礼品列表页面 此选项卡使用 PrimeFaces 的控件实现 用户每兑换一次礼品前进行用户的积分检测 积 分符合则实现兑换 用户的积分要相应的减少 对数据库中礼品兑换单表插入一天兑 换记录 giftBean 是管理礼品的托管 Bean 集合 allgifts 是其属性之一 表示所有礼品 的集合 通过 GiftDao 类中的 findAllGifts 方法返回 该方法实质就是对数据库进 行一次查询操作 在前台页面中使用 PrimeFaces 的 dataGrid 控件来盛放该集合 与 dataTable 相似 var 属性也表示集合中的一个元素 兑换按钮的 actionListener 值为 giftBean giftExchange ajax 值为真 更新对象为整个表单 这样用户兑换后就能立 刻看到刚才兑换的礼品 页面动态刷新具体实现见 4 4 点击兑换按钮后触发 GiftBean 类的 giftExchange ActionEvent event 方法 在该方法中 首先通过 session 得到用户积分 将该积分与礼品所需积分对比 少于则提示积分不足 多余则先后调 用 GiftDao 类中 public String exchange int userId int giftId String giftName String giftPicture 和 public void userScoreDivid int requiredScore int userId 两个方法 其中 giftId giftName giftPicture requiredScore 通过兑换按钮下的得到 userId 通过 session 得到 4 1 5 用户订 退功能 a 用户订票 本本 科科 毕毕 业业 论论 文文第 17 页 共 45 页 userdetail xhtml xhtmluserBean UserBeanfilmBean FilmBeanfilmdao FilmDao getFilms findFilm selectedFilm ActionEvent buyticket xhtml xhtml selectById int subscribBean SubscribBeansubsdao SubscribDao getAllSeats findSelectedSeats int findSeats buyTicket ActionEvent getSessionValue String addSubscrib int int String String String filmTicketsDivid int userScoreAdd int 图 4 5 用户订票时序图 用户登录成功后点击订票选项卡进入有订票功能的电影列表 该列表由 PrimeFaces 的 dataGrid 盛放 订票操作实质上是对数据库中三个表的操作 对订单表 插入一条订单记录 对电影表的余票字段进行减量更新 对用户表的用户积分字段进 行增量更新 点击订票按钮后跳转到 buyticket 订票 页面 将该电影编号传入此页 面 页面传值详细实现见 4 4 该页面根据电影余票数动态生成座位号 生成座位号 详细实现见 4 4 即已订走的座位号不再出现 每个座位号是一个按钮 点击按钮生 成一个订单 该按钮 actionListener 属性与 subscribBean buyTicket 绑定 点击座位号按 钮触发 SubscribBean 类的 public void buyTicket ActionEvent event 方法 在该方法中首 先嵌套调用 FilmDao 类的 public int ticketCounts int filmId 方法检测电影余票数 有 余票则先后调用 SubscribBean 类的 public String addSubscrib int userId int filmId String subsTime int seatNum String filmName public void filmTicketsDivid int filmId 和 public void userScoreAdd int userId 方法 其中 filmId filmName userId 通过 session 得到 seatNum 通过座位号按钮下的得到 subsTime 是下单时间 通过调用 本本 科科 毕毕 业业 论论 文文第 18 页 共 45 页 GidtDao nowTime 方法得到当前系统时间 详细实现见 4 4 时序图见图 4 5 所示 b 用户退票 userdetail xhtml xhtmlsubscribBean SubscribBeansubsdao SubscribDaofilmBean FilmBean deleteSub ActionEvent getSessionValue String deleteSub int filmTicketsAdd int userScoreDivid int 图 4 6 用户退票时序图 用户登录成功后会进入用户详情界面 其中包括用户订单列表 可对该列表进行 删除行的操作 删除订单的实质就是对数据库的订单表进行删除操作 对用户表的用 户积分字段值进行减量更新 对电影表的余票数字段值进行增量更新 使用 PrimeFaces 的 dataTable 控件盛放该用户订单的集合 由 SubscribDao 类的 public List findAllSubs int userId 方法返回 其中 userId 通过 session 得到 即 通过用户编号从数据库的订单表中选出对应用户的所有订单 删除按钮同 subscribBean deleteSub 绑定 及点击删除按钮后调用 SubscribBean 的 public void deleteSub ActionEvent event 方法 在该方法中先后调用 SubscribDao 类的 public void deleteSub String subId 方法 public void filmTicketsAdd int filmId 方法和 public void userScoreDivid int userId 方法 其中 subId 和 filmId 通过删除按钮下的得 到 userId 通过 session 得到 时序图如图 4 6 所示 4 24 2 管理员功能的设计管理员功能的设计 4 2 1 管理员登录功能 同用户登录相似 不同的是管理员登录时调用 UserBean 类中的 public String checkLogin 方法 在此方法中嵌套调用 UserDao 类中的 public String findMUers String userName String passWord 方法 该方法中调用了 setSessionValue 方法 将管理员编号与身份代码保存到 session 中 供修改个人信 息和删除操作时用 此方法中加上了身份代码的验证条件 管理员的身份代码为 1 或 2 通过验证则登录成功 本本 科科 毕毕 业业 论论 文文第 19 页 共 45 页 4 2 2 电影信息管理功能 电影信息管理功能分为添加电影 修改电影信息 删除电影 添加电影分类 和 删除分类 a 添加电影 电影名称 filmName 电影效果 is3D 电影分类 category1 category2 category3 代售票数 ticketCount 上映日期 filmTime 都使用输入 电影简介 filmDescribe 使用输入 这些 控件分别与 filmBean 的相应属性绑定 电影的海报添加要使用文件上传功能 由 PrimeFaces 的 fileUpload 控件实现 详细实现见 4 4 添加按钮与 filmBean filmInsert 绑定 点击添加按钮触发 FilmBean 类的 public void filmInsert 方法 在此方法中嵌 套调用 FilmDao 类中的 public int filmInsert String filmName String is3D String category1 String category2 String category3 String filmPicture String filmDescribe String filmTime int ticketCount 方法 其中的参数都有前台绑定的 filmBean 的属性值得到 添 加成功或失败都有相应的消息提示 设置添加按钮的 ajax 属性值为真 更新对象为相 应消息提示框 时序图如图 4 7 所示 filminsert xhtml xhtmlfilmBean FilmBeanfilmdao FilmDaoFaceContext filmInsert filmInsert String String String String String String String String int addMessage String 图 4 7 添加电影时序图 b 修改电影信息 该功能就是根据前台页面传来的 filmId 查到电影表的一条记录 对该记录进行更 新操作 电影列表由盛放 每条记录后有一个修改按钮 此修改按钮下 的将 filmId 传入后台 通过 filmId 选出要修改的电影的详细表单 管理员 能够修改电影名称 filmName 电影效果 is3D 电影分类 category1 category2 category3 代售票数 ticketCount 上映日期 filmTime 电影简介 filmDescribe 这些字段与前台绑定 且在这些字段的 set 方 法中调用 setSessionValue 进行修改后 通过 session 获取新值 点击保存按钮后触 发 FilmBean 类的 public void filmUpdate ActionEvent event 方法 其中嵌套调用 本本 科科 毕毕 业业 论论 文文第 20 页 共 45 页 FilmDao 类的 public int filmUpdateById String filmName String is3D String category1 String category2 String category3 String filmPicture String filmDescribe String filmTime int filmId 方法 除 filmId 外其他参数由 getSessionValue 方法得到 filmId 由保存按钮下的得到 c 删除电影 该功能实质是根据 filmId 删除数据库中电影表的一条记录 电影列表由 盛放 dataTable 的 value 值为 filmBean films films 为所有电影的集合 由 FilmDao 类的 public List findFilm 方法返回 dataTable 中每条电影记录 后都有一个删除按钮 该按钮与 filmBean filmDelete 绑定 点击后触发 FilmBean 类的 public void filmDelete ActionEvent event 方法 该方法中嵌套调用 public void filmDeleteByID int filmId 方法 filmId 有删除按钮下的得到 删除后页面使 用 ajax 进行动态刷新 d 添加电影分类 电影分类由托管 Bean allfCategoryBean 管理 页面的与 allfCategoryBean fcategory 绑定 点击添加按钮触发 AllfCategoryBean 类的 public void categoryInsert 方法 该方法中嵌套调用 AllfCategoryDao 类的 public int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新源抗疫测试题及答案
- 行政处罚考试试题及答案
- 车床考试题及答案
- 烟火经济面试题及答案
- 有机化学考试试题及答案
- 德育工作总结
- 22.2.2配方法(教学课件)数学华东师大版九年级上册
- 六年级英语下册Unit8Readingsigns练习(含答案)沪教牛津版(深圳用)
- 五年级上册英语单元测试卷-Unit3whatwouldyoulike人教PEP(含答案)
- 纸类垃圾焚烧处理方案(3篇)
- 治污减霾监理新版细则
- 北京市海淀区2020-2021学年七年级下学期期末历史试题(答案)
- 渝20TJ11 浮筑楼板隔声保温系统构造 难燃型改性聚乙烯复合卷材(蜂窝型)DJBT 50-143
- 湖北省武汉市武昌区2021-2023年三年中考一模英语试题分类汇编:首字母填空(含答案)
- 2023-2024年全国卷英语双向细目表
- 节日期间纪检监督检查记录表
- (完整word)600习题《工会基础知识试题及答案》2020.1.6
- GB 29518-2013柴油发动机氮氧化物还原剂尿素水溶液(AUS 32)
- 第三单元名著导读《儒林外史之严贡生、严监生》课件-部编版语文九年级下册
- 中医药法宣讲余课件
- 2022年郑州城市职业学院辅导员招聘考试笔试试题及答案解析
评论
0/150
提交评论