MVC设计模式 — 商城项目的详细介绍

Store商城

         介绍:一个小的功能较完整的商城Java项目。

项目地址:

        github:点击打开链接

        码云:点击打开链接

 

项目简介:

         本项目页面使用Jsp开发,采用了Bootstrap框架

         数据库采用mysql5.5版本,使用c3p0连接池进行数据库连接,dbutils进行数据库的操作,beanutils对javaBean类进行封装

         项目结构分为表现层View(页面)、控制层Controller(servlet)、业务层Service和数据访问层Dao,层次间的依赖关系自下到上。

该项目实现的功能:

1、  动态的将数据库中的信息显示到页面上,实现了商城页面和商城后台页面中商品分类信息、商品信息、用户信息、用户订单信息的显示

2、  商城用户登录页面利用cookie、listener、filter等技术实现了用户的自动登录和记住用户名功能

3、  商品分类信息页面实现了商品浏览记录以及商品信息分页的显示

4、  商品购物车页面在用户没有登录时,可以进行购物信息的添加,但是在提交订单时需要进行用户的登陆,才能够进入订单页面。在用户登录时会从数据库中加载用户购物车的信息。利用了ajax技术实现用户的登陆、用户登录时购物车商品信息在数据库中的实时更新。

5、  在用户没有登录时,无法进入订单页面,通过地址访问订单页面会直接跳转至登录界面

6、  通过前台和后台对于订单信息的处理,可以实现订单从付款到完成的全部过程

7、  商城页面出现错误时,均会跳转至指定的错误信息页面

8、  在商城后台页面实现了对商品分类、商品信息、用户订单的操作。

 

该项目运行环境:

1、  jdk1.7 (cmd中java –version查看) 必要

2、  tomcat 7

3、  mysql 5.5

 

该项目运行:

1、将store_v1.0.sql导入mysql中

2、将项目store导入到eclipse等相关开发工具

3、修改src下c3p0-config.xml文件下用户名user和密码password

 

项目结构详细介绍

1、项目数据表单(七张表)

用户表 user(存储用户信息)

分类表 catagroy (存储商品分类信息)

商品表 product 关联 分类表 catagroy (存储单个商品信息)

用户订单表 orders 关联用户表user (存储用户的所有订单信息)

订单项表 orderItem 关联 商品表 product ,用户订单表 orders (存储用户单个订单信息)

用户购物车表 cart 关联 用户表 user (存储用户的购物车信息)

用户购物车商品项表 cartItem 关联 用户表 user,商品表 product (存储用户购物车商品信息)

相关的sql语句:store_v1.0.sql

 

2、使用jar包

Mysql:驱动jar包 1个

c3p0:数据库连接jar包 1个

dbutils:数据操作工jar包 1个

beanutils:JavaBean类快速封装jar包 2个

jstl:jsp标签库jar包 2个

mail:邮件相关jar包 1个

fileupload:文件上传jar包 2个

ehcache:缓存相关jar包 5个

dom4j:解析xml文件jar包 2个

json:将object、集合等转换成json格式jar包 1个

 

3、相关工具类的介绍

3.1、BaseServlet

介绍:类似于框架struts2,编写了com.utils.BaseServlet类

描述:该类继承了HttpServlet,重写了service方法,通过获取传入参数method找到该类中与之对应的方法,然后获取方法的结果String值,将该值当成路径进行转发

作用:

1、所有servlet必须继承BaseServlet,每次请求时通过传入method=?参数,来执行该servlet的method方法。

2、servlet类中method方法返回值为String类型,可以转发到String值所对应的页面或者servlet中的其他方法

 

3.2、c3p0utils

介绍:自定义com.utils.c3p0utils工具类

作用:用于读取配置文件c3p0-config.xml中数据库相关信息,获取Connection和DataSource(与dbutils中QueryRunner配合使用进行数据库的操作)

 

3.3、CacheUtils

介绍:缓存工具类

作用:

