您的当前位置:首页正文

电子行业-SSH电子商城设计文档 精品

2021-02-28 来源:易榕旅网
摘 要

随着网络技术的发展,现在越来越多的人在网上进行购物,电子商城的需求变得很有必要,电子商城的实现,让人们可以直接在网上购买自己想要的东西,使人们的生活变得更加丰富多彩,也使人们的生活变得越来越方便,电子商城是对商品,注册用户进行管理的系统。

本系统根据软件工程的设计思想,基于J2EE中STRUTS2,HIBERNET3.0,SPING2.0的框架技术,使用了JAVA编程语言和MYSQL数据库管理系统来实现。主要完成的功能有:用户信息管理,商品信息管理;在用户信息管理中包括普通用户与开店用户的注册与登录,他们的信息修改等功能;在商品信息管理中包括商品信息的查询,修改,删除,添加等功能。

在本系统中采用B/S结构,将系统分为三层结构:表示层,业务逻辑层,数据层。

在表示层,用STRUTS2来对JSP页面跳转进行管理;在业务逻辑层,使用bean对信息进行管理,通过一些接口和方法实现对业务逻辑的完成;在数据层,使用HIBERNET实现对数据的添加,删除,修改,查询;使用SPING框架对HIBERNET,STRUTS进行注入管理。

关键词:用户信息管理,商品信息管理;B/S;bean STRUTS2,HIBERNET3.0,MYSQL

目录

1.绪论......................................................................................................................................... 1 2.需求分析 ................................................................................................................................. 2

2.1系统简介 ..................................................................................................................... 2 2.2系统功能 ..................................................................................................................... 2 3.总体设计 ................................................................................................................................. 5 4.详细设计 ................................................................................................................................. 6

4.1模块接口与实现 ............................................................................................................... 6 4.2数据库的设计 ................................................................................................................... 6 4.3系统功能实现 ................................................................................................................... 7

4.3.1用户注册功能 ........................................................................................................ 7 4.3.2用户登录功能 ........................................................................................................ 8 4.3.3店铺管理功能 ........................................................................................................ 8 4.3.4非开店用户业务 .................................................................................................... 9 4.3.5分页显示 ................................................................................................................ 9 4.3.6字符处理 ............................................................................................................ 10

5.结论 ......................................................................................................................................... 11 .......................................................................................................................... 错误!未定义书签。

1.绪论

1. 在本系统中需要注意的问题包括:用户注册时怎么判断该用户已经注册;用

户登录时需要注意用户是否已经登录;开店用户对商品的添加,删除,修改;非开店用户对商品的查询和对商品的留言。 2. 提出你的问题和实现思路。

怎么判断用户已经注册:

由页面将填写的用户名交给后头数据层进行查询,判断用户是否注册,并在页面提示

怎么判断用户已经登录:

在所有涉及到用户的页面中都添加一个拦截器,判断用户是否已经登录 开店用户对商品的管理:使用HIBERNET中的方法实现对数据的添加,删除,修改,查询。

非开店用户的业务:

使用HIBERNET的方法实现非开店用户对商品的评论,商品的购买,将其数据插入数据库中。

对查询出来的结果进行分页显示:

在数据库中的表中,有一些数据,在页面显示的时候需要分页显示出来,这样便于美观,也符合用户需求,在该功能实现的过程中,从数据库中查询出若干记录,交给分页处理程序处理,在页面通过分页处理程序所传递的参数进行分页显示,一次只显示分页处理程序中规定的记录数。 购物车的实现:

要实现购物车,必须在数据库中建立相应的数据库表,在页面点击加入购物车后,叫给购物车处理程序进行处理,在这过程中,调用数据层的插入操作,将获得的信息插入数据库。 对页面字符的处理:

在页面显示的过程中,有时会出现乱码的情况,这就需要对页面显示内容进行字符格式的转换,从数据层中查询出来的数据,都需经过字符处理程序处理后,再在页面进行现在,将字符处理程序定义成bean,他们公共类,因为都需要调用到它,这样的设计便于结构的清晰。

