配色: 字号:
jsp电影评论网站ssh论文
2024-05-01 | 阅:  转:  |  分享 
  
摘 要



随着经济的发展,人们的物质生活和精神生活不断提高,在满足了基本的温饱问题之后,人们更多的在精神生活中得到享受,电影,作为大家日常生活中一个娱乐方式越来越多的走近我们。本文研究B/S架构的电影评论网站的设计与实现过程,从需求分析、网站设计到具体实现都遵循了网站开发的思想和数据库的设计方法。网站的设计与开发使用myeclipse开发工具,应用sqlserver2005管理数据库。采用MVC模式开发。文章详细介绍了一个电影评论网站的分析、设计和开发全过程,分析并实现了电影评论的基本功能。



关键词 B/S MVC模式



Abstract



With the development of economy, people''s material life and spiritual life continues to improve, after meeting the basic problems of food and clothing, more and more people in the spiritual life to enjoy, movie, as a form of entertainment to people daily life more and more of us. There are a lot of people choose to watch movies at home, there are a lot of people in the pursuit of the atmosphere, the pursuit of visual enjoyment to choose to go to the cinema. Watching movies at home, you only need to find the source to watch, and going to the cinema, you need to know what movie theater show, but also need to line up to buy tickets. For the convenience of the public entertainment, let everybody understand cinema playlist, avoid buying movie tickets when people suffer from queuing, the process of design and implementation of online movie ticket booking website based on B/S architecture, from the demand analysis, website design and the realization method follow the development of the site and database the. The design and development of the website using the MyEclipse development tools, using SQLServer2005 database management. Using MVC model development. The article introduces a movie ticket booking process analysis, design and development of the website, the analysis and the realization of the basic functions of movie tickets.



Key words B/S MVC pattern  The movie ticket booking website



















目录

摘 要 I

Abstract II

1.1 课题背景 1

1.2 目的和意义 1

1.3 系统设计思想 2

1.3.1 用户需求 2

1.3.2 功能性需求 3

1.3.3 非功能性需求 4

1.4 系统开发环境 4

1.4.1 B/S结构的数据库访问模式 4

1.4.2 MyEclipse简介 5

1.4.3 SQL Server 2005数据库简介 5

1.4.4 SSH简介 6

第2章 可行性分析 9

2.1 经济可行性 9

2.2 技术可行性 9

2.3 运行可行性 9

2.5 时间可行性 10

2.6 法律可行性 10

2.7 业务流程图 10

2.8 本章小结 12

第3章 需求分析 13

3.1 系统规划 13

3.2 系统需求分析 13

3.2.1 功能模块分析 14

3.3 本章小结 20

第4章 总体设计 21

4.1 系统模块总体设计 21

4.2 数据库设计 22

4.2.1 数据库设计概述 22

4.2.2 数据分析 22

4.3数据库详细设计 23

4.3.1 数据库的E-R图的设计 23

4.3.2 数据表的设计 24

4.4 本章小结 27

第5章 详细设计 28

5.1 系统运行平台设置 28

5.2 网站首页界面设计 28

5.3 登录详细设计 29

5.4 后台管理详细设计与实现 32

5.4.1 影片添加实现 32

5.4.2 影片列表展示 37

5.5 前台详细设计与实现 39

5.5.1 注册页面详细设计与实现 39

5.6 本章小结 43

第6章 软件测试 44

6.1 测试的基本概念 44

6.2 测试的任务和目的 44

6.2.1 测试的任务 44

6.2.2 测试的目的 45

6.3 系统整体测试步骤 45

6.4 本系统测试 45

6.4.1 用户注册测试 46

6.4.2 添加影片测试 47

6.4.3 删除影片测试 47

6.5 本章小结 48

结 论 49

致 谢 50

参考文献 51

附录1 53

附录2 54







第1章 绪论

1.1 课题背景