1、  CategroyServlet中findAll方法读取categroy商品分类信息时,由于商品分类信息很少变动,为了优化页面读取速度,所以先从缓存中获取categroy信息,如果没有,再从数据库中读取。

2、  设置监听器web.listener.MyServletContextListener监听CategoryDao对象是否创建(该对象创建意味着商品分类信息会发生变动【在后台管理商品分类页面admin/categroy/相关页面】),如果商品分类发生变动,则重新读取商品分类category的数据信息到缓存中。

 

3.4、CookieUtils

介绍:cookie自定义工具类

描述:request.getCookies会获取Cookie[]数组,遍历该数组,查找String值对应的cookie存储的信息

作用:方便找出存入cookie中的用户信息。

1、  实现用户的自动登录。用户在登录时,如果勾选了自动登录,那么就将用户信息存储到cookie中(autoLogin)并设置cookie的存活时间。设置过滤器web.fiter.autoLoginFilter过滤所有页面,在用户再次进入商城中的任何页面时,会先从session域中查找用户信息user,如果不存在(关闭浏览器后session会消失),则从cookie中(autoLogin)中查找,如果查找到则将用户信息存储session中。(session中的user信息主要用于jsp/top.jsp中用户信息的读取)

2、  实现记住用户名。用户在登陆时,如果勾选了记住用户名,那么就将用户信息存储到cookie中(remember)并设置cookie的存活时间。在jsp/login.jsp中用户名一栏设置value=${cookie.remember.value},实现下次进入登录页面时,用户名一栏信息的显示。

 

3.5、UUIDUtils

介绍:UUID自定义工具类

作用:随机生成32位的字符串

 

3.6、MailUtils,MyDateConverter,PaymentUtil

介绍:分别邮件发送、日期格式转换、支付相关工具类

 

4、项目主要页面介绍(页面使用框架bootstrap)

商城主页面介绍:主要在WebContent/jsp下

1、  WebContent/index.jsp首页:通过跳转至IndexServlet中index方法,将商品按照日期和热门进行排序后,存入到request域中,转发到WebContent/jsp/index.jsp页面

2、  WebContent/jsp/index.jsp 商城首页

3、  WebContent/jsp/top.jsp和WebContent/jsp/foot.jsp由于商城所有页面中的顶部菜单导航栏和底部的页面是相同的,因此将其提取出来,采用<%@include file=”?”%>嵌入到其他页面中。

4、  WebContent/jsp/login.jsp 用户登录页面

5、  WebContent/jsp/register.jsp 用户注册页面

6、  WebContent/jsp/product_list.jsp 单个分类的商品信息页面

7、  WebContent/jsp/product_info.jsp 单个商品信息页面

8、  WebContent/jsp/order_list.jsp 用户订单页面

9、  WebContent/jsp/order_info.jsp 用户单个订单详情页面

10、WebContent/jsp/cart.jsp用户购物车页面

11、WebContent/jsp/Model.jsp购物车页面中cart.jsp的模态框(用于用户登录)

12、WebContent/jsp/msg.jsp用于信息提示的页面

13、WebContent/jsp/submitpay.jsp支付信息的提交

 

商城后台页面介绍:主要在WebContent/admin

1、  WebContent/admin/index.jsp 后台主页面登入口

2、  WebContent/admin/home.jsp 后台主页面(使用frameset进行分割)

3、  WebContent/admin/(bottom.jsp,left.jsp,top.jsp) 后台主页面的构成

    WebContent/admin//category/所有页面 后台商品分类管理

5、  WebContent/admin/product/所有页面 后台商品信息管理

6、  WebContent/admin/order/所有页面 后台订单信息管理

 

5、项目后台结构说明 

web.servlet:Controller层 通过servlet接收参数

web.listener:监听器

web.filter:过滤器

com.utils:工具类

com.domain:javaBean类

com.service/com.serviceImpl:model层的service层 进行业务逻辑的处理

com.dao/com.daoImpl:model层的dao层 与数据库进行交互

 

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值