在系统中都是通过定义结构与其相应的实现方法来对数据进行操作,将系统在实现逻辑上的分层效果,这样系统的结构清晰,便于扩展,另外对数据的操作过程中,都是对操作对象的集合进行的,有对象实体获得对象的详细信息,在数据层进行添加,删除,修改,查询时都是对对象实体进行操作,这种设计方式便于结构的清晰,也符合用户的需求。 本系统的三层结构:

表示层 图形界面 业务逻辑层 数据访问层 中间层 数据库

2.需求分析

2.1系统简介

在本系统中,用户分为开店用户和普通用户,开店用户由普通用户注册后,进行店面管理页面进行开店,开店后进行对商品的添加,删除,修改,查询,也可以对店铺信息进行修改;非开店用户可以浏览商品信息,当需要对商品进行评论时需要注册,由注册页面填写信息进行注册,注册后,可以对商品进行购买和查询。 系统流程图:

电子商城添加用户管理商品管理查询非开店用户游客开店用户删除修改对商品查询浏览商品店铺管理商品管理注册与登录对商品评论购买商品

2.2系统功能

用户注册功能:

当用户注册时,在注册页面填写用户的信息,包括用户名,密码,真实姓名,性别,邮箱,地址等信息,填写完成后点击注册,将注册信息通过后头插入数据库,在这过程中需要判断用户名是否已经被注册过,需要将用户名交给后头进行查询,判断是否可以注册,并在页面显示出用户名是否可以注册,另外,密码信息不能为空,其他信息可以为空

注册判断用户注册失败注册成功

用户登录功能:

用户登录是,填写用户名和密码,并进行验证密码是否正确,这需要通过对数据库中用户表的查询进行验证,等密码正确时登录成功,并跳到用户之前打开的页面,当密码不正确时,提示登录失败,依然显示登录页面重新登录,在登录页面中添加一个注册链接,方便用户重新注册

登录 判断密码登录失败登录成功

用户店铺管理功能:

当登录用户需要开店时,进入店铺管理页面,点击开店,填写店铺信息,包括店铺名,地址和对店铺的描述,开店后对商品进行添加,添加商品时,需要对商品进行分类,填写分类名称后进行添加商品,并填写商品的信息,包括商品名称,商品价格,商品数量,商品描述等;对商品删除时,由商品名称获得商品的所有信息,并通过后头进行删除操作;对商品进行修改时,填写修改信息,并通过后头进行更新操作;对商品查询时,通过填写商品名称进行查询,并由后头进行查询操作;对店铺信息进行修改时,填写修改信息,并通过后头进行更新操作。

用户店铺商品管理店铺信息管理增,删,改,查修改

非开店用户的业务功能:

非开店用户可以对商品进行评论和购买,对商品进行评论时,填写评论信息,并通过后头进行插入操作,将评论信息插入评论表中;对商品购买时,浏览商品的信息进行购买,购买过程中,将信息插入购买表中。

非开店用户游客普通用户浏览商品用户登录评论商品购买商品 对查询数据的分页显示:

在数据库中的表中,有一些数据,在页面显示的时候需要分页显示出来,这样便于美观,也符合用户需求,在该功能实现的过程中,从数据库中查询出若干记录,交给分页处理程序处理,在页面通过分页处理程序所传递的参数进行分页显示,一次只显示分页处理程序中规定的记录数。 购物车的实现: 要实现购物车,必须在数据库中建立相应的数据库表,在页面点击加入购物车后,叫给购物车处理程序进行处理,在这过程中,调用数据层的插入操作,将获得的信息插入数据库。 对页面字符的处理: 在页面显示的过程中,有时会出现乱码的情况,这就需要对页面显示内容进行字符格式的转换,从数据层中查询出来的数据,都需经过字符处理程序处理后,再在页面进行现在,将字符处理程序定义成bean,他们公共类,因为都需要调用到它,这样的设计便于结构的清晰

