SSH框架下基于JSP网上商城系统的设计与实现毕业论文Word文件下载.docx
《SSH框架下基于JSP网上商城系统的设计与实现毕业论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《SSH框架下基于JSP网上商城系统的设计与实现毕业论文Word文件下载.docx(82页珍藏版)》请在冰豆网上搜索。
可通过不同类别查询,也可查看一个商品的详细信息。
5)生成购物车:
用于暂时缓存用户选中的商品。
6)生成订单:
当用户确定选购商品时,需生成订单,完成交易。
7)在线留言:
登录用户可在在线留言区域填写自己的意见。
2.1.2后台功能分析
对网站的管理者来说,商品的入库,用户信息的管理,商品信息的管理以及商品类别信息的管理是必不可少的,因此,本设计的后台功能包括商品管理,类别管理,系统管理,订单管理,留言管理等。
1)商品管理:
需要将商品名、价格、商品描述等录入到数据库中,查看所有商品或者单个商品的基本信息,删除和修改某一个商品等。
2)类别管理:
统计类别之间的比例,添加新类别等。
3)订单管理:
管理者应该可以每天清晰的查阅有多少订单生成,对于不需要的订单可删除,对于有变动的订单可修改。
4)留言管理:
对留言的管理,对不需要的留言可删除。
5)系统管理:
对于整个网上商城系统的管理,包括退出,对用户信息的查询,删除等。
2.2系统可行性分析
2.2.1技术可行性分析
JSP是Java在Internet/IntranetWeb上的重要应用技术,可以和各种Java技术完好的结合在一起从而实现非常复杂的应用。
因此得到了广泛的支持和承认,成为一种非常流行的网站开发技术。
鉴于JSP技术的成熟与广泛的使用,加以指导老师的帮助可以得到很多的技术支持。
Oracle数据库作为目前最主流的数据库已被大多数企业所采用,它安全性高,存储数据量大,并且检索方便。
使用SSH框架整合后台控制层,使代码更加简介,大大提高设计效率。
2.2.2操作可行性分析
因为计算机硬件的发展已经越来越快,现在PC机的性能已经可以胜任普通网站的web服务器。
购买一台高性能PC机作为企业的网站对于这个营销商来说并不是问题。
2.2.3经济可行性分析
根据调查的资料,现在聘用一支团队设计并建设企业商务型网站的费用为7000元左右,另外每年交纳700元占用网站空间和网站维护费。
为了使网站建成后能达到增加企业经济效益的效果,寻找一支创新与技术优秀的团队最多需要增加2000元的一次性投资。
这样看来一个成功的网站建成后为这个营销商带来的效益将会远大于成本。
但架设好一个网络中的服务器,以满足互联网中浏览者对速度的需求,这样每年服务器与网络线路和设备的维护费用将是企业不得不重点考虑的因素。
如何做好经济可行性分析,需要通过仔细的调查与投资和行业方面的专业人士分析。
3开发环境及相关技术
3.1SSH框架简介
集成SSH框架的系统从职责上分为四层:
视图层、业务逻辑层、数据访问层和数据层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate.
3.2JSP技术简介
本系统采用JSP技术开发。
因为JSP与同类的CGI、ASP、PHP相比有着独特的优势。
JSP是Sun属下Javasoft公司推出的技术,使用的Java语言是ASP、PHP和JSP三者中最新的技术。
它以JavaServlet技术为基础,又在许多方面作了改进,并且充分借鉴了ASP和PHP一些合理的地方。
它的平台无关性胜过ASP技术,而强大的JDBC数据库接口规范又优于PHP技术,而且JSP技术是以JAVA语言为基础的,可以使用JavaBeans组件和自定义标签,因此具有良好的扩展性。
总的来说,JSP业已成为目前主流的动态网页开发技术之一。
JSP的优点如下:
1)借助JSP技术,Web网页设计人员可以使用HTML或者XML标记来设计和风格化Web页面,使用JSP标记来生成动态Web页面。
在服务器端,JSP引擎负责解释JSP标记和脚本,生产请求的内容,然后将结果以HTML页面等形式发送回浏览器。
这样开发者可以保护自己的核心代码,同时可以保证任何Web浏览器的高度兼容性。
2)JSP页面可借助可重用的、跨平台的组件(JavaBean),来执行Web应用所要求的极为复杂的业务处理。
能够共享和交换调用一般操作的组件,或者让这些组件被别的开发人员或者开发团队所使用。
3)通过开发定制化的标签库等方法,JSP技术可以支持动态扩展技术。
4)作为Java2的一个重要组成部分,JSP技术能够支持高度复杂的、基于Web的企业级应用。
JSP技术可以轻松地与现有多种应用体系架构整合,可以充分利用已有开发工具和技巧,并扩展到企业级分布式应用环境。
此外,JSP技术无论是在跨平台特性、运行效率、企业级软件开发还是商业支持方面都具有优势,从而使其成为目前和未来进行动态网页开发的最佳工具之一。
3.3数据库系统简介
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;
作为一个关系数据库,它是一个完备关系的产品;
作为分布式数据库它实现了分布式处理功能。
ORACLE数据库具有以下优点:
安全性高,存储数据量大,检索方便等。
3.4服务器系统简介
Tomcat是Apache公司组织开发飞一种JSP引擎,由于自身具有Web服务器,可以作为独立的Web服务器使用。
在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。
你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。
编译以后,访问将会很快。
另外Tomcat也提供了一个应用:
manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。
通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。
当然本地也可以。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:
处理Html页面。
但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。
3.5CSS层
CSS层叠样式表(CascadingStyleSheet)是一系列格式规则,它们控制网页内容的外观。
使用CSS可以非常灵活并更好地控制具体的页面外观,从精确的布局定位到特定的字体和样式。
并能极大的方便网页制作的工作[4]。
这次设计中就学习使用了CSS层叠样式表,在HTML文文档外部将一系列CSS规则存储到一个.CSS文件中。
例如创建了一个名为body的选择器。
利用它来统一设计网站内网页背景及外部框架的样式。
在声明中规定了页面的背景、滚动条的颜色样式等。
还用.br和.wenbenkuang两个选择器确定输出文本框时的样式。
由于CSS已经规定声明部分中的属性及其取值范围,所以对于我这样初学者的难点就是如何找到合适的属性来实现页面设计。
3.6平台选择
Microsoft软件是日常生活中使用最为广泛的软件,基于这一特点,我们选用的平台是JavaServerPage(简称JSP)+oracle数据库,它适应于Windows操作系统并能很好的与其应用程序结合,而且oracle数据库也易操作,从而大大降低了编程难度。
具体如下:
1)采用了Internet架构,Bowser/Server模式。
2)Web服务器采用Tomcat6.0服务器,数据库管理系统为oracle。
3)开发工具使用Dreamweaver搭建系统页面框架,再用MyEclipse在其中插入JSP语句,JavaBean使用MyElipse编写。
4系统设计与实现
4.1系统总体结构设计
本系统采用B/S(Browser/Server,浏览器/服务器)架构。
在这种结构下,用户工作界面是通过IE浏览器来实现的。
B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据。
B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。
只要有一台能上网的电脑就能使用,客户端零维护。
系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用。
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。
B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。
服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。
浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由ApacheServer完成。
实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Apache服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Apache服务器。
这种三层体系结构如图4.2所示。
这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。
由于客户机把事务处理逻辑部分分给了功能服务器,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。
这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。
图4.1系统体系结构图
4.2系统流程
4.2.1总体流程
层次模块结构是将系统划分为若干子系统,子系统下再划分为若干的模块。
而模块是指具备有输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。
在结构化系统设计中,模块一般都是按功能划分的,通常称为功能模块。
合理的功能模块的划分能够极大限度地减少重复劳动、提高开发工作的效率并增大系统的可维护性。
以前面的系统分析为基础,将系统分为两大模块,即前台模块和后台模块。
网上商城系统的功能结构如图4.2所示。
图4.2系统总体流程结构图
4.2.2系统前台流程
网上商城前台的主要对象是顾客,操作步骤说明如下:
1)顾客在进行第一次购物之前要进行会员验证,如果不是会员需要注册一个。
注册时需要填写自己的用户名,密码,电子邮件等;
2)进入网上商店,顾客可根据不同的链接,查询不同类别的商品,可单击商品的图片查看到该商品的具体信息;
3)选中商品后,并点击“加入购物车”按钮,将商品放入购物车;
4)选购结束,检查购物车,核实商品和数量是否正确,如有出入,可以重新调整商品和数量,如无误,则可以提交订单;
5)提交订单需要填写送货的信息,确认无误点击提交,完成操作。
后台操作流程图如下图4.3所示:
图4.3网上商城系统前台流程图
4.2.3系统后台流程
本商城的后台设计中,管理员完成对网站的维护与管理的工作。
操作步骤说明如下:
1)管理员通过唯一的用户名和密码登录到后台界面,通过下拉框列表可看到不同的操作模块;
2)系统管理:
可查看所有注册的用户,可对用户进行删除。
3)商品管理:
可查看所有商品信息,查看一件商品信息,可删除和修改商品,并添加一件商品。
4)类别管理:
可添加一个类别,查看不同类别的比例图。
5)留言管理:
可查看所有留言,删除留言。
6)订单管理:
可修改订单,删除订单。
后台管理的流程如图4.4所示:
图4.4网上商城系统后台业务流程图
4.3系统功能模块实现
4.3.1前台模块的功能模块设计
前台模块主要为登陆网站的用户提供商品和服务的信息,填写并提交订单的服务。
这样,将前台模块再细分为用户管理模块、订单查询模块、购物车模块、留言板模块、商品模块。
顾名思义,这些模块的名称基本概括了它们的功能。
下面详细说明一下这些功能模块的设计:
1)用户管理模块
为了方便于网站的管理,必须由一套完整的用户管理体系。
本网站用户管理模块主要实现用户的注册、登录、找回密码三方面功能,对于非会员用户必须先进行注册才能进入商城,如果忘记密码,可通过输入注册时的用户名和邮箱地址找回密码。
登录流程图如图4.5所示:
图4.5登录流程图
部分实现代码如下:
<
formid=Logformname=Logformaction="
userinfo"
method=post>
<
divclass="
loginFrom_top"
>
用户登录<
/div>
ul>
li>
font>
用户名:
/font>
inputtype=”text”name=”username”class=”loginFrom_text”>
/li>
密码:
inputtypt=”password”name=”userpwd”class=”loginFrom_text”>
inputsype=”submit”id=”Login”name=”Login”class=”blog”onFocus=”this.blur()”value=”登录”>
/ul>
/form>
Class.forName("
oracle.jdbc.OracleDriver"
);
Stringurl="
jdbc:
oracle:
thin:
@127.0.0.1:
1521:
orcl"
;
conn=DriverManager.getConnection(url,"
ledushop"
"
conn=newDBUtil().getConn();
Stringsql=”select*fromuserinfowhereusername=?
Anduserpwd=?
”
登录模块页面login.jsp如图4.6所示:
图4.6登录页面图
对于非会员用户需要先进行注册,用户需要输入自己的基本信息,确认密码无误后完成注册,注册流程图如图4.7所示:
图4.7用户注册流程图
部分实现代码如下:
Stringsql="
insertintoUserinfo(id,username,userpwd,email,createtime)values(SEQ_USERINFO.NEXTVAL,?
?
)"
;
//添加用户
request.setCharacterEncoding("
gb2312"
response.setContentType("
text/html;
charset=gb2312"
PrintWriterout=response.getWriter();
Stringusername=request.getParameter("
ld_userID"
Stringuserpwd=request.getParameter("
ld_pass1"
Stringemail=request.getParameter("
ld_mail"
if(newUserinfoDao().addUserinfo(u)){
out.println("
script>
alert('
注册成功!
'
)<
/script>
"
response.setHeader("
refresh"
"
0;
url=login1.jsp"
}else{
注册失败!
url=new.jsp"
}
注册页面new.jsp如图4.8所示:
图4.8注册页面图
对于忘记密码的用户,可通过输入自己的用户名和邮箱地址,找回自己的密码,找回密码流程图如图4.9所示:
图4.9找回密码流程图
部分实现代码如下:
username"
email"
if(u!
=null){
out.println("
您的密码为:
+u.getUserpwd()+"
url=show.jsp"
您输入的用户名或邮箱有误!
找回密码页面findPassword.jsp如图4.10所示:
图4.10找回密码页面图
2)购物车模块
在超市购物,可以根据自己的需要将很多种商品挑选至购物车或购物篮中,然后到收银台结款。
而在网上虚拟的商城中,当然没有办法使用真正的购物工具,因此,通常都会采用一种被称为“购物车”的技术来模拟现实生活,即现将商品信息存入一个集合中,这个集合就是购物车。
在网上商城中,所选商品须通过购物车进行暂存,然后生产订单。
这种技术使用起来十分方便,不但可以随时添加、查看、修改、清空购物车中的内容,还可以随时去收银台结款。
购物车模块流程图如图4.11所示。
图4.11购物车模块流程图
HashMap<
String,GoodCartItme>
map=newHashMap<
();
publicbooleanaddGoodCartItme(GoodCartItmegc){
map.put(gc.getGo().getId()+"
gc);
returntrue;
}
publicbooleandeleteGoodCartItme(StringGoodid){
map.remove(Goodid);
publicvoidclearCartItme(){map.clear();
publicintgetAllsum(){intsum=0;
for(GoodCartItmegc:
this.getAllGoodCartItme()){
sum+=gc.getgoodinfosum();
}returnsum;
publicvoidmodify(StringGoodid,intcount){
GoodCartItmegc=map.get(Goodid);
gc.setCount(count);
publicCollection<
GoodCartItme>
getAllGoodCartItme(){
Collection<
c=map.values();
returnc;
publicbooleanisExists(intGoodid){
if(map.containsKey(Goodid)){returntrue;
}else{returnfalse;
购物车页面gouwuche.jsp如图4.12所示:
图4.12购物车页面图
3)订单管理模块
用户将商品添加入购物车后可点击”提交订单”按钮,填写订单信息生成订单,点击提交后将订单信息入库,生成订单后用户可通过页面上的“订单查询”按钮,通过输入订单号查询订单,如果没有,这返回错误,重新输入。
订单查询模块流程图如图4.13所示。
图4.13订单查询模块流程图
Stringname=request.getParameter("
name"
Stringtelphone=request.getParameter("
telphone"
Stringaddress=request.getParameter("
address"
Stringdcode=request.getParameter("
dc