1、目 录1 引言11.1 研究课题的意义和背景11.2 课题可行性研究报告22 主要技术介绍32.1 MVC设计模式32.2 JSP相关知识32.3 JavaBean相关知识52.4 JDBC相关知识53 系统开发工具介绍83.1 MyEclipse83.2 MySql相关83.3 容器83.4 Tomcat相关94 系统总体设计104.1 系统功能设计104.1.1 总体功能设计104.1.2 处理流程设计124.2 数据库设计134.2.1 数据表需求分析135 详细设计145.1 数据库详细设计145.1.1 数据表具体设计145.2 系统主界面模块设计165.3 用户注册模块设计195.
2、4 用户登录模块设计205.5 关键字查询模块设计22第 页 共 页5.6.1 修改头像235.6.2 修改基本信息245.6.3 修改密码265.7 用户订单管理265.7.1 购票265.7.2 选座285.7.3 查看订单305.8 用户评论管理325.8.1 用户发表评论325.8.2 用户对自己发表的评论进行浏览和删除操作335.9 用户收藏管理345.9.1 加入收藏345.9.2 用户对自己的收藏进行浏览以及删除操作355.10 注销退出376 系统测试386.1 测试的定义以及重要性386.2 测试的方法386.2.1 需求测试386.2.2 界面测试386.2.3 功能测试3
3、96.2.4 性能测试396.3 电影订票网站的设计与开发-用户功能子系统测试397 结论40参 考 文 献41致 谢42第 页 共 页1 引言1.1 研究课题的意义和背景正在爆发的互联网革命席卷了生活的方方面面。当受众惊叹于足不出户就可以欣赏互联网所带来的视听盛宴时,网线的另一头,富于创造力的程序员已然将互联网编织成一张涵盖社会生活方方面面,惠及百姓日常所需的高科技工具。同时,由互联网所引导的生活方式的改变同样革新着传统行业的服务方式,电影订票网站就是传统电影行业适应这一变革利用Internet和电子商务1的成熟技术所创造的产物。在国外,借助于网络技术发展起步早发展快的优势,率先开展了网络销
4、售电影票的相关业务。而就目前的状况来看在国内网络售票业务任然具有很大的发展空间。近几年,我国电影行业发展迅猛,各大院线纷纷扩张院线,每年新投入市场的荧屏数量增长显著。与院线扩张相辅相成的是人们的观影需求显著提高。人们需要知道自己的空闲时间是否有合适的电影可供观赏,也需要知道哪家电影院有自己需要的电影票,同时手握电影排挡及上映信息的电影院的经营者也急需掌握观影者的消费需求,这种买卖双方之间信息交流上的阻碍更催生了“电影订票网站”发展。2008年,看够网携全国百家影院同时开通网络预订,观众可以通过登陆看购网网站预订影票2、提前订座。观众可以随时登录相关网站查询影讯,提前预订影票,并可尊享一定的优惠
5、折扣。新影联院线副总经理高军表示:“网络订票并不会对影院售票构成利益冲突,而是相互促进,它能缓解上映大片时观众买票难的现象,也有利于影院根据影票预售情况提前排片。”网络购票在国外早已成为电影售票的一种成熟渠道,在国内也已蔚然成风。与看购网同时上线网络业务的还有中国电影网、网票网、时光网、新浪网、谷歌等多家网站。他们都提供影讯服务、网络售票等服务,不过看购网所推出的网络预订业务还属于新兴业务,也是国内第一次实现全国网络预订影票。票务预订在体育赛事、演艺、交通票务方面并不新鲜,与单纯的售票业务相比,订票业务在满足用户需求方面实现了很大的跃进。目前,各大电影公司和部门都广泛采用计算机管理系统3和互联
6、网技术,推出网上电影订票服务,大大减轻了订票、售票、检票、调度、票款管理等不能工作人员的劳动强度,提高了整个行业的工作效率,而且在很大程度上减少了顾客的长时间排队购票的时间和由此带给顾客的疲劳和烦躁情绪,为广大顾客提供了更加快捷、优质、有序的服务,提高了各大影城的服务水平,也逐步树立了企业形象,赢得了消费人群的良好口碑。这种消费形式的发展也逐渐反衬出传统售票方式存在的诸多不足,比如实时差、交易时间过长、运营成本高、信息无法共享以及售票过程中可能出现的其他不确定因素,更加促进了网上电影订票项目的蓬勃发展。我们向广大用户推出的是一种全新的网上信息服务,旨在提供一个面向消费者的便捷、安全、高效的网上
7、影票订购平台。 1.2 课题可行性研究报告以尽可能小的代价在尽短时间内确定问题是否能够解决是可行性研究要解决的要素之一。一般从经济可行性,技术可行性以及操作可行性来研究一个系统是否具备开发的基本条件。成本和效益分析是经济可行性分析中最重要的内容之一。对于一个基于计算机的开发项目要在经济方面评价它是否合理,成本和效益分析要估计开发的花销和系统上线之后的收益。本系统属于网页应用,应用开发软件进行开发,成本更多的体现在劳务成本上。如果采用自主开发方式,系统上线后,正常运转将加快电影票销售进程,更有效地支持影城的运行,所产生的效益远大于开发花销,实现小投入,大产出。所以,电影订票网站在经济上是可行的。
8、信息化发展非常迅猛的今天,计算机技术被应用于各个领域中。对于影城管理,实施本系统只需要企业内部接入互联网,配合使用先进的数据库管理技术和服务器管理技术,使数据的准确性与安全性得到保障,加上现有的Microsoft SQL Server 2005数据库为设计工作提供了必要的保证。经过调研以及需求分析得出此次系统开发的技术完全能实现电影订票网站需要的各项功能。因此,它在技术上是可行的。本系统为一个中小的电影票预订系统4,所耗费的硬件资源非常少,企业的电脑和服务器在硬件和软件上都能够满足需求,因此,本系统在操作上也是可行的。2 主要技术介绍2.1 MVC设计模式每个设计模式都描述了一个在我们的环境中
9、不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,我们可以无数次地使用那些已有的解决方案,无需再重复相同的工作。开发中常用到的设计模式主要有MVC设计模式,简单工厂模式等。其中MVC设计模式是最常用、最核心的一种设计模式,用来开发JSP/Servlet或者J2EE的相关应用。本项目就采用了该种设计模式。以下是对MVC的详细介绍:M指的是模型层(Model),开发人员在此编写代码来实现需求人员根据客户要求编写的需求上的各种功能,数据库管理员在此对数据库中的数据进行各种操作,如增加字段,减少字段,删除字段,修改字段内容等,这一部分通常用javaBean来实现,文中相应部分会对java
10、Bean进行详细的阐述。V指的是视图层(View),美工人员、前台设计人员在此进行前台页面的设计与功能的展示,这一部分一般是用html页面或是jsp页面来显示。C指的是控制层(Controller),在此可以进行业务逻辑的实现或是请求的转发,一般用servlet来实现。 2.2 JSP相关知识JSP5是Java Server Pages 的简称,它实际上就是一种动态的Java页面。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP的运行原理为JSP在首次载入时被翻译成Servlet文件(*.java),JSP引擎调用java编译
11、器将*.java编译成class,然后JSP引擎调用JVM执行*.class,将运行结果返回给服务器,服务器封装响应后返回给客户端。JSP的生命周期共分为三个阶段,分别是:翻译阶段,编译阶段,执行阶段。其中,翻译阶段是指当容器接收到客户端第一次对JSP的请求后,先判断被请求的JSP是否存在,若不存在返回404错误;若存在,则将该JSP先翻译成一个Servlet。编译阶段是指将Servlet的源文件编译成一个字节码文件,然后由容器将其装在进虚拟机并实例化(单例)。执行阶段是指调用Servlet的init()、service方法、destroy()。特别需要补充说明的是,如果被请求的jsp源文件内
12、容发生变化,那么要重新将jsp翻译成Servlet,再编译、装载和实例化,最后运行Servlet。如果第二次请求jsp时,此时若被请求的jsp已经有对应的Servlet实例,那么就直接运行该Servlet。JSP中的元素主要由脚本元素,指令元素,动作元素三种。脚本元素又分为声明(Declaration),表达式(Expression),脚本(Scriptlet)三类。值得注意的是在表达式中着重强调了9中隐含对象,以下是详细说明。page对象:page对象代表JSP页面本身,更准确的说它代表JSP被翻译后的Servlet;pageContext对象:是avax.servlet.jsp.pageC
13、ontext接口,提供了对JSP页面内使用到的所有对象 及名字空间的访问,提供了几种对页面属性的访问,允许向其他应用组件转发;request对象:request对象是HttpServletRequest接口的实现类,封装了客户的请求信息,request的生命周期由JSP容器控制,当接收到一个客户端请求,JSP容器创建并封装request对象,当请求处理完毕,request对象被销毁;session:处理客户端与服务端的会话,从客户端连接到服务端开始,session对象用来保存每个用户的信息,以便跟踪每个用户的操作状态,其中,session信息保存在容器里,session的ID保存在客户机的Co
14、okie中,用户首次登陆系统时容器会给用户分配一个唯一的session id标识,用于区别其他的用户;application对象:保存Web应用程序中共有的数据,可存放全局变量服务器启动后自动创建application对象,该对象一直有效,直到服务器关闭。用户对该对象属性的操作将影响到其他用户;config对象:config对象是JSP页面通过JSP容器进行初始化时被传递的对象,封装了JSP配置参数的信息。可读取web.xml中配置的初始化参数;out对象: out对象用来向客户端输出内容,并管理服务器上输出缓冲区。out对象被封装成javax.servlet.jsp.JspWriter接口。
15、可以使用page指令来改变缓冲区大小;exception:exception对象实现了java.lang.Throwable接口,用来处理JSP在执行时发生的错误和异常.exception对象需要在page指令中isErrorPage属性设为true。值得一提的是表达式翻译进Servlet后变成了out.print(expression),该代码处于_jspService()方法中。并且在此过程中expression都一律被转换成字符串后再写到输出流out(JspWriter)中。另外,expression中不能有分号(;)。在指令元素中,主要有page指令(作用是利用page指令中的属性可以
16、和容器进行通信,这些属性的设置对整个JSP都有影响),include指令(作用是在一个页面中导入另一个页面的内容),taglib指令(作用是指定在JSP中要使用的标签描述文件(*.tld)的路径)。2.3 JavaBean相关知识作为一个动态网站6开发语言,JSP在现代编程中已经越来越受大家的青睐。而JSP + JavaBean更加成为了一个完美的组合,并且这个组合已经发展成为了一种广泛使用的JSP程序的标准。JavaBean是Java中的可重用组件,是一种普通的Java类,它实现了Serializable接口,它拥有无参构造器,它有相应的属性,并且相应属性有对应public的setter和g
17、etter。JavaBean按照位置分为:可视化JavaBean,它位于客户端,如在Swing中处理事件的JavaBean;不可视化JavaBean,位于服务端,用于封装数据信息,业务,数据。为什么使用javaBean呢?javaBean作为一个可重用的组件,可以用来封装数据信息,业务,数据访问,事物控制逻辑的代码。也可以用来封装JSP中的一些脚本,便于重用,可以减少jsp中脚本的使用。2.4 JDBC相关知识JDBC使我们用Java语言编写的软件具备和数据库交互的能力7,简而言之就是一种连接数据库的Java语言。JDBC和ODBC相比有以下几个有点:没有指针;没有ODBC复杂;是纯Java语
18、言。同时这也是JDBC深受大众喜爱的原因。JDBC涉及到了JDBC的API,API能以一致的形式访问不同类型的关系型数据库,并且API本身就是Java语言的组成内容。API包括一系列的接口:由Sun公司制定,由数据库软件程序员使用。还包括接口实现类:由数据库厂商实现。JDBC驱动程序是由Sun公司所制定的JDBC接口实现类的集合,由数据库厂商提供,不同数据库其JDBC驱动程序是不同的。JDBC驱动程序由以下四种类型实现:(1)JDBC-ODBC桥: 将对数据库的调用转嫁为对ODBC的调用,需要在Java程序所在的机器安装ODBC驱动管理器,效率差,不能跨平台; (2)JDBC程序由二部分组成,
19、一部分用Java编写,一部分是其它语言编写的二进制代码。(3)纯Java, 将对数据库的调用转嫁为中间服务器的调用8;(4)纯Java,直接和数据库进行交互。对相关代码进行了优化,性能最高。JDBC的具体使用如下:(1)注册Driver - oracle.jdbc.driver.OracleDriver方式一:Class.forName(oracle.jdbc.driver.OracleDriver);方式二:Driver driver = new DriverImpl(); DriverManager.registerDriver(driver);方式三:-Djdbc.drivers=ora
20、cle.jdbc.driver.OracleDriver(2)获得Connection方式一:Connection conn = DriverManager.getConnection( url,user,password);方式二:Driver driver = new DriverImpl(); Connection conn = driver.connect(url,pro);(3)创建StatementStatement stmt = conn.createStatement();PreparedStatement pstmt =conn.prepareStatement(sql);(
21、4). 执行SQL语句/实现和数据库交互,传输SQL语句到数据库并执行SQLResultSet rs = stmt.executeQuery(sql);int i = stmt.executeUpdate(sql);boolean flag = stmt.execute(sql);/实现和数据库交互,传输参数值到数据库并执行SQLpstmt.setInt(1,100);pstmt.setString(2,zs);pstmt.setDate(3,Date.valueOf(1979-9-1);ResultSet rs = pstmt.executeQuery();int i = pstmt.exe
22、cuteUpdate();boolean flag = pstmt.execute();(5)处理结果集a) 使用结果集(ResultSet)对象的访问方法获取数据; a. next():下一个记录 b. first():第一个记录 c. last():最后一个记录 d. previous():上一个记录b) 通过字段名或索引取得数据c) 结果集保持了一个指向了当前行的指针,初始化位置为第一个记录前。(6)关闭对象、释放资源,一般推荐先构建的后释放一般在finally里定义; a) 首先关闭记录集; b) 其次关闭声明; c) 最后关闭连接对象。3 系统开发工具介绍3.1 MyEclipseM
23、yEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器9的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, H
24、ibernate10。本项目的开发与运行就是运用了MyEclipse。3.2 MySql相关本系统主要运用了Mysql数据库。Mysql是关系数据库管理系统(DBMS),它最初是Sybase和Ashton-Tate公司共同开发的,并于1988年推出了第一个OS/2版本。 Mysql近年来不断更新版本,1996年,推出了Mysql 6.5版本;1998年,Mysql 7.011版本和用户见面;MYSQL是于2005年推出的版本。 Mysql 特点:(1)真正的读者机/服务器体系结构。 (2)图形化用户界面,使系统管理和数据库管理更加直观、简单。 (3)丰富的编程接口工具,为用户进行程序设计提供了
25、更大的选择余地。 (4)Mysql与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。Mysql也可以很好地与Microsoft BackOffice12产品集成。 (5)具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。 (6)对Web技术的支持13,使用户能够很容易地将数据库中的数据发布到Web页面上。 3.3 容器容器是Web Server中的其中一个组成部分,它的主要工作就是管理部署在Web Server上的web应用的运行(装载和卸载web应用)以及这些web应用中的w
26、eb组件(servelt,jsp等)的生命周期。本系统页面采用JSP,所以对应的容器采用Apache Tomcat6.0,在Tomcat中容器的名字叫Catalina。既然是JSP/Servlet,那么它当然是不能直接运行的,必须把它放到某种运行环境中,它才能发挥它的作用。这个环境就是我们所说的容器。容器也是Java程序,它主要功能除了为Servlet提供环境。客户端想服务器发送数据,遵循的是HTTP协议的数据格式。在客户端和服务器端,可能存在这不同的编程语言编写的程序,比如java,C+的等等。各种语言都有自己用于处理HTTP协议数据的方法(类),为了使用java提供的各种HTTP处理相关的
27、类,必须将HTTP协议下的数据做一定的转换,转换成一些java object,这样才能使用java的方法进行数据处理14。同理,当这些处理完成,又需要将这些java object转换回HTTP协议下的数据,反馈给客户端(JSP/Servlet当然存在于服务器端)。JSP/Servlet容器就扮演了完成这个双向转换的角色。3.4 Tomcat相关Tomcat15是Apache的一个开源的项目。Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP
28、)的支持,并且提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat等。由于Tomcat本身也内含一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache Web服务器混淆,Apache Web Server是一个用C语言实现的HTTP web server;这两个HTTP web server 不是捆绑在一起的。Apache Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。4 系统总体设计4.1 系统功能设计4.1.1 总体功能设计如图4.1为系统整体功能结构图: 用户注册 用户
29、登录 浏览影院信息 浏览影片信息 加入收藏 修改用户信息 订 座 购 票 发表影评电影订票网站用户功能子系统电影订票网站用户功能子系统图4.1 电影订票系统用户功能子系统功能图如图4.2为系统流程图用户注册修改基本信息修改头像修改密码用户登录浏览影院信息浏览影片信息关键字查询影院关键字查询影片购票订座修改信息发表影评添加收藏开 始用 户非用户开始非用户用户图4.2 电影订票系统用户功能子系统数据流图如图4.3为系统E-R图图4.3 电影订票系统用户功能子系统E-R图4.1.2 处理流程设计(1)数据增加流程添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判
30、断,合法则写入保存至数据库,不合法重输。如图4.4所示。开始自动生成编号输入数据是否合法写入数据库结束图4.4 数据增加流程图(2)数据修改流程在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如图4.5所示。开始选择需要修改记录输入数据是否合法写入数据库结束图4.5 数据修改流程图(3)数据删除流程当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图4.6所示。开始选择需要删除记录是否删除更新数据库图4.6 数据删除流程图4.2 数据库设计4.2.1 数据表需求分析用户表:用
31、于存放用户的一些信息。此表中设计12个字段。影院表:用于存放影院的一些基本信息。此表中设计6个字段。影片表:用于存放正在热映的影片的信息。此表中设计9个字段。订单表:用于存放用户已生成的订单的信息。此表中设计8个字段。影评表:用于存放用户所发表的影评的详细信息。此表中设计5个字段。收藏表:用于存放用户收藏的影片。此表中设计3个字段。5 详细设计5.1 数据库详细设计5.1.1 数据表具体设计1.用户表:用于保存用户的注册信息。此表共有12个字段,“name”是主键,id是唯一约束。表5.1 用户表(users)名称字段名称数据类型长度非空(1可空)用户idIdint40用户名Namevarch
32、ar501用户密码Pwsvarchar501真实姓名Truenamevarchar501用户性别Sexvarchar501身份证号Idcardvarchar501联系电话Phonevarchar501联系地址Addressvarchar501邮政编码Postalcodevarchar501电子邮件Emailvarchar501头像Portraitvarchar501身份Statusvarchar5012.影院表:用于存放影院的一些基本信息。此表共有6个字段,“name”是主键,id是唯一约束。表5.2 影院表(cinema)名称名称字段名称数据类型长度非空(1可空)影院idIdint40影院名
33、称Namevarchar500影院地址Addressvarchar501电话Phonevarchar501影院介绍Introducetext1影院图片地址Pathvarchar10013. 影片表:用于存放正在热映的影片的信息。此表共有9个字段,“name”是主键,id是唯一约束。表5.3 影片表(movie)名称名称字段名称数据类型长度非空(1可空)影片idIdint40影片名称Namevarchar1000导演Directorvarchar1000主演Protagonistvarchar10001片长Filmlengthvarchar501简介Pathvarchar1001上映时期Beon
34、datetime1下映时期Downondatetime1影片图片地址Pathvarchar10014.订单表:用于存放用户已生成的订单的信息。此表共有8个字段, id是唯一约束。表5.4 订单表(orders)名称名称字段名称数据类型长度非空(1可空)订单idIdint40用户idUsersint41影厅Hallint41播放Playsint41座位Seatint41价格Priceint41日期Datesdatetime1订单类型Typevarchar5015.影评表:用于存放用户所发表的影评的详细信息。此表共有5个字段, id是唯一约束。表5.5 影评表(review)名称名称字段名称数据类
35、型长度非空(1可空)影评idIdint40用户idUsersint41影片idMovieint41影评内容Contenttext1日期Datesdatetime16.收藏表:用于存放用户收藏的影片。此表共有3个字段,“(users,movie)”是主键,id是唯一约束。表5.6 收藏表(collection)名称名称字段名称数据类型长度非空(1可空)影评idIdint40用户idUsersint40影片idMovieint405.2 系统主界面模块设计用户进入后第一眼看到的就是网站的首页。首先是一张大图片,通过图片上的按钮可以进行浏览,初步了解最近正在热映的影片。图片上有用户注册、登录两个按钮
36、。图片的下面,是首页的正文部分,有对影院影片的简单介绍。当用户未进行登录时,可以对影院、影片进行浏览。图5.7 网站首页首页的实现代码如下:影院、影片基本信息的浏览: 设为首页:function SetHome(obj)var url=window.location.href;tryobj.style.behavior=url(#default#homepage);obj.setHomePage(url);catch(e) if(scape) try netscape.security.PrivilegeManager.enablePrivilege(UniversalXPConnect);c
37、atch (e) alert(此操作被浏览器拒绝!n请在浏览器地址栏输入“about:config”并回车n然后将 signed.applets.codebase_principal_support的值设置为true,双击即可。);var prefs = Components.classesmozilla.org/preferences-service;1.getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref(browser.startup.homepage,url);添加到收藏夹function AddFavori
38、te()var url=window.location.href;trywindow.external.addFavorite(url, *);catch(e)trywindow.sidebar.addPanel(*, url, );catch(e)alert(加入收藏失败,请使用Ctrl+D进行添加);在首页的设计中,还实现了图片自动切换的效果。代码如下:$(function()var oPic=$(#slider_pic).find(ul);var oImg=oPic.find(li);var oLen=oImg.length;var oLi=oImg.width();var prev=$
39、(#prev);var next=$(#next);oPic.width(oLen*970);var iNow=0;var iTimer=null;prev.click(function()if(iNow0)iNow-;ClickScroll();)next.click(function()if(iNowoLen-1)iNow+ClickScroll();)function ClickScroll()iNow=0? prev.addClass(no_click): prev.removeClass(no_click);iNow=oLen-1?next.addClass(no_click):ne
40、xt.removeClass(no_click);oPic.animate(left:-iNow*970)5.3 用户注册模块设计要想在网站上进行订票、选座、发表评论、将影片加入收藏等操作时用户必须要有自己的ID号,这就是注册。注册时,用脚本语言进行信息的控制。用户名、密码、真实姓名、性别、身份证号为非空,电话号码、邮政编码必须为全数字的,电子邮箱地址必须是有效的。当用户填写信息完毕时,可通过点击“注册”按钮完成注册。当用户对自己填写的信息不满意或有错误时,可通过“重置”按钮进行信息的重新填写。图5.8 用户注册具体实现代码如下:if(type != null & type.equals(re
41、g)String args = name,pwd,truename,sex,idcard,phone,address,postalcode,email;String row = ;String val = ;for(int i = 0;i args.length;i+) if(i = args.length-1)row += argsi;val += +request.getParameter(argsi)+;elserow += argsi+,;val += + request.getParameter(argsi)+,; String sql = insert into users(+ro
42、w+) values(+val+); responseText = ib.insertANDupdateANDdel(sql);5.4 用户登录模块设计用户注册完成后,通过用户名、密码进行登录。登录成功后进行选座、购票、评论、订单查看、评论管理、收藏等操作。当用户名密码输错时,可通过“按钮”进行重新输入。图5.9 用户登录具体实现代码如下:String name = request.getParameter(name);String pwd = request.getParameter(pwd);String sql = select * from users where name=+name+ and pwd=+pwd+;String args = id,name,pwd,status;SelectBean sb = new SelectBean();ArrayList al = sb.selectRow(args, sql);String responseText = ;if(al = null | al.size() = 0)responseText = 1;elseHttpSession session = requ