3.总体设计

用户注册:

新建一个JSP页面,由HTML标签实现对信息的填写,并将填写的信息由标签提交给用户处理程序,在用户处理程序中调用用户在业务逻辑层中的方法实现注册,在业务逻辑层中,需要用到数据访问层对数据进行插入操作;在注册时判断用户名是否已经注册,需要从数据层中查询出用户名信息,判断用户名是否已经存在,惹存在,则注册失败,只有用户名可以注册时才能注册成功,表提示用户注册成功。 用户登录:

在用户登录的JSP页面,填写用户登录的用户名和密码,有页面标签实现,填写后提交给用户处理程序,用户处理程序调用业务逻辑层中对数据层用户信息的查询操作,对用户名和密码进行验证,如果正确,则登录成功,否则登录失败。 用户店铺:

开店用户进行开店时,填写店铺信息进行开店,有页面标签实现,并提交给店铺处理程序,店铺处理程序调用业务逻辑层中店铺的开店方法,这过程中需要对数据层进行插入操作;添加商品时,填写商品信息,有页面标签实现,并提交给商品处理程序,电泳业务逻辑层中对数据层的插入操作,完成商品的添加,并对商品进行分类,分类时,也需要对数据层进行插入操作;删除商品时,点击删除,在数据层中进行删除操作;修改商品信息时,填写商品修改信息,有页面标签实现,在商品处理程序中,调用数据层对数据的更新操作完成修改;修改店铺信息时,填写店铺修改信息,有页面标签实现,在店铺处理程序中,调用数据层对数据的更新操作完成修改; 非开店用户的业务功能:

非开店用户对商品进行评论时,填写评论信息,由页面标签实现,提交给商品处理程序,在商品处理程序中,调用数据层对数据的插入操作实现评论信息的插入;对商品购买时,点击购买,有页面标签实现,提交给商品处理程序,在商品处理程序中,调用数据层中队数据的插入操作。 对查询数据的分页显示:

在数据库中的表中,有一些数据,在页面显示的时候需要分页显示出来,这样便于美观,也符合用户需求,在该功能实现的过程中,从数据库中查询出若干记录,交给分页处理程序处理,在页面通过分页处理程序所传递的参数进行分页显示,一次只显示分页处理程序中规定的记录数。 购物车的实现: 要实现购物车,必须在数据库中建立相应的数据库表,在页面点击加入购物车后,叫给购物车处理程序进行处理,在这过程中,调用数据层的插入操作,将获得的信息插入数据库。 对页面字符的处理: 在页面显示的过程中,有时会出现乱码的情况,这就需要对页面显示内容进行字符格式的转换,从数据层中查询出来的数据,都需经过字符处理程序处理后,再在页面进行现在,将字符处理程序定义成bean,他们公共类,因为都需要调用到它,这样的设计便于结构的清晰

4.详细设计

4.1模块接口与实现

action useraction Shopaction Goodsaction Dao userdao Shopdao Goodsdao daoimpl userdaoimpl Shopdaoimpl Goodsdaoimpl service userservice Shopservice Goodsservice serviceimpl userserviceimpl Shopserviceimpl Goodsserviceimpl 4.2数据库的设计

1、用户表:

字段名 Id Name Password Type Sex Phone 说明 标识 用户名 密码 类型 性别 电话 类型 Int Varchar(30) Varchar(30) Varchar(20) Varchar(5) Varchar(15) 是否为空 NO NO NO NO YES YES 主键 Yes NO NO NO NO NO 默认值 Null NULL NULL NULL NULL NULL 自动增长 Yes NO NO NO NO NO 2.商店表:

字段名 id businessid name adress jifen miaoshu 说明 标识 用户ID 名称 地址 积分 描述 类型 Int Int Varchar(30) Varchar(30) Int Varchar(30) 是否为空 NO NO NO NO YES YES 主键 Yes NO NO NO NO NO 默认值 Null Null Null Null Null Null 自动增长 Yes NO NO NO NO NO 3.商品表:

字段名 id goodstypeid name price count soldcount jifen date userid photourl

说明 标识 商品类型 名称 价格 数量 卖出数量 积分 日期 用户 图片地址 类型 Int Int Varchar(30) float Int Int Int date Int Varchar(30) 是否为空 NO NO NO NO NO NO NO NO NO NO 主键 Yes NO NO NO NO NO NO NO NO NO 默认值 Null Null Null Null Null Null Null Null Null Null 自动增长 Yes NO NO NO NO NO NO NO NO NO

4.商品类型表:

字段名 id name shopid categoryid 说明 标识 名称 商店 分类 类型 Int Varchar(30) Int Int 是否为空 NO NO NO NO 主键 YES NO NO NO 默认值 Null Null Null Null 自动增长 YES NO NO NO 5.分类表:

字段名 id name 说明 标识 名称 类型 Int Varchar(30) 是否为空 NO NO 主键 YES NO 默认值 Null Null 自动增长 YES NO 6.评论表:

字段名 id content shopid authorid date type 说明 标识 名称 商店 分类 日期 类型 类型 Int Varchar(30) Int Int date Varchar(30) 是否为空 NO NO NO NO NO NO 主键 YES NO NO NO NO NO 默认值 Null Null Null Null Null Null 自动增长 YES NO NO NO NO NO 4.3系统功能实现 4.3.1用户注册功能

在用户注册页面register.jsp页面中,有html标签实现对信息的填写,并将填写的信息提交给useraction,在useraction中调用creatuser()方法创建新用户,在该方法中,需要用到userserviceimpl中的creatuser()方法,调用userdaoimpl中createntity()方法,将信息插入用户信息表中,但在注册过程中需要判断用户名是否已经被注册,在判断过程中,需要从数据库中查询该用户名是否已经存在,如果存在,则注册失败,否则,提示注册成功。

public void createEntity(E entity) {

}

this.getHibernateTemplate().save(entity);

判断是否已经注册

public boolean exist(int entityid) {

String hql=\"from \"+clazz.getName().toString()+\" where

id=\"+entityid;

if(this.getHibernateTemplate().find(hql).size()==0){

return false; }else{

}

}

return true;

4.3.2用户登录功能

当用户登录时,在登录页面login.jsp中填写用户名和密码,调用useraction中login()方法,在该方法中,调用userserviceimpl中login()方法,在该login()方法中,需要用到isuserorpwd()方法验证用户密码是否正确,当密码正确时登录成功,否则登录失败。

public User isUserorpwd(String name, String password) {

User user=this.getUserByName(name); return null;

if(user==null){ }else{

if(user.getPassword().equals(password)){

return user; return null;

}else{ } }

}

4.3.3店铺管理功能

当用户开店时,在店铺管理页面addshop.jsp页面中填写店铺信息,提交给shopaction中调用creatshop()方法创建新用户,在该方法中,需要用到shopserviceimpl中的creatshop()方法,调用shopdaoimpl中createntity()方法,将信息插入用户信息表中

public void createEntity(E entity) {

}

this.getHibernateTemplate().save(entity);

当用户添加商品信息时,在商品信息页面中填写商品信息,提交给goodsaction中调用addgoods()方法创建新用户,在该方法中,需要用到goodsserviceimpl中的addgoods()方法,调用goodsdaoimpl中createntity()方法,将信息插入商品信息表中

public void createEntity(E entity) {

}

this.getHibernateTemplate().save(entity);

当用户删除商品时,在商品浏览页面点击删除,提交给goodsaction中调用delete()方法创建新用户,在该方法中,需要用到goodsserviceimpl中的delete()方法,调用goodsdaoimpl中deleteentity()方法

public void deleteEntity(E entity) {

}

this.getHibernateTemplate().delete(entity);

当用户修改商品信息时,在商品信息页面填写修改信息,提交给goodsaction中调用update()方法创建新用户,在该方法中,需要用到goodsserviceimpl中的update()方法,调用goodsdaoimpl中updateentity()方法

