专业综合实践论文样本Word文档下载推荐.docx
《专业综合实践论文样本Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《专业综合实践论文样本Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
本课题以JSP+Servlet+JavaBean开发一个基于MVC架构,设计一个简单的网上购物小车网站。
将信息化的观念导入购物车整体设计之中,并规划完善网站系统,以及对系统所需的相关技术进行探讨,网上购物有无穷的魅力和意义。
第2章需求分析
网上购物车的网站需求大体如下:
查询功能模块(以分页的方式列出所有当前的商品,也可以输入商品的具体名称进行精确查找)、购买功能模块(选择要购买的商品添加到购物车中)、管理功能模块(通过登录验证的用户能访问管理页面)。
网站开发人员对购物车开发过程中所需要的计算机设备及其有关的外部设备、对硬件资源进行可行性分析时主要考虑计算机的主机内存、类型、功能、联网能力、安全保护措施以及输入/输出设备,外存储器和联网数据通信设备的配置、功能、效率等指标进行分析,考虑其性价比。
基本的购物流程:
用户登录商城,查询所有的商品,将要选购的产品放到购物车中,管理员进行确认,得到的系统用例图如图2.1所示。
图2.1系统用例图
管理员
客户
图2.1系统用例图
数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
数据库的设计通常是以一个已经存在的数据库管理系统为基础的。
根据用户需求和业务流程,本系统SQLServer2000数据库管理系统。
Java环境是JDK1.5.0,IDE环境是NetBeans5.0,使用了Tomcat5.5.7作为JSP/Servlet容器,而EJB容器则采用了JBoss4.0.3。
此次开发研究使用了JSP+Servlet+JavaBean开发一个基于MVC架构,MVC是一种设计模式,主要有三个主要组件:
模型:
负责业务逻辑的状态和管理数据;
视图:
负责显示业务领域的表示视图;
控制器:
负责控制用户输入的流程和状态。
使用MVC模式时,通常会有某种形式的事件通知,当模型某部分有了变动时,可以通知视图控件。
NetBeans是SUN公司重点开发的JAVA集成开发环境,使用JAVA编程语言编写,具有很好的可移植性,它集成了程序员开发桌面,WEB,企业级和移动应用所需要的一切软件资源,具有以下特性:
(1)全面支持构建NetBeans插件模块和基于NetBeans平台的富客户端应用程序。
(2)全面支持SUNApplicationServer8.2及Tomcat5x
(3)全面支持JAVA企业版应用程序消息服务
(4)增强了对JAVAServerFaces和Struts的支持
(5)提供了更强大的代码编译器
(6)加快了代码编译的速度
(7)重新实现了对CVS的支持
(8)改进的、用户界面友好的IDE外形
(9)继承了编写、测试以及调试JAVAME程序的功能
第3章总体设计
3.1系统框架
本系统有5个完整的功能模块。
分别是:
查询商品模块;
购买商品模块;
删除商品模块;
添加商品模块;
交易操作模块。
结构如图3.1所示。
图3.1功能结构图
购物流程图是一种表明用户购物过程的流程图,它可以帮助分析人员找出流程中的不合理回路。
图3.2就是客户网络购物流程图。
登录
购买商品
送货
图3.2客户网络购物流程图
3.2数据库设计
通过对业务流程的分析,得到了系统的实体,以及实体之间关系,根据这些实体与关系之间的联系,得到了系统的E-R图,如图3.3所示。
n
1
m
图3.3网上购物车ER图
数据流程顶层图即是数据流程零层图,是宏观的数据流程图。
下面是网上购物车的顶层图,如图3.4所示。
图3.4数据流顶层图
E-R模型用实体间联系反映现实世界事物间的内在联系,而数据表的建立是应用程序开发过程中的非常重要的一个环节,必须清楚每一模块要操纵的数据是那些,以及数据间的相互关系,然后建立数据表。
本系统数据库使用SQLServer2000,包含以下4个表:
商品表(product)、用户表(user)、管理员表(admin)、购买表(purchase)。
下面分别详细介绍以上各表:
表3.1商品表(product)
字段名称
数据类型
长度
是否为空
主外键
说明
Product_id
int
4
否
主键
商品编码
Product_name
varchar
50
商品名称
Product_price
商品价格
Product_num
商品序号
Product_describe
商品描述
表3.2客户表(user)
User_id
用户ID
User_name
用户名
Rname
真实姓名
User_pass
用户密码
Email
Datetime
datetime
8
注册时间
表3.3管理员表(admin)
Admin_id
管理员ID
Password
密码
Product_ID
外键
商品编号
Stock
库存数量
表3.3购买表(purchase)
Contract_id
订单编号
Purchase_pattern
付款方式
用户编号
第4章详细设计与实现
详细设计阶段就是把解决方法具体化,设计出详细规格说明,包含必要的细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在这个阶段将详细地设计每个模块,具体的实现功能。
在详细设计过程中,具体的功能实现过程可以按照软件工程中的方法描述中的交互模型具体描述,力求完全符合客户的真实需求。
该系统的设计基于以下几个原则:
1.标准化;
2.模块化;
3.先进性;
4.安全性;
5.交互性。
首先实现对数据库的连接,代码如下:
StringCLASSFORNAME="
sun.jdbc.odbc.JdbcOdbcDriver"
;
StringCONNECSTR="
jdbc:
odbc:
shop_db"
Try{Class.forName(CLASSFORNAME);
This.con=DriverManager.getConnection(CONNECTSTR);
}catch(Exceptione){e.printStackTrace();
}
4.1查询功能
1.实现目标:
操作员(或者普通用户)进入查询商品页面,如图4.1.1所示,主要实现以下功能:
查看所有商品,对具体商品进行精确查询,模糊查询。
图4.1.1项目主界面
2.实现方法
(1)图4.1.1以分页的形式列出了当前所有的商品,单击“下一页”可以查询其它商品。
(2)在“查询商品名称”文本框中分别输入“Java”、“jsp”、“j2ee”,查询方式选择“精确查询”,单击“查询”按钮,此时浏览器中内容如图4.1.2
图4.1.2精确查询
(3)在“查询商品名称”文本框中输入“j”,查询方式选择“模糊查询”单击“查询”,显示如图4.1.3
图4.1.3模糊查询
获取当前查询出来的所有商品,并根据其ID号重新组织CartProduct的内容
privatevoidproductNotExit(Vectorvec,Stringid){
Enumerationenume=vec.elements();
inttempid=Integer.parseInt(id);
while(enume.hasMoreElements()){
ProductBeanpb=(ProductBean)enume.nextElement();
if(tempid==(pb.getProductId())){
CartProductcp=newCartProduct();
cp.setProductId(pb.getProductId());
//从Vector中获取具有相同Id号码的商品名称,作为CartProduct的productName属性的值。
cp.setProductName(pb.getProductName());
cp.setSelectedCount
(1);
cp.setProductPrice(pb.getProductPrice());
hash.put(id,cp);
return;
4.2购买功能
程序启动后,在项目主界面中选择要购买的商品放入购物车中,主要实现如下功能:
将购买商品放入购物车中,显示要结算的商品进行结账。
2.实现方法:
在如图4.1.1所示的窗口中选中商品编号1、2、3、4、5的商品前面的复选框,单击“添加到购物车”按钮,此时窗口如图4.2.1,从图中可以看出,单击“添加到购物车后”按钮后,被选中的商品会被添加到购物车中并显示出来,还会显示出该商品的购买数量以及商品单价。
图4.2.1将商品添加到购物车
(2)如果要购买的商品已经全部放入购物车中,然后点击“去结算中心”的超级链接,此时打开如图4.2.2所示的界面,给出了将要结算商品的数量、单价、金额小计。
如果点击“继续购物”链接,则会转到4.1.1页面可以继续选购商品。
图4.2.2结算中心
主要代码如下:
publicclassCustomerServletextendsHttpServlet{
Stringaction=request.getParameter("
action"
).trim();
//获取action属性的值
String[]selectedCount=request.getParameterValues("
choose"
);
//获取用户选择的复选框的值
this.forward(request,response,"
searchview.jsp?
pageno="
+pageno);
}elseif(action.equals("
addtocart"
)){//处理用户按下“添加到购物车”按钮的请求
if(selectedCount!
=null){
CartBeancartbean=null;
Vectortempvec=(Vector)session.getAttribute("
result"
if(session.getAttribute("
cart"
)==null){cartbean=newCartBean();
}else{cartbean=(CartBean)session.getAttribute("
}for(inti=0;
i<
selectedCount.length;
i++){cartbean.addToCart(tempvec,selectedCount[i]);
}session.setAttribute("
cartbean);
}this.forward(request,response,"
cartview.jsp"
}elseif(action.equals("
delete"
)){//处理用户按下“删除选中商品”按钮的请求
if(selectedCount!
=null){CartBeancartbean=(CartBean)session.getAttribute("
for(inti=0;
i++){cartbean.deleteFromCart(selectedCount[i]);
gotocheckout"
)){//处理用户点击“去结算中心”链接的请求
this.forward(request,response,"
checkout.jsp"
checkout"
)){//处理用户按下“结算”按钮的请求
4.3管理功能
在浏览器的地址栏中输入如下内容,出现登录界面(如图4.3.1所示)主要实现如下功能:
管理员管理界面,添加和删除商品。
图4.3.1管理员登录界面
(1)管理员输入正确的账号和密码之后,程序会自动跳转到查看与删除页面,浏览器的内容如图4.3.2所示,分页的形式显示了当前数据库的所有商品,单击“删除”链接可以删除相应的商品。
图4.3.2管理员登录后页面
(2)可以在4.3.3所示的页面中设置要添加的商品的信息,设置完成后。
单击“提交”按钮提交所添加的信息。
图4.3.3添加商品页面
protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)
if(action.equals("
login"
)){//用户点击了“提交”按钮
Stringusername=request.getParameter("
username"
Stringpassword=request.getParameter("
password"
booleanlogin=database.adminLogin(username,password);
//查看是否通过验证
)){//用户按下了“删除”链接
next"
)){//用户按下了“下一页”链接
previous"
)){//用户按下了“上一页”链接
add"
)){//用户按下了“添加新商品”链接
addproduct"
)){//用户点击了“添加”按钮
if(line==1){//更新的记录数为1,则表明添加成功
showadddelete"
)){//用户按下了“查看已有商品”链接
showadddelete.jsp"
第5章系统测试
通过测试,可以发现测试对象的缺点,这对进一步完善自己的系统中的错误起着很大作用。
分为以下几个步骤:
模块测试,模块测试通常又称为单元测试。
在这个测试步骤中所发现的往往都是编码和详细设计的错误;
子系统测试,子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。
这个步骤着重测试模块的接口;
系统测试,系统测试是把经过测试的子系统装配成一个完整的系统来测试。
在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能。
在这个测试步骤中发现的往往是软件设计中的错误;
验收测试,它的主要目的是验证系统确实能够满足用户的需要。
图5-1验证码错误图
进行测试的过程中,在对该系统进行测试的过程中,重点对该子系统的错误处理功能进行了检验,主要进行了系统模块出错的处理测试,在测试时使用了比较合理的测试用例,不仅仅是对键盘的操作进行测试,对一些链接,查看也进行了测试,也通过测试寻找到一些问题,对这些问题做出了及时有效的改正。
测试的结果还是令人乐观和满意的。
结论
运用MVC架构,结合普通电子商务网站的用户查询与购买及管理部分,详细的介绍了如何是用JSP、Servlet与Javabean开发一个具有MVC架构的购物网站。
通过该项目可以看到使用JSP、Servlet与Javabean开发的具有MVC框架的项目具有易维护、易修改、模块之间的耦合性低等优点。
这次课程设计第一次涉及到做网站。
系统存在下面的一些缺点,管理内容不够细致;
数据库表浪费,在进行该系统的设计时对数据库表与表之间的关系还是有比较清楚地分析的,但是在开发过程中这样设计的表相互关联性太多,使得对数据库操作起来比较复杂。
虽然困难重重,但是成功的人生,需要自己去经营,别再说了,莫再等了,现在就为自己的人生做好规划,为人生点亮一盏明灯,赢在人生起跑点上。
参考文献
[1]耿祥义,张跃平.JSP实用教程[M].北京:
清华大学出版社,2003
[2]赛奎春.JSP信息系统开发实例[M]北京:
机械工业出版社,2005
[3]吴亚峰,NetBeans、java桌面与企业级程序开发[M]北京:
人民邮电出版社,2007
[4]施伟伟.ASP.NET2.0数据库通用模块开发与系统移植[M].北京:
清华大学出版社,2007
[5]武新华,秦连清.ASP.NET+SQLServer典型网站建设[M].北京:
电子工业出版社,2007
[6]陈娴.ASP.NET中型在线系统开发实践[M].北京:
中国铁道出版社,2007
[7]方兵.ASP.NET2.0网站开发技术详解[M].北京:
机械工业出版社,2007
[8]李长林.ASP.NET+SQLServer动态网站开发与实例[M].北京:
清华大学出版社,2006