互联网以前所未有的速度发展,成为与报纸、广播、电视相比肩的第四媒体,同时正以其便捷的信息传输形式改变着人们的消费模式,利用简单、快捷、低成本的电子通信方式,买卖双方不谋面就可以进行各种商贸活动,走向商业的互联网已经成为网络经济的大势所趋。1996年前后,在美国学术界提出“电子商务”(E-Buiness或E-Commerce)的概念。短短几年时间内这一概念被广泛接受。根据买方卖方的不同,电子商务市场可划分为4种类型:B2B(Business to Business)、C2C(Consumer to Consumer)C2B(Consumer to Business) 以及 B2C(Business to Consumer)几种模式,目前占据主流的是 B2B 和 B2C 两种。B2B 主要面向企业,这种平台对性能、安全和服务要求比较高;B2C 直接面向终端的大众消费者。JAVA、ASP语言)共同制作而成。本文也将结合现实需要,设计出一个基于JSP语言、SQLSERVER2005数据库管理系统的在线电影评论网站。B/S结构,前台开发工具为MyEclipse8.0、Dreamweaver,MPowerDesigner,软件要求:操作系统为WindowsXP或更高,浏览器为Internet Explorer 5.01或更高版本,硬件要求:一台具备Microsoft Windows XP系统计算机,处理器为Pentium IV以上,内存为512M以上,硬盘空间为80G以上或更高。

1.4.1 B/S结构的数据库访问模式

B/S结构是真正的三层结构,它以访问Web数据库为中心,HTTP为传输协议,客户端通过浏览器(Browser))MyEclipse企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate在结构上,MyEclipse的特征可以被分为7类:

模型WEB开发工具3.EJB开发工具4.应用程序服务器的连接器5.J2EE项目部署服务6.数据库服务7.MyEclipse整合帮助SQL Server 2005 和以往的数据解决方案相比,它包含非常丰富的新特性:通过提供一个更安全、可靠和高效的数据管理平台,增强企业组织中用户的管理能力,大幅提升IT管理效率并降低运维风险和成本来;通过提供先进的商业智能平台满足众多客户对业务的实时统计分析、监控预测等多种复杂管理需求,推动企业管理信息化建设和业务发展;同时,SQL Server 2005将提供一个极具扩展性和灵活性的开发平台,不断拓展您的应用空间,实现Internet数据业务互联。

SQL Server 2005将提供全新的安全认证、数据加密技术来加强您数据系统的安全性;数据库镜像、快照、时点恢复、实时在线管理等诸多功能大大提高了企业级系统的可靠性、扩展性;而数据集成,各种自动化管理、调试和优化工具SQL Server 2005使您可以快速构建部署各类商业智能解决方案,为你提供深入的业务分析统计和监控预测平台,进一步推动企业的信息化管理和业务发展。

一、Struts2?

??1、Struts是采用Java?Servlet/JavaServer?Pages技术,开发Web应用程序的??

????开放源码、且可扩展的J2EE?web框架;?

??2、从某种程度上来讲,Struts2没有继承Struts?1的血统,而是继承WebWork的血统,但却?????????????????????是却吸收了Struts?1和WebWork两者的优势;?

??3、Struts?2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得???????业务逻辑控制器能够与Servlet?API完全脱离开???4、Struts2框架的大概处理流程如下:??????(1)?加载类(FilterDispatcher)?

????(2)?读取配置(struts配置文件中的Action)?????(3)?派发请求(客户端发送请求)?

????(4)?调用Action(FilterDispatcher从struts配置文件?读取与之相对应的Action?)???????(5)?启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)??????(6)?处理业务(回调Action的execute()方法)??

????(7)?返回响应(通过execute方法将信息返回到FilterDispatcher)??

????(8)??查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROR,将跳转到哪个jsp页面)??

????(9)???响应用户(jsp--->客户浏览器端显示)??

????(10)??struts2标签库(相比struts1的标签库,struts2是大大加强了,对数据的操作功能很强大)???????

二、Hibernate?

???1、Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对?

象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库??

2、Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration.这5个核心接口在任何开发中都会用到?,通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制



三、Spring?

???1、Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架??

2、轻量——从大小与开销两方面而言Spring都是轻量的??

3、控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合?

4、面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发??

5、容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的??

6、框架——Spring可以将简单的组件配置、组合成为复杂的应用??7、Spring?特点如下????方便解耦,简化开发??

?????通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合??

??AOP编程的支持??

?????通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。??

声明式事务的支持??

????在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量??

方便程序的测试??

???可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。?

方便集成各种优秀框架??

?Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。??

降低Java?EE?API的使用难度??

?Spring对很多难用的Java?EE?API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java?EE?API的使用难度大为降低。

第2章 可行性分析

该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行等方面进行分析。

2.1 经济可行性

开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。用的是开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。本系统的开发,是典型的Mis开发。采用,已无技术上的问题。运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。业务流程分析则是在业务功能的基础上将其细化利用系统调查的资料将业务处理过程中的每一个步骤用一个完整的图形将其串起来在绘制业务流程图的过程中发现问题分析不足优化业务处理过程所以说绘制业务流程图是分析业务流程的重要步骤2-1所示。