public void updateEntity(E entity) {

}

this.getHibernateTemplate().update(entity);

当用户查询商品信息时,在查询页面填写商品名称进行查询,提交给goodsaction中调用get()方法创建新用户,在该方法中,需要用到goodsserviceimpl中的getgoodsbyid()方法,调用goodsdaoimpl中geteentity()方法

public List getEntitys(String hql, int firstresult, int maxRecorders) {

Session session=super.getSession(); List list=

(List)session.createQuery(hql).setFirstResult(firstresult).setMaxResults(maxRecorders).list();

}

return list;

4.3.4非开店用户业务

当非开店用户对商品进行评论时,在评论页面填写评论信息,提交给replyaction中调用reply()方法,在该方法中,需要用到replyserviceimpl中的reply()方法,调用replydaoimpl中createentity()方法将评论信息插入评论表中。

public void createEntity(E entity) {

}

this.getHibernateTemplate().save(entity);

当非开店用户对商品进行购买,点击加入购物车,提交给useraction,在useraction中调用goumai ()方法创建新用户,在该方法中,需要用到userserviceimpl中的goumai()方法,调用userdaoimpl中createntity()方法,将信息插入商品购买表中

4.3.5分页显示

在页面显示的时候,需要对查询出来的数据进行分页显示,在这过程中,输入商品名称进行查询,调用数据层中对商品的查询操作,查询出的是一个商品集合,包含了定义的个数的商品信息,交给分页处理程序处理,并规定在页面显示多少个商品信息,在页面中,通过处理程序的传递参数来获得页数,并将该页的商品信息按一定的布局显示出来

StringBuffer perUrl=new StringBuffer(\"\"); if(includes!=null){

perUrl.append(\"&\"+permName); if(vType.equals(\"String\")){

String tmp=

perUrl.append(\"=\"+tmp); Long tmp=

perUrl.append(\"=\"+tmp);

String[] perm=includes.split(\); for(int i=0;iString permName=perm[i];

Object obje=this.getStack().findValue(permName); String vType=obje.getClass().toString();

Object obj=this.getStack().findValue(pageNo); pageNo = String.valueOf((Integer)obj); obj=this.getStack().findValue(total); total = String.valueOf((Integer)obj);

vType=vType.substring(vType.lastIndexOf(\".\")+1,vType.length());

(String)this.getStack().findValue(permName);

}else if(vType.equals(\"Long\")){

(Long)this.getStack().findValue(permName);

}else if(vType.equals(\"Float\")){

4.3.6字符处理:

在页面显示的过程中,有时会出现乱码的情况,这就需要对页面显示内容进行字符格式的转换,从数据层中查询出来的数据,都需经过字符处理程序处理后,再在页面进行现在,将字符处理程序定义成bean,他们公共类,因为都需要调用到它。

public void doFilter(ServletRequest request, ServletResponse response,

}

FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub

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

chain.doFilter(request, response);

String encoding=selectEncoding(request); if(encoding!=null)

request.setCharacterEncoding(encoding);

5.结论

在本系统的实现过程中,对STRUTS,HIBERNET,SPRING框架进行了整合运用,在本系统中采用B/S结构,将系统分为三层结构:表示层,业务逻辑层,数据层。 在表示层,用STRUTS2来对JSP页面跳转进行管理;在业务逻辑层,使用bean对信息进行管理,通过一些接口和方法实现对业务逻辑的完成;在数据层,使用HIBERNET实现对数据的添加,删除,修改,查询;使用SPING框架对HIBERNET,STRUTS进行注入管理,在开发中需要注意用户注册时怎么判断该用户已经注册;用户登录时需要注意用户是否已经登录;开店用户对商品的添加,删除,修改;非开店用户对商品的查询和对商品的留言

[1] 开发技术大全-基于struts,hibernet,spring整合框架技术

因篇幅问题不能全部显示,请点此查看更多更全内容