2《JavaEE架构与程序设计》课程设计说明书模板.docx

上传人:b****7 文档编号:23355751 上传时间:2023-05-16 格式:DOCX 页数:26 大小:264.61KB
下载 相关 举报
2《JavaEE架构与程序设计》课程设计说明书模板.docx_第1页
第1页 / 共26页
2《JavaEE架构与程序设计》课程设计说明书模板.docx_第2页
第2页 / 共26页
2《JavaEE架构与程序设计》课程设计说明书模板.docx_第3页
第3页 / 共26页
2《JavaEE架构与程序设计》课程设计说明书模板.docx_第4页
第4页 / 共26页
2《JavaEE架构与程序设计》课程设计说明书模板.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

2《JavaEE架构与程序设计》课程设计说明书模板.docx

《2《JavaEE架构与程序设计》课程设计说明书模板.docx》由会员分享,可在线阅读,更多相关《2《JavaEE架构与程序设计》课程设计说明书模板.docx(26页珍藏版)》请在冰豆网上搜索。

2《JavaEE架构与程序设计》课程设计说明书模板.docx

2《JavaEE架构与程序设计》课程设计说明书模板

《JavaEE架构与程序设计》

 

课程设计说明书

 

题目:

电子书城

学院:

计算机与信息工程学院

专业:

计算机科学与技术

班级:

姓名:

学号:

起止时间:

2012.6.25-2012.7.6

 

课程设计任务书

一、设计题目:

《电子书城》

二、设计内容:

完成用户管理、图书分类、搜索图书、查看购物车功能。

三、设计要求:

1.掌握软件开发的基本思想和学习方法,培养团队合作能力和自学能力;

2.掌握JSP技术开发流程,包括需求分析、概要设计、详细设计、编码、测试等;

3.掌握大型网站的数据库设计技巧,及mysql数据库的使用;

4.熟悉B/S架构软件的封装技巧,深入理解MVC的思想;

5.熟悉大型购物网站的业务流程,提升学员分析能力;

6.实践主流编程工具,提升JSP网站制作的动手开发能力;

7.熟练使用Tomcat等中间件;

8.课程设计说明书选择在线购书系统的部分功能模块,详细阐述从分析到设计实现的全过程。

摘要

Internet时代的到来已经形成了势不可挡的趋势,越来越多的人已经开始应用三大框架,而此时三大框架个性化不是原来的网页个性化,本设计首先介绍了Struts2、Spring和Hibernate三大框架相关技术,针对书店的实际需求,设计开发了一个基于SSH的小型电子商务网站(网上书店)。

在设计开发中,采用基于Browser/Server的三层数据库应用体系结构,三层结构自成体系,任何一层的变化,不需要其他另外两层的变化,适宜于任何底层操作系统。

通过对大型购物网站的业务流程的分析产生自身的理念思想,形成自己的电子书城。

并应用大型网站的数据库设计技巧和B/S架构软件的封装技巧的学习,对电子书城程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。

同时形成一个功能(其中功能包括查询图书功能、管理购物车、提交订单)比较全面、系统相对稳定的电子书城。

本设计采用面向对象的软件工程的思想,介绍了网上书店的整体规划和数据库的设计,并将图书等实体封装成相应的类和与其对应的操作类,提高了对数据库操作的安全性和系统的可扩展性。

本设计最后重点介绍了图书管理、用户登录管理等类中主要方法的实现,以及网站主页和图书浏览等页面的JSP实现细节。

该网上书店系统采用的技术方案SSH、JSP、Tomcat和MySQL。

基于SSH的网上书店系统主要完成的功能有两部分:

前台用户可以在网上进行注册、登录、书籍查询、图书购买和添加购物车等操作;后台管理员可以对图书进行添加、修改、删除等操作。

关键词:

Java、SSH、jsp、Tomcat、面向对象

目录

课程设计任务书II

摘要III

目录V

一、设计内容6

二、设计过程2

2.1需求分析2

2.2概要设计5

2.3详细设计7

2.4代码实现10

2.5程序运行与发布18

三、总结19

主要问题及解决办法19

心得体会20

四、参考文献21

一、设计内容

本次项目我们小组主要做的是网上书店用户操作界面,用户操作界面主要有四个大模块:

用户管理、图书分类、搜索图书、查看购物车。

其中用户管理分为:

查看用户资料、修改用户资料、删除用户。

图书分类分为:

程序设计、外语学习、网络通信。

查看购物车分为:

生成订单、清空购物车。

搜索图书分为:

程序设计、外语学习、网络通信。

除了应用模块以外,还完成了管理员登陆部分的验证,还有一些防止SQL注入的方法等等。

我主要是完成搜索图书的异常处理、用户登录异常处理、生成订单添加到数据库异常处理、XML文件的配置。

我们用两种方式来搜索图书,两种方式分别是根据图书名关键字搜索图书、根据图书类型编号返回该类型的图书。

所以在无法搜索到图书时会有两种返回方式。

在生成订单方面若无法生成订单则返回重新生成订单。

目标

1.掌握软件开发的基本思想和学习方法,培养团队合作能力和自学能力;

2.掌握SSH技术开发流程,包括需求分析、概要设计、详细设计、编码、测试等;

3.掌握大型网站的数据库设计技巧,及mysql数据库的使用

4.熟悉B/S架构软件的封装技巧,深入理解MVC的思想;

5.熟悉大型购物网站的业务流程,提升学员分析能力;

6.实践主流编程工具,提升SSH框架网站制作的动手开发能力

7.熟练使用Tomcat等插件。

二、设计过程

2.1需求分析

1.背景

信息时代的来临标志着人类生活方式的改变。

在人们还没有意识到Internet的威力的时候,它就已经开始遍及全球。

随着Internet的迅速发展,各种各样的讯息都迅速的蔓延,如今人们更加接受互联网,更加依赖互联网。

人们不但在网上可以看见琳琅满目的商品信息,同时可以快速的寻找到自己想要的东西。

从此就出现了网购,当然不仅仅只有时装、电器、生活物品等可以在网上买到,图书也可以在网上买到。

现今是“速度”的社会,时间就是金钱,有很多人已经厌倦了浪费时间在路上或者是在书店选择图书的过程,不但浪费时间精力,供选择的图书款式也很有限。

而在网上不但可以快速的显示出多款相同方面不同作者的书,还可以在全国各地多家卖家中选择你所喜欢的卖家,实用性能十分强大。

当然在线购书也可以为你省去携带现金去买书的麻烦,可以在网上直接交易,不但方便而且省时。

同时,现在的物流公司也是应有尽有,全国各地数不胜数。

方便的物流也是人们选择网上购书的重要原因之一。

当然,凡事都有两面性,网上购书有有利的一面也就有弊端,比如说所购图书的质量问题,买家并不知道多买的图书是否是正品。

还有安全问题等等诸多问题都有待完善,但是总体上说是利大于弊的。

所以,在线购书已经是一个时代的开始,越来越多的人们开始网上购书,不单单是青年人和中年人,就连老年人都开始网上购书。

网上购书的人群已经开始扩张,在没有所谓的年龄问题。

而且,现在已经有各种各样的在线购书系统出现,各有各的优点,但都不是很成功,多少都会有些瑕疵,因此,电子书城系统还是有很大的市场需求的。

2.参考资料

1.JAVA语言程序设计案例教程人民邮电出版社陈伟

2.JSP动态网站开发实践教程清华大学出版社张银鹤刘志国

3.JSP基础教程(第2版)清华大学出版社耿祥义张跃平

4.赵池龙,杨林,孙伟.实用软件工程,第2版.北京:

电子工业出版社,2006.

5.肖汉.软件工程理论与实践,北京:

科学出版社,2006.

3.定义

E-commercesites

 

4.用户特点

a.主流人群为经常上网的读书爱好者,拥有能够上网的条件,以青年和中年人为主。

b.部分用户持有信用卡,可在网上直接付款;无信用卡的用户可以汇款进行交易。

c.从职业划分来看,一部分用户是高校学生,追求时尚快捷的购物方式,购买力有限;另一部分则为工作人群,追求高效经济的购物方式,购买力较强。

5.网站结构(图)

6.功能模块

用户登录:

图书分类、搜索图书、查看购物车等模块。

S

7.网站流程(描述)

用户登录是第一个页面,当用户登录进去显示的是主操作页面主要分为四大模块:

店面首页、图书分类、搜索图书、查看购物车。

2.2概要设计

1.系统框架

系统对运行环境的要求:

1.1.硬件环境:

处理器:

InterPentium41.6GHz或更高

内存:

256MB或以上。

硬盘空间:

80GB或以上。

光驱:

CD-ROM、DVD-ROM

显卡:

ATI显卡

1.2.软件环境:

服务器:

Tomcat6.0版本。

操作系统:

Windows7

网络协议:

本机

浏览器InternetExplore6.0以上,建议分辨率为1024*768像素。

数据库:

mysql。

开发环境:

Eclipse3.5

2.技术框架

主要是:

Struts2、Spring、Hibernate、数据库设计、MVC、JSP技术、Servlet技术、JAVABEAN、JDBC、cookie、session、中间等

3.功能模块(模块清单)

4.数据库设计(E-R图)

 

5.网站流程(流程图)

2.3详细设计

首先将我们组的整体设计的系统整体包资源管理图展现出来

通过上图可以对我们的电子书城的整个结构有所了解,其中我负责的是图书搜索,订单生成和过滤器是我完成的,同时也配置了struts.xml文件。

2.3.1图书搜索、订单生成、登录验证

图书搜索有两种形式:

根据图书名关键字返回该类型的图书、根据图书类型编号返回该类型的图书。

可以搜索出书籍列表、书籍类型等。

若搜索过程中无法正常搜索则会报出异常并要求重新搜索。

之后是订单的生成,订单生成正确会生成订单,如下图。

同时,我还对用户登录做了验证,如果用户名密码正确则可进入,不正确会返回。

 

2.3.2过滤器

过滤器是用来在用户请求和处理程序之间的一个处理程序,我用它来对关联的URL请求和响应进行检查和修改。

我供应用了2个过滤器。

当请求过滤器是会依次发生作用。

2.3.2XML文件的配置

在应用Tomcat中XML文件的配置是非常重要的,配置正确才会在浏览器中运行,我配置的是struts.xml文件。

2.4代码实现

2.4.1BookDetailControlImpl.java

packagecom.org.service.impl;

importcom.org.service.*;

importcom.org.dao.*;

importcom.org.model.*;

importjava.util.List;

publicclassBookDetailControlImpl

