1、 目 录 1 绪论 1 1.1 研究背景及研究意义 1 1.2 研究内容 1 1.3 论文结构 2 2 系统开发工具与相关技术介绍 3 2.1 JSF技术 3 2.2 PrimeFaces 3 2.3 MyEclipse 4 2.4 MySQL 4 2.5 Java语言 4 3 需求分析 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
2、 系统功能结构分析 10 3.3.2 系统逻辑结构分析 10 4 系统详细设计 12 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 主
3、页设计 22 4.3.2 电影详情页面设计 23 4.4 关键问题及解决方案 23 5系统的实现 27 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 结
4、 论 39 致 谢 40 参 考 文 献 41 1 绪论 随着经济的发展,人们生活质量提高了,娱乐方式也日新月异。电影不再是“奢侈品”,而是人们日常生活中休闲娱乐必备的商业产物。在这个网络信息化浓厚的时代,网络成为主要的通讯手段。当代网络如此发达,也有不少基于Web的电影院网站,如深圳太阳数码影城、Mtime时光网、58影院等。他们多用JSP实现动态网站制作。JSP将网页的设计同网页的后台逻辑分离,是支持可重用的基于组件的设计。但是JSP的组件不够丰富,要实现特殊功能的控件,如用户打分的可拖拉五角星打分条,没有现成的组件,编写制作起来非常复杂麻烦。虽然JSP简化了编程开发,
5、但在复杂逻辑中还是要编写很多代码,开发人员的学习负担也不断加重。JavaServer Faces(JSF)框架可以很好的解决以上问题,它提供全新的,动态的标签库,且组件丰富多样,组件可以同托管Bean绑定,进一步简化了代码编写,减少了代码量。利用JSF能制作出饱满的页面,且支持拖拽功能,非常方便。因此本系统要使用JSF框架,利用发达的网络技术,构建起一个基于Web的影院信息管理系统。 1.1 研究背景及研究意义 信息时代的今天,我们感受到计算机科学日新月异的气息日渐膨胀。如此,信息的传播途径与传递方式也随之丰富多彩。发展日渐成熟的计算机网络承载着大量信息的流通任务,人们的生活也越来越依靠
6、网络。在日常娱乐商品中,电影成为丰富精神生活的佳品。而如今信息流逝太快,传统媒体不能对影院起到较高效的宣传与展示,电影文化只存在于纸张和胶片中使其传播力度受到局限。由此一来,人们不易在第一时间获知影院动态,许多精彩的电影信息得不到广泛交流,得不到有效的定格,人们想要了解详细的、日志性的影院信息可能也无从下手。我们要利用发达的网络,利用时新的技术,构建起一个基于Web的影院信息管理系统。这样,各大影院就可以合理规划电影信息,展示影院文化,与客户做好充分交流,让用户感受到实时信息,使影院运营的更加流畅,获取更好的经济效益。 1.2 研究内容 该系统主要面向普通用户和管理员两种人群。对于普通用
7、户可实现注册/登录功能、积分获取功能、查找站内电影功能(多条件查找)、浏览影院电影信息功能、添加影评功能、电影投票功能、订/退票功能、兑换礼品功能;管理员可实现注册/登录功能、更新电影信息功能、据用户投票进行电影排名功能、更新展示的礼品功能、管理用户功能。 该系统使用了新框架JavaServer Faces 2.0,使用的开发语言为Java语言,开发工具采用的是MyEclipse10.0,采用Tomcat7.0作为Web服务器,采用MySQL作为数据库。 1.3 论文结构 本文首先对实现系统所有的技术和工具进行了介绍(第二章);其次对系统需求进行了详细的分析(第三章);再次,本文对系统的
8、详细设计与实现,以及所遇到的关键问题及解决方案做了详细的阐述(第四章);最后对系统实现效果进行了展示(第五章)。 2 系统开发工具与相关技术介绍 本系统使用JSF2.0技术,PrimeFaces3.5参考实作,MyEclipse10.0开发环境,MySQL数据库,Tomcat7.0服务器。 2.1 JSF技术 JavaServerFaces(JSF)是一个新的,基于Java的标准框架。它为Web应用程序提供了用户接口,而且它化简了用户接口的应用。也就是说,JSF提供了一种以组件为中心的用户界面(UI)构建方法[1],不管是前台页面设计人员还是后台程序开发人员,都可以使用JSF独
9、立地完成自己涉及的模块,前台与后台得到了有效地分离,大大减小了耦合度。JSF2.0内置于Facelets提供的先进模板,与Ajax更完美地结合;它提供了复合多种功能的组件,只需将组件的功能属性启动,就可以非常简便的使用该功能;它整合了Bean的验证,改进了验证规范[2]。JSF有很多用于提高其Web应用程序的类库,如PrimeFaces,MyFaces等,本系统使用了PrimeFaces类库。 MVC是常用的设计模式,本系统使用了JSF来实现。MVC是Model-View-Controller的简称,即模型—视图—控制器[3]。使用JSF实现视图层,使页面更加独特美观,它解决了网页设计的静态
10、性与程序设计的动态性间的矛盾,使设计更加方便简洁。JSF提供了一组新的动态的标签,它与后台动态程序相连接。JSF框架自带的Servlet担任了MVC中的控制器,而后台Bean实现了模型层。JSF实现了视图和业务逻辑代码的完全分离,完全遵循MVC—2模式[4]。 那么在JSF中是怎样实现前台与后台的联系,利用什么来管理资源的呢?这就是托管Bean。在Java编程语言中,一个托管Bean(Managed Bean)就是一个Java对象。定义了托管Bean,就不需再手动实例化类对象了。托管Bean代表了一种可管理的资源,比如一个组件,一个台设备,一个服务类。托管Bean具有惰性初始化的性质,仅当在
11、运行时间内应用程序需要它时,容器才将它初始化,也就是说,在JSF 架构中, 后台处理Bean 交由JSF容器进行管理。配置文件为faces-config.xml,Bean 对象的生命周期可以为null: 用时才生成[5]。任何Java公共类,任何无参的构造函数都能做托管Bean,List和Map对象也可以[2]。 2.2 PrimeFaces Primefaces是JSF的参考实例。它提供了丰富的组件,内置于Ajax,基于JSF2.0标准。它是轻组件库,只有一个jar文件,无需配置,没有必要的依附体,是页面表现的更生动,倍受程序开发者的青睐。PrimeFaces提供了局部页面呈现功能,
12、这就可以选择在一个JSF生命周期中要运行什么,最后要同Ajax返回什么数据。JSF的原稿基于jQuery和JavaScript[6]。PrimeFaces提高了JSF Web应用程序开发的效率,它主要由三个模块构成,即UI模块,Optimus模块和FacesTrace模块。UI提供的组件支持通过Ajax更新页面。Optimus模块简化了JSF的开发,FacesTrace模块提供的各种工具能够JSF Web应用程序,可查看JSF生命周期,进行性能跟踪查看,监听页面信息等。 2.3 MyEclipse 本系统使用My Eclipse10.0开发平台。Myeclipse 是Eclipse 支持
13、下的J2EE开发插件,功能十分完善,具备了完备的编码、调试、测试和发布等功能并且完整支持HTML、Struts、JSF、CSS、JSP、SQL、Hibernate、Spring 等技术。Myeclipse 插件基本上涵盖了众多Eclipse 插件的功能,能满足我们的各种应用需求,基本上安装了它就无须其它任何插件[7]。用Genuitec公司的集成开发环境MyEclipse做开发,人机界面良好、交互性好、实时性强、移植性强,经过实际运行检验,证实了该系统操作简便,响应快,通用性、灵活性和安全性好[8],能够明显提影院信息管理的效率。 2.4 MySQL MySQL 是由瑞典MySQL AB
14、 公司开发的一个开放源码的小型关联式数据库管理系统,由于其体积小、速度快、总体拥有成本低被广泛地应用在Internet 上的中小型网站开发中,目前通过JDBC 连接MySQL 一般采用两种方式:JDBC-ODBC 连接桥方式和纯Java 驱动程序直接连接的方式[9]。JDBC(Java Data Base Connectivity)是基于中间件平台的一种数据库访问技术,他能够很好的与ODBC(Open DataBase Connectivity)结合,具有可移植性、平台无关性[10]。要通过JDBC 访问MySQL,需要下载JDBC 驱动程序。通过DriverManager 类的getConn
15、ection 方法可以建立连接[11]。 数据库中数据的丢失,若无法通过软件等途径恢复,则会致使业务无法进行[12]。所以数据库的备份是非常重要的。MySQL可通过Mysqldump、客户端管理工具、直接拷贝、日志进行备份。 2.5 Java语言 Java语言是一种纯面向对象的编程语言。它主要的特性是面向对象,可移植性,多线程,动态性。面向对象所具有的封装性,继承性,多态性等特点使其具有强大的生命力[15]。.java文件中存放了Java源程序,它经javac命令编译后就生成了相应的.class文件。 3 需求分析 所谓好的开始是成功的一半,在启动一个项目前需求分析是必
16、不可少的也是至关重要的一步。我们要对准启动项目进行数据采集,分析预计实现的功能及功能的可行性,对系统结构进行搭建,对数据对象进行物理建模,对其存储方式、存储结构、依赖关系进行缜密的揣测定夺。 3.1 系统功能需求分析 基于Web的影院信息管理系统面向两种用户,即普通用户和管理员。普通用户为影院的大众客户,通过该系统与影院进行信息交流;管理员则是对系统的数据进行管理,主要是对数据的修改,添加和修改。 下面对面向普通用户功能和面向管理员功能进行具体分析。 3.1.1 普通用户功能 普通用户功能用例图建模分析如图3.1所示。 图 3.1普通用户功能用例建模分析图 a. 普通用户
17、注册功能:用户输入用户名及密码后,注册成功后方可登录。未经注册登录者,系统予以提示,并拒绝本次登录。普通用户身份代码为“0”。 b. 普通用户登录功能:对已注册用户经行用户名与密码的匹配验证。验证通过后方可登录成功。 c. 积分获取功能:用户注册成功后自动获取相应积分(本系统为30分)。订票成功后会获取相应积分(本系统为10分),退票后收回所获积分。积分可换取礼品。 d. 添加影评功能:用户可对电影进行评价,打分。 e. 电影投票功能:用户可选择进入投票页面,对电影进行投票。 f. 订票功能:用户登录成功后可订电影票,根据座位图选择座位号,订票成功后返回订单号。 g. 退票功能:登
18、录后可查看订单信息,在订单生产后24小时内可退订。 h. 查找电影功能:用户可根据电影名称,电影效果(是否为3D电影),上映日期,观看日期,电影分类查找站内电影。 i. 浏览网站功能:用户无需登录,可查看近期上映电影信息,站内电影列表,电影详细信息等页面,但如果要实现登录后才有的功能,若尚未登录,系统会予以提示。 3.1.2 管理员功能 管理员功能用例图建模分析如图3.2所示。 图 3.2管理员功能用例建模分析图 a. 管理员登录功能:管理员已添加到数据库中,身份代码为“1”。管理员无注册功能,新的管理与由已有管理员进行添加(见更新用户功能)。登录时,系统根据身份代码验证身份
19、同时验证用户名和密码是否匹配,可报错。登录成功后进行相应操作。 b. 更新电影信息功能:可添加/删除电影;修改电影信息:电影名称,上映时间,电影简介,电影效果,海报。 c. 更新礼品信息:对用户积分可换取的礼品进行添加,删除。 d. 发布电影排榜功能:根据用户投票对电影进行热度排名,将排名列表公布。 e. 更新用户功能:总管理员(身份代码为“1”)可添加新管理员和普通用户,新管理员属于二级管理员,身份代码为“2”。只有总管理员才能删除二级管理员和普通用户。 f. 普通用户功能:管理员登录后拥有普通用户的多有功能。 3. 2 系统数据库分析 本系统设计到的实体表有:用户信息表、
20、电影信息表、电影分类表、影评表、礼品信息表、影院座位表、订单表、礼品兑换单表。 3.2.1 数据库物理建模分析 系统数据库物理建模如图3.3所示。 图3.3 数据库物理建模 userinform(用户信息表)与gift(礼品表)通过giftexchange(礼品兑换单表)关联起来;userinform与film(电影信息表)通过subscribe(订单表)关联起来;film与criticism(评论表)为N:1的关系;film与filmcategory(电影分类表)为N:N的关系;allseat为座位表,存储影院多有座位号,与其他表没有关联。 3.2.2 实体表详细分析
21、 a. userinform为用户信息表。它记录了用户名(userName),用户密码(passWord),身份编码(ustatus,标记普通用户和管理员级别),用户编号(userId),用户积分(uscore)。用户信息表如表3.1所示。 b. film为电影信息表。它记录了电影名称(filmName),电影编号(filmId),电影效果(is3D),电影海报(filmPicture),电影简介(filmDescribe),电影得分(filmScore),所得投票数(vote),上映时间(filmTime),播出时间(showTime),电影分类(category1,category2,
22、category3),余票数(ticketCount)。电影信息表如表3.2所示。 表3.1 用户信息表 字段名称 字段类型 主键 外键 是否为空 默认值 userId int(11) 是 否 userName varchar(10) 否 passWord varchar(15) 否 ustatus int(1) 否 uscore int(10)unsigned 是 表3.2 电影信息表 字段名称 字段类型 主键 外键 是否为空 默认值 filmId int(11
23、) 是 否 filmName varchar(20) 是 NULL Is3D varchar(5) 是 NULL filmDescribe text 是 NULL filmPicture varchar(20) 是 NULL category1 varchar(10) 是 NULL category2 varchar(10) 是 NULL category3 varchar(10) 是 NULL filmTime varchar(20) 是 NULL
24、 showTime varchar(100) 是 NULL vote int(11) 是 NULL filmScore int(11) 是 NULL ticketCount int(11) 是 NULL c. filmcategory为电影分类表。它记录了分类编号(fcategoryId),分类名称(fcategory)。电影分类表如表3.3所示。 表3.3 电影分类表 字段名称 字段类型 主键 外键 是否为空 默认值 fcategoryId int(11) 是 否 fcateg
25、ory varchar(10) 是 NULL d. gift为用户积分兑换的礼品信息表。它记录了礼品编号(giftId),礼品名称(giftName),礼品描述(giftDescribe),礼品实体图(giftPicture),所需积分(requiredScore)。礼品信息表如表3.4所示。 表3.4 礼品信息表 字段名称 字段类型 主键 外键 是否为空 默认值 giftId int(11) 是 否 giftName varchar(20) 是 NULL giftDescribe text 是 NULL
26、 giftPicture varchar(20) 是 NULL requiredScore int(11) 是 NULL 表3.5 电影票订单表 字段名称 字段类型 主键 外键 是否为空 默认值 subId int(11) 是 否 filmId int(11) 是 否 filmName varchar(20) 是 NULL subTime varchar(20) 是 NULL subNum int(11) 是 NULL userId int(1
27、1) 是 否 e. subscrib为电影票订单表。它记录了订单号(subId),电影编号(filmId),电影名称(filmName),下单时间(subTime),座位号(subNum),用户编号(userId)。电影票订单表如表3.5所示。 f. citicism为电影评论表。它记录了影评编号(criId),影评内容(criDescribe),电影编号(filmId)。电影评论表如表3.6所示。 表3.6 电影评论表 字段名称 字段类型 主键 外键 是否为空 默认值 criId int(11) 是 否 criDescribe
28、text 否 filmId varchar(20) 是 否 g. giftexchange为礼品兑换单表,它的性质同电影票订单表一样,用户每兑换一样礼品便生成一张兑换单。它记录了兑换单编号(giftexchangeId),礼品编号(giftId),用户编号(userId),礼品名称(giftName),礼品实体图(giftPicture)。礼品兑换单表如表3.7所示。 表3.7 礼品兑换单表 字段名称 字段类型 主键 外键 是否为空 默认值 giftexchangeId int(11) 是 否 giftId in
29、t(11) 是 否 userId int(11) 是 否 giftName varchar(20) 是 NULL giftPicture int(11) 是 NULL h. allseat为影院所有的座位编号表。它为独立的表,与其它表没有联系。它之记录了所有座位号(seatNumber)。座位编号表如表3.8所示。 表3.8 座位编号表 字段名称 字段类型 主键 外键 是否为空 默认值 seatNumber int(11) 是 否 3. 3 系统结构分析 3.3
30、1 系统功能结构分析 本系统面向的操作主体为普通用户和管理员,操作对象主要为电影信息、用户信息和礼品信息。普通用户对电影信息的操作有查看、打分、投票、订/退票;对礼品信息的操作有查看、兑换;对用户个人信息的操作有查看和修改。管理员对三种信息的操作有增加、删除、修改。系统功能结构图如图3.4所示。 3.3.2 系统逻辑结构分析 JSF中用到托管Bean实现前台页面同后台的传值。该系统采用JDBC技术实现同数据库的连接。包cinemasManageBean中定义了所有的托管Bean,托管Bean与前台空间绑定。Dao包中定义了所有的具体的业务逻辑。后台通过Dao包同数据库连接,对数据库
31、进行操作,在cinemasManageBean包中调用这些操作和返回的结果集向前台页面传值。filter包中是过滤器,文件上传时用到。系统包图如图3.5所示。 基于Web的影院信息管理系统 普通用户功能 管理员功能 电影信息 礼品 个人信息 电影信息 礼品信息 用户信息 个人信息 查看 添加影评、打分 订/退票 兑换 修改 删除 修改 增加 图3.4 系统功能结构图 图3.5 系统包图 4 系统详细设计 本系统面向管理员和普通用户两种人群。管理员不可注册,只能由已有管理员进行添加。系
32、统主页,所有电影信息是开放的,无需登录就可浏览;而订票,兑换积分,电影投票,电影评价是要用户进行登录后才可享有的功能。 系统要对实体:用户、电影、电影分类、影评、礼品、订单进行管理,所以建立了相应的托管Bean的类:UserBean,FilmBean,AllfCategoryBean,CriticismBean,GiftBean,SubscribBean;托管Bean要对数据库进行访问则通过Dao包的相应类:UserDao,FilmDao,AllfCategoryDao,CriticismDao,GiftDao,SubscribDao实现。系统类图如图4.1所示。 图4.1 系统类
33、图
4.1 普通用户功能的设计
4.1.1 用户注册/登录功能
a. 用户注册
图4.2 用户注册时序图
该功能实质就是对数据库的用户表进行插入操作。用户注册时向页面的
34、方法,在该方法中又嵌套调用UserDao中的public String userRegist(String userName,String passWord)方法,将前台传入userBean的userName和passWord的值作为参数传给userRegist()方法。若注册成功,则返回字符串“yes”,若失败则返回“fail”。对face-config.xml进行配置,检测与userBean绑定的函数的返回值,实现页面跳转。时序图如图4.2所示。
b. 用户登录
图4.3 用户登录时序图
用户登录就是对数据库的用户表进行查找,锁定用户名和密码两个条件。用户登录时向 35、tText>中输入用户名和密码,两个输入文本框分别与userBean的userName和passWord绑定,其required属性值为真。登录按钮与userBean的public String ucheckLogin()方法绑定,点击登录按钮后触发UserBean类中的ucheckLogin()方法,在该方法中又嵌套调用UserDao类中的public String findusers(String userName,String passWord)方法,将前台传入userBean的userName和passWord作为参数送入findusers(),登录成功后返回字符串“success”, 36、若失败则返回“fail”。同样对face-config.xml文件进行配置实现页面跳转。时序图如图4.3所示。
4.1.2 查找电影功能
该功能使用PrimeFaces中的控件dataTable实现。dataTable的value属性值是一个数据集,即要放入该数据表的数据集合。在此,该数据集为filmBean.films,即dataTable与filmBean中的集合films绑定。films由FilmDao类中的public List 37、le中加入 38、ilmVote(ActionEvent event)方法绑定。filmVote()中调用FilmDao类的public int filmVote(int vote,int filmId)方法。形参vote为当前票数,filmId为待打分电影的编号,这两个参数由页面的 39、用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(“键” 40、得到)和电影编号(通过前台rating组件的 41、iticismBean.fCriticismInsert绑定,且设置提交按钮的ajax值为真,更行对象为整个表单,实现动态刷新,提交评论后就能立刻看到自己的评论。点击提交按钮后触发CriticismBean类的public void fCriticismInsert()方法,该方法中又嵌套调用CriticismDao类中的public int filmCriInsertByid(int filmId, String criDescribe)方法,filmId通过getSessionValue()方法得到,criDescribe通过绑定的前台控件传入。
4.1.5 礼品兑换功能
用户登录成 42、功后,点击礼品兑换选项卡进入礼品列表页面,此选项卡使用PrimeFaces的 43、值为#{giftBean.giftExchange},ajax值为真,更新对象为整个表单,这样用户兑换后就能立刻看到刚才兑换的礼品(页面动态刷新具体实现见4.4)。点击兑换按钮后触发GiftBean类的giftExchange(ActionEvent event)方法。在该方法中,首先通过session得到用户积分,将该积分与礼品所需积分对比,少于则提示积分不足,多余则先后调用GiftDao类中public String exchange(int userId,int giftId,String giftName,String giftPicture)和public void userScor 44、eDivid(int requiredScore,int userId)两个方法,其中giftId,giftName,giftPicture,requiredScore通过兑换按钮下的 45、uyticket(订票)页面,将该电影编号传入此页面(页面传值详细实现见4.4),该页面根据电影余票数动态生成座位号(生成座位号详细实现见4.4),即已订走的座位号不再出现。每个座位号是一个按钮,点击按钮生成一个订单,该按钮actionListener属性与subscribBean.buyTicket绑定,点击座位号按钮触发SubscribBean类的public void buyTicket(ActionEvent event)方法,在该方法中首先嵌套调用FilmDao类的public int ticketCounts(int filmId)方法检测电影余票数,有余票则先后调用Subscri 46、bBean类的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通过座位号按钮下的 47、4)。时序图见图4.5所示。
b. 用户退票
图4.6 用户退票时序图
用户登录成功后会进入用户详情界面,其中包括用户订单列表,可对该列表进行删除行的操作。删除订单的实质就是对数据库的订单表进行删除操作,对用户表的用户积分字段值进行减量更新,对电影表的余票数字段值进行增量更新。使用PrimeFaces的dataTable控件盛放该用户订单的集合,由SubscribDao类的public List 48、同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通过删除按钮下的 49、如图4.6所示。
4.2 管理员功能的设计
4.2.1 管理员登录功能
同用户登录相似。不同的是管理员登录时调用UserBean类中的public String checkLogin()方法,在此方法中嵌套调用UserDao类中的public String findMUers(String userName,String passWord)方法,该方法中调用了setSessionValue()方法,将管理员编号与身份代码保存到session中,供修改个人信息和删除操作时用。此方法中加上了身份代码的验证条件(管理员的身份代码为1或2),通过验证则登录成功。
4.2.2 电影信息管理 50、功能
电影信息管理功能分为添加电影,修改电影信息,删除电影,添加电影分类,和删除分类。
a. 添加电影
电影名称(filmName),电影效果(is3D),电影分类(category1,category2,category3),代售票数(ticketCount),上映日期(filmTime)都使用