2.普通用户评论业务流程

普通用户注册,然后浏览影片信息,进行评论。



管理人员管理业务流程图,如图2-1所示:







图2-2-2所示。



图2-2普通用户评论业务流程图

2.8 本章小结

本章主要介绍了系统的核心模块的业务流程,并给出相应的业务流程图做以说明。并且分别从经济可行性、技术可行性运行可行性对系统的可行性进行了分析数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体的说,数据库设计是一个给定的应用环境,构造最优的用户的应用需求(信息要求和处理要求)。这个问题是我们在进行软件开发时期的主要研究方向。数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体的说,数据库设计是一个给定的应用环境,构造最优的用户的应用需求(信息要求和处理要求)。这个问题是我们在进行软件开发时期的主要研究方向。

数据分析过程同数据库的逻辑结构和物理结构密切相关,需要确定、编制、组织、筛选应用程序所使用的信息。它以一种能够分析和分类的方式来捕获用户的所有信息,这使得某一模型可以直接转化成数据库结构。

我们使用一种信息建模技术,这种技术是通过实体、关系、属性三种基本对象来定义信息。实体是需要维护和使用的相关特性的集合体;属性是实体的特性或特征;关系是实体之间的联系,关系为实体记录(实例)之间的联系和交互作用方式建立了模型。

在的设计中,数据库设计非常重要。如果设计不当,查询起来就非常吃力,程序的性能也会受到影响。在设计数据库前应对现有类似系统的数据库进行仔细研究,找出它的不足以完善自己所设计的数据库。

在设计前,应考虑以下事项: 定义标准的对象命名规范。

工欲善其事,必先利其器。选择理想的数据库设计工具。

对数据完整性的保护。

数据库和用户权限的安全要求。

了解你的业务。根据业务需要创建数据表。

创建数据字典和 ER 图表。

数据库维护。

E-R方法是一种用来在数据库设计过程中表示数据库系统结构的方法,该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。在E-R图中,包含了实体(即数据对象)、关系和属性等3种基本成份。实体是需要维护和使用的相关特性的集合体;属性是实体的特性或特征;关系是实体之间的联系。通过对以上系统业务流程图图的分析,确定系统全局E-R图数据库设计是对保存网站数据的数据库结构进行设计,对整个网站的开发具有非常重要的作用。

本系统的数据库命名为:db_dingpiaodb_dingpiao数据库中有7张信息表如。T_admin如表4-1所示。

表4-T_admin(表)

序号 英文名 中文名 类型 长度(字符) 1 userId 编号 2 userName 用户名 Varchar 16 3 userPw 密码 Varchar 20 t_catelog如表4-2所示。

表4-2t_catelog(表)序号 英文名 中文名 类型 长度(字符) 1 catelog_id Varchar 20 2 catelog_name 名称 Varchar 20 3 catelog_miaoshu 描述 Varchar 160 4 catelog_del 状态 Varchar 2 t_goods如表4-3所示。

表4-t_goods()序号 英文名 中文名 类型 长度(字符) 1 goods_id Numeric 18, 0 2 goods_fangyingshi 放映室 Varchar 20 3 goods_catelog_id 类别编号 Int 20 4 goods_name 名称 Varchar 20 5 goods_miaoshu 描述 Varchar 20 6 goods_pic 图片 Varchar 20 7 goods_shichangjia 市场价 Int 20 8 goods_tejia 特价 Int 20 9 goods_isnottejia 不是特价 Varchar 20 10 goods_isnottuijian 是否推荐 Varchar 20 11 goods_kucun 库存 Int 20 12 goods_Del 状态 Varchar 20











t_liuyan如表4-4所示。

表4-t_liuyan(表)序号 英文名 中文名 类型 长度(字符) 1 liuyan_id Int 20 2 liuyan_title 标题 Varchar 20 2 liuyan_content 内容 Varchar 20 2 liuyan_date 时间 Varchar 20 2 liuyan_user 留言者 Varchar 20 t_user如表4-7所示。

表4-t_user(表)序号 英文名 中文名 类型 长度(字符) 1 user_id 号 2 user_name 用户名 Varchar 20 3 user_pw 密码 Varchar 20 4 user_realname 真实姓名 Varchar 20 5 user_sex 性别 Varchar 20 6 user_address 地址 Varchar 20 7 user_tel 电话 Varchar 20 8 user_del 状态 Varchar 20 4.4 本章小结