implementsBookDetailControl{

privateBookDetailDaobookdao;

publicvoidsetBookdao(BookDetailDaobookdao){

this.bookdao=bookdao;

}

/**

*根据图书名关键字返回该类型的图书

*/

publicListSearchBooks(Stringbookname)throwsException{

try{

returnbookdao.SearchBooks(bookname);

}catch(Exceptione){

thrownewException("搜索图书出现异常,请重试");

}

}

/**

*根据图书类型编号返回该类型的图书

*/

publicListShowBookList(intbooktypeid)throwsException{

try{

returnbookdao.ShowBookList(booktypeid);

}catch(Exceptione){

thrownewException("返回书籍列表出现异常,请重试");

}

}

/**

*返回所有图书类型

*/

publicListShowBookTypeList()throwsException{

try{

returnbookdao.ShowBookTypeList();

}catch(Exceptione){

thrownewException("返回书籍类型出现异常,请重试");

}

}

/**

*返回一本图书信息

*/

publicBookBookContent(intbookid)throwsException{

try{

returnbookdao.BookContent(bookid);

}catch(Exceptione){

thrownewException("返回书籍介绍出现异常,请重试");

}

}

/**

*返回指定编号的图书

*/

publicListSearchBooks(intbookid)throwsException{

try{

returnbookdao.SearchBooks(bookid);

}catch(Exceptione){

thrownewException("返回书籍出现异常,请重试");

}

}

/**

*添加订单到数据库

*/

publicvoidCreateOrder(Orderorder)throwsException{

try{

bookdao.CreateOrder(order);

}catch(Exceptione){

System.out.print(e.getMessage());

thrownewException("添加订单错误,请重试");

}

}

2.4.2UserControlImpl.java

packagecom.org.service.impl;

importcom.org.service.*;

importcom.org.model.*;

importcom.org.dao.*;

//importcom.org.dao.hibernate.*;

publicclassUserControlImplimplementsUserControl

{

privateUserDaouserdao;

publicvoidsetUserdao(UserDaouserdao){

this.userdao=userdao;

}

publicbooleanvalidNamandPass(Stringusername,Stringpassword)throwsException

{

try

{

Useru=userdao.getAdminUserByNameAndPass(username,password);

if(u!

=null)

{

returntrue;

}

}

catch(Exceptione)

{

e.printStackTrace();

thrownewException("验证用户登陆时出现异常");

}

returnfalse;

}

}

2.4.3BookDetailControl.java

packagecom.org.service;

importjava.util.List;

importcom.org.model.*;

publicinterfaceBookDetailControl{

ListSearchBooks(Stringbookname)throwsException;

ListSearchBooks(intbookid)throwsException;

ListShowBookList(intbooktypeid)throwsException;

ListShowBookTypeList()throwsException;

BookBookContent(intbookid)throwsException;

voidCreateOrder(Orderorder)throwsException;

}

2.4.4UserControl.java

packagecom.org.service;

publicinterfaceUserControl

{

/**

*验证用户登陆,数据库表为admin

*@paramusername需要登陆的用户名

*@parampassword需要登陆的密码

*@return是否登陆成功

*/

booleanvalidNamandPass(Stringusername,Stringpassword)throwsException;

}

2.4.5EncodingFilter.java

packagecom.org.filter;

importjavax.servlet.*;

importcom.sun.org.apache.xalan.internal.xsltc.dom.Filter;

importjava.io.IOException;

publicclassEncodingFilterimplementsFilter{

protectedStringencoding=null;

protectedFilterConfigfilterConfig=null;

publicvoiddestroy(){

this.encoding=null;

this.filterConfig=null;

}

publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,

FilterChainchain)throwsIOException,ServletException{

//Selectandset(ifneeded)thecharacterencodingtobeused

Stringencoding=selectEncoding(request);

if(encoding!

=null){

request.setCharacterEncoding(encoding);

response.setCharacterEncoding(encoding);

}

//Passcontrolontothenextfilter

chain.doFilter(request,response);

}

publicvoidinit(FilterConfigfilterConfig)throwsServletException{

this.filterConfig=filterConfig;

this.encoding=filterConfig.getInitParameter("encoding");

}

protectedStringselectEncoding(ServletRequestrequest){

return(this.encoding);

}

publicbooleantest(intnode){

//TODOAuto-generatedmethodstub

returnfalse;

}

}

2.4.6SetCharacterEncodingFilter.java

packagecom.org.filter;

importjava.io.IOException;

importjavax.servlet.Filter;

importjavax.servlet.FilterChain;

importjavax.servlet.FilterConfig;

importjavax.servlet.ServletException;

importjavax.servlet.ServletRequest;

importjavax.servlet.ServletResponse;

publicclassSetCharacterEncodingFilterimplementsFilter{

protectedStringencoding=null;

protectedFilterConfigfilterConfig=null;

protectedbooleanignore=true;

publicvoidinit(FilterConfigfilterConfig)throwsServletException{

this.filterConfig=filterConfig;

this.encoding=filterConfig.getInitParameter("encoding");

Stringvalue=filterConfig.getInitParameter("ignore");

if(value==null)

this.ignore=true;

elseif(value.equalsIgnoreCase("true"))

this.ignore=true;

else

this.ignore=false;

}

publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{

if(ignore||(request.getCharacterEncoding()==null)){

Stringencoding=selectEncoding(request);

if(encoding!

=null)

request.setCharacterEncoding(encoding);

}

chain.doFilter(request,response);

}

publicvoiddestroy(){

this.encoding=null;

this.filterConfig=null;

}

protectedStringselectEncoding(ServletRequestrequest){

return(this.encoding);

}

}

2.4.7struts.XML

xmlversion="1.0"encoding="GBK"?

>

DOCTYPEstrutsPUBLIC

"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"

"http:

//struts.apache.org/dtds/struts-2.0.dtd">

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1