例如总体设计阶段,在需求分析的基础之上规划出了系统的功能模块,以及在此分析基础上设计出的具体的、可以满足本系统全部需求的数据库。利用E-R图分析了数据库表之间的关系。1.硬件环境:如表5-1所示。

表5-运行环境硬件配置

硬件 配置 2.软件环境:Windows XP 操作系统。图5-界面。登录界面如图5-2所示。图5-登录界面

登录程序流程描述

当输入用户名和密码后首先要进行身份验证,如果用户名存在,则成功登录,反之,如果用户名不存在,提示错误信息登录失败,返回登录界面重新输入用户名和密码。登录的程序流程图如图5-3所示。



























图5-登录程序流程图







图5-public class catelogAction extends ActionSupport

{

private int catelogId;

private String catelogName;

private String catelogMiaoshu;



private String message;

private String path;



private TCatelogDAO catelogDAO;

private TGoodsDAO goodsDAO;





public String catelogMana()

{

String sql="from TCatelog where catelogDel=''no''";

List cateLogList=catelogDAO.getHibernateTemplate().find(sql);

Map request=(Map)ServletActionContext.getContext().get("request");

request.put("cateLogList", cateLogList);

return ActionSupport.SUCCESS;

}

public String catelogAll()

{

String sql="from TCatelog where catelogDel=''no''";

List cateLogList=catelogDAO.getHibernateTemplate().find(sql);

Map request=(Map)ServletActionContext.getContext().get("request");

request.put("cateLogList", cateLogList);

return ActionSupport.SUCCESS;

}



public String catelogAdd()

{

TCatelog catelog=new TCatelog();

catelog.setCatelogName(catelogName);

catelog.setCatelogMiaoshu(catelogMiaoshu);

catelog.setCatelogDel("no");

catelogDAO.save(catelog);

this.setMessage("操作成功");

this.setPath("catelogMana.action");

return "succeed";

}



public String catelogDel()

{

String sql="from TGoods where goodsDel=''no'' and goodsCatelogId="+catelogId;

List goodsList=goodsDAO.getHibernateTemplate().find(sql);

if(goodsList.size()>0)

{

this.setMessage("请先删除此类别下的商品");

this.setPath("catelogMana.action");

}

else

{

TCatelog catelog=catelogDAO.findById(catelogId);

catelog.setCatelogDel("yes");

catelogDAO.attachDirty(catelog);

this.setMessage("操作成功");

this.setPath("catelogMana.action");

}

return "succeed";

}

5.4.3 评论信息管理

1、 管理员点击左侧的菜单“留言信息管理”,页面跳转到聊天室管理界面,调用后台的订单Action类查询出所有的留言信息

2.、程序效果图如图5-6所示:



图5-public class liuyanAction extends ActionSupport

{

private int liuyanId;

private String liuyanTitle;

private String liuyanContent;



private TLiuyanDAO liuyanDAO;

private String message;

private String path;

public String liuyanMana()

{

List liuyanList=liuyanDAO.findAll();

Map request=(Map)ServletActionContext.getContext().get("request");

request.put("liuyanList", liuyanList);

return ActionSupport.SUCCESS;

}



public String liuyanAdd()

{

TLiuyan liuyan=new TLiuyan();

liuyan.setLiuyanContent(liuyanContent);

liuyan.setLiuyanTitle(liuyanTitle);

liuyan.setLiuyanDate(new Date().toLocaleString());

Map session=ActionContext.getContext().getSession();



if(session.get("user")!=null)

{

TUser user=(TUser)session.get("user");

liuyan.setLiuyanUser(user.getUserName());

}

liuyanDAO.save(liuyan);

this.setMessage("留言成功");

this.setPath("liuyanAll.action");

return "succeed";

} public String liuyanDel()

{

TLiuyan liuyan=liuyanDAO.findById(liuyanId);

liuyanDAO.delete(liuyan);

this.setMessage("留言删除成功");

this.setPath("liuyanMana.action");

return "succeed";List userList=userDAO.findAll();

Map request=(Map)ServletActionContext.getContext().get("request");

request.put("userList", userList);

return ActionSupport.SUCCESS;



public List findAll()

{

log.debug("finding all TUser instances");

try

{

String queryString = "from TUser where userDel=''no''";

return getHibernateTemplate().find(queryString);

} catch (RuntimeException re)

{

log.error("find all failed", re);

throw re;

}

}

5.4.5 电影信息管理

1、管理员点击左侧的菜单“电影管理”,页面跳转到电影管理界面,调用后台的action类查询所有电影信息。

2、程序效果图如下图5-8



图5-8 电影信息管理

3、关键代码

public class goodsAction extends ActionSupport

{

private Integer goodsId;

private String goodsFangyingshi;

private String goodsName;

private String goodsMiaoshu;



private String goodsPic;

private Integer goodsShichangjia;

private Integer goodsTejia;

private String goodsIsnottejia;



private String goodsIsnottuijian;

private Integer goodsCatelogId;

private int goodsKucun;

private String goodsDel;



private String message;

private String path;



private TGoodsDAO goodsDAO;



public String goodsAddNotejia()

{

TGoods goods=new TGoods();



goods.setGoodsFangyingshi(goodsFangyingshi);

goods.setGoodsCatelogId(goodsCatelogId);

goods.setGoodsName(goodsName);

goods.setGoodsMiaoshu(goodsMiaoshu);



goods.setGoodsPic(goodsPic);

goods.setGoodsShichangjia(goodsShichangjia);

goods.setGoodsTejia(goodsShichangjia);

goods.setGoodsIsnottejia("no");



goods.setGoodsIsnottuijian("no");

goods.setGoodsKucun(goodsKucun);

goods.setGoodsDel("no");



goodsDAO.save(goods);

this.setMessage("操作成功");

this.setPath("goodsManaNotejia.action");

return "succeed";



}





public String goodsManaNotejia()

{

String sql="from TGoods where goodsDel=''no'' and goodsIsnottejia=''no'' order by goodsFangyingshi desc";

List goodsList=goodsDAO.getHibernateTemplate().find(sql);



Map request=(Map)ServletActionContext.getContext().get("request");

request.put("goodsList", goodsList);

return ActionSupport.SUCCESS;

}



public String goodsDelNotejia()

{

TGoods goods=goodsDAO.findById(goodsId);

goods.setGoodsDel("yes");

goodsDAO.attachDirty(goods);

this.setMessage("操作成功");

this.setPath("goodsManaNotejia.action");

return "succeed";

}









public String goodsDetailHou()

{

Map request=(Map)ServletActionContext.getContext().get("request");



TGoods goods=goodsDAO.findById(goodsId);

request.put("goods", goods);

return ActionSupport.SUCCESS;

}

5.4.6 修改个人密码

1、输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。

2、程序效果图如图5-9



图5-9修改密码

3、关键代码

TUser user=userDAO.findById(userId);



user.setUserName(userName);

user.setUserPw(userPw);



user.setUserRealname(userRealname);

user.setUserSex(userSex);

user.setUserAddress(userAddress);

user.setUserTel(userTel);



user.setUserDel("no");



userDAO.attachDirty(user);



HttpServletRequest request=ServletActionContext.getRequest();

request.setAttribute("msg", "修改成功,重新登录后生效");

return "msg";

5.5 前台详细设计与实现

包括用户所看的网页信息,用户对网站的一些操作,注册,登入,留言,评论等。

5.5.1 用户注册页面模块

1、对于游客,至于浏览的功能,如果想进一步使用本系统,比如说预订影片、在线下订单等,首先需要注册一个合法的账号,然后登陆后,方能使用,点击导航栏菜单“免费注册”,调用js的open()方法,弹出注册页面,输入相关正确信息后点击注册按钮即可完成注册,如果是没有输入完整的信息,或都会给出相应的错误提示,不能录入成功。

2、程序效果图如图5-10所示:



图5-TUser user=new TUser();



user.setUserName(userName);

user.setUserPw(userPw);



user.setUserRealname(userRealname);

user.setUserSex(userSex);

user.setUserAddress(userAddress);

user.setUserTel(userTel);



user.setUserDel("no");



userDAO.save(user);





HttpServletRequest request=ServletActionContext.getRequest();

request.setAttribute("msg", "注册成功,请登录");

return "msg";

5.5.2 电影信息查询

1、用户点击导航栏的“电影信息查询”。调用后台的java类goodsAction根据电影名字查询所有的电影信息,并绑定这些信息到request对象中,在显示层jsp展示出来,然后用户点击电影名称,即可显示该电影的详细的信息。

2、程序效果图如图5-11所示:



图5-11电影信息查询

3、关键代码

Map request=(Map)ServletActionContext.getContext().get("request");



String sql="from TGoods where goodsDel=''no'' and goodsIsnottejia=''no'' and goodsFangyingshi>? order by goodsFangyingshi";

Object[] c={new SimpleDateFormat("yyyy-MM-dd").format(new Date())};

List goodsList=goodsDAO.getHibernateTemplate().find(sql,c);

request.put("goodsList", goodsList);

return ActionSupport.SUCCESS;

5.7 本章小结

本章除了介绍了开发本系统所采用的开发工具和数据库外,还介绍了本系统的主要功能模块的实现目的和实现过程,并给出了一些主要代码实现。

第6章 软件测试

经过需求分析、设计和编码等阶段的开发后,得到了源程序,开始进入到软件测试阶段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程。在测试之前的各阶段中都可能在软件产品中遗留下许多错误和缺陷,如果不及时找出这些错误和缺陷,并将其改正,这个软件产品就不能正常使用,甚至会导致巨大的损失。目前,程序的正确性证明尚未得到根本的解决,因此软件测试仍是发现软件中错误和缺陷的主要手段。

测试是一项很艰苦的工作,其工作量约占软件开发总工作量的40%以上,特别对一些关系到人的生命安全的软件。

软件测试是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。软件测试的目的是为了尽可能多的发现程序中的问题之后解决问题明确测试的目的是一件非常重要的事,因为在现实世界中对测试工作存在着许多模糊或者错误的看法,这些看法严重影响着测试工作的顺利进行。

测试方法分为白盒测试和黑盒测试两种。

白盒测试是从开发人员的角度进行测试,把程序看成装在一只透明的白盒子里,测试者完全了解程序的结构和处理过程。它根据程序的内部逻辑来设计测试,检查程序中的逻辑通路是否都按预定的要求正确地工作。

黑盒测试是从用户的角度进行测试,把程序看成一只黑盒子,测试者完全不了解(或不考虑)程序的结构和处理过程。它根据规格说明书规定的功能来设计测试用例,检查程序的功能是否符合规格说明的要求。

软件测试的目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。

在软件投入生产性运行之前,尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。软件测试是保证软件软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。软件测试的结果也是分析软件可靠性的重要依据。测试的目的是为了发现程序中的错误而执行程序的过程。

好测试方案是极有可能发现迄今为止尚未发现的错误的测试方案。功的测试方案是发现了到今为止尚未发现的错误的测试认测试软件测试的主要步骤有单元测试、集成测试、确认测试和系统测试。

1单元测试(Unit Testing)

单元测试也称模块测试。通常单元测试可放在编码阶段,程序员在编写好一个模块后,总会对自己编写的模块进行测试,检查它是否实现了详细设计说明书中规定的模块功能和算法。单元测试主要发现编码和详细设计中产生的错误,通常采用白盒测试。

2集成测试(Integration Testing)

集成测试也称组装测试,它是对由各模块组装而成的程序进行测试,主要检查模块间的接口和通信。集成测试主要发现设计阶段产生的错误,通常采用黑盒测试。

3确认测试(Validation Testing)

确认测试的任务是进行系统全面的测试,即检查软件的功能、性能及其他特征与用户的需求一致,它是以需求规格说明书(即需求规约)作为依据的测试。确认测试通常采用黑盒测试。

4系统测试(System Testing)

系统测试是更大范围内进行测试,它将经过确认测试的软件作为整个基于计算机的系统的一个元素,在实际运行环境下,对系统进行的一系列集成和确认测试。

根据测试的步骤,在测试的开始阶段本系统选择了白盒测试中的单元测试,因为程序的编写由我一个人完成,程序的流程很清楚,所以根据程序的内部结构和逻辑进行测试,测试程序中各个模块是否按照我的设计完成功能。在该阶段的测试中出现了一些程序上的错误,采用程序中的设置断点和输出语句的方法,进行测试,逐步缩小范围并最终找到问题所在,查找资料解决问题。

单元测试后又进行了集成测试,将各个模块组装起来进行整体的测试,在不考虑内部程序的情况下,程序是否能够完成应有的功能并输出正确数据。

由于本系统的模块较多,测试方法不能一一进行描述,在本节中测试实现方法仅以为例。







图6-效果图图6-效果图如图6-所示。

图6-效果图软件测试是软件开发中的重,在项目管理过程中,强调的是每个过程的每一个环节都要进行测试,保证系统在每个阶段可以控制。。结论

系统分析,查阅了,开发了基于B/S结构的系统进入编程阶段,遇到了的困难。开发积累决各种难题的经验致谢



回忆过去,许许多多的事情浮现在脑海:刚上大学时欢乐心情和兴奋的场景还历历在目。一切都是那么新鲜,那么富有吸引力。有快乐也有艰辛,有收获也有失落。衷心感谢科技大学所有支持帮助过我的老师,谢谢你们多年来的关心和爱护。同窗的友情同样难忘,你们与我共同走过了人生中不平凡的道路,给我留下了值得珍藏的美好记忆。

最后,我要特别感谢指导论文刘松霭,郭轶卓老师。本论文是在他们的悉心指导和热情帮助下完成的,老师认真负责的工作态度,严谨的治学精神和精深的理论水平都使我受益匪浅。他们无论在理论上还是在实践中,都给予我很大的帮助,使我专业技能的应用水平得到很大提高,这对于我以后的工作和学习都有益处。值此论文完成之际,特别向指导老师表示衷心的感谢和崇高的敬意,谢谢他们细心而又耐心地辅导,使得我得以顺利的完成毕业设计开发工作,同时也要感谢其他帮助过我的老师和同学,他们在我成长过程中给予了我很大的帮助,在此一并表示感谢。

由于本人水平有限,加上时间紧促,本文一定有不少缺点和不足,恳请各位老师给予帮助和指正。



参考文献[1] 张孝祥、徐明华. JAVA基础与案例开发详解[M]. 清华大学出版社. 2009.45-46.

[2] 康牧.JSP动态网站开发实用教程[M].清华大学出版社.2009.127-127.

[3] 刘亚宾.精通Eclipse--JAVA技术大系[M].电子工业出版社.2005.167-168.

[4] 于万波.网站开发与应用案例教程[M].清华大学出版社.2009.77-78.

[5] 杨学瑜.高立军,软件开发过程与项目管理[M].电子工业出版社.2008.43-46.

[6] 张洁才.Java web应用开发教程[M].科学出版社.2005.66-68.

[7] 戴维尔.JavaScript程序员教程[M].电子工业出版社.2010.333-334.

[8] 黎连业、王华、李淑春.软件测试与测试技术[M].清华大学出版社.2009.321-322.

[9] 黄梯云.管理信息系统[M].北京:电子工业出版社.2006 .216-217.

[10]James D. McCaffrey等.NET软件测试自动化之道[M]. 北京:电子工业出版社.2007.213-214.

[11]甘仞初.信息系统开发[M].北京:经济科学出版社.2007.144-145.

[12]马赫. Dreamweaver MX 2004 网页设计经典108例[M].中国青年出版社.2005.99-101.

[13]唐友国 湛洪波著.JSP网站开发详解[M].电子工业出版社.2008.111-112.

[14]卫红春等著.信息系统分析与设计[M].北京:清华大学出版社.2009.51-53.

[15]张大方 李玮等著.软件测试技术与管理[M].湖南:湖南大学出版社.2007.333-334.





附录1

SSH简介

系统的基本业务流程是:?在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring?IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。??

采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。

附录2

SSH Introduction

The system of basic business process is: the presentation layer, first through the JSP page to implement interactive interface, responsible for the transfer request (Request) and receive the response (Response), then Struts according to the configuration file (struts-config.xml) will be appointed received the ActionServlet Request to the corresponding Action processing. In the business layer, Spring IoC container management service component is responsible for providing business model to Action (Model) data processing components and the component of cooperative objects (DAO) to complete the business logic components, and provide transaction processing, the buffer pool, container components to enhance the integrity of system performance and ensure the data. But in the persistence layer, object mapping and database interaction is dependent on the Hibernate, DAO components request data, and returns the result.

With the development of the model, not only to achieve the complete separation of view, controller and model, but also realizes the separation of business logic layer and persistence layer. So no matter how to change the front, model layer need very little change, change and the database will not have an impact on the front end, greatly enhance the system reusability. And because the different layer coupling is small, is conducive to team members working in parallel, greatly improves the efficiency of development.







































36















管理员



用户



影片



订单



维护



实体



用户



登录



浏览信息/订票



注册



生成订单











献花(0)
+1
(本文系zy_360tsg原创)
类似文章
发表评论: