1.项目介绍
   典型电子商务系统(在线购物平台)。模拟了当当系统部分功能。
2.功能需求
    1)用户管理模块(3天)user
         实现登录、注册功能
    2)产品浏览模块(2天)main
         实现主界面和类别浏览功能
    3)购物车模块(1.5天)cart
         实现购买、变更数量、删除等功能
    4)生成订单模块(1.5天)order
         订单确认、填写送货地址、生成订单功能
3.技术应用
   1)技术架构
        Struts2,JDBC(连接池),jQuery,Ajax
   2)设计思想
       MVC和分层设计思想
       a.显示层:JSP组件(jQuery,Ajax)
       b.控制层:Struts2控制器组件、Action组件
       c.业务层:Bean组件
       d.数据访问层:DAO组件(JDBC)

4.数据库设计
    1)数据库导入
         create database dangdang;      //创建库
         use dangdang;       //进入dangdang库
         set names utf8;    //设置连接和发送SQL编码
         source 路径/dangdang.sql; //导入sql文件
    2)数据表功能
         a.d_user(用户信息表)
            存储了用户信息,涉及登录和注册功能
         b.d_receive_address(收货地址信息表)
            存储了收货地址信息,涉及填写送货地址功能
         c.d_category(类别信息表)
             存储了图书的类别信息,涉及主界面左侧类别菜单功能
         d.d_book(图书信息表)
             存储了图书的特有信息,涉及产品浏览等功能
         e.d_product(产品信息表)
             存储了各类型产品的共通信息字段。
         f.d_category_product(类别和产品对应关系表)
             存储了类别和产品之间包含关系,涉及产品浏览功能
         g. d_order(订单信息表)
             存储了订单信息,涉及创建订单功能
         h. d_item(订单明细表)
             存储了订单中所购买的商品信息,涉及创建订单功能。

5. 搭建工程结构
    1)引入需要的开发包
          struts2开发包
          jdbc开发包
          dbcp连接池开发包
    2)src文件结构
         org.tarena.dang.action  :控制层
         org.tarena.dang.action.user :用户模块的action
         org.tarena.dang.action.main  :产品浏览的action
         org.tarena.dang.action.order :订单的action
         org.tarena.dang.action.cart :购物车的action
         org.tarena.dang.service :业务层
         org.tarena.dang.dao :数据访问层
         org.tarena.dang.entity :实体类
         org.tarena.dang.util :工具类
         org.tarena.dang.interceptor :拦截器
    3)struts配置文件结构
         web.xml(配置Filter控制器)
         struts.xml (struts主配置文件)
         struts-user.xml(用户模块配置文件)
         struts-main.xml(浏览模块配置文件)
         struts-order.xml(订单模块配置文件)
         struts-cart.xml(购物车模块配置文件)

4)WebRoot文件结构
         /user/* :用户管理的JSP
         /cart/* :购物车的JSP
         /order/* :订单的JSP
         /main/* :产品浏览的JSP
         /common/* :页眉、页脚等共同JSP
         /js/*      : 放置js脚本文件
         /css/* :放置css样式文件
         /images/* :放置页面图片文件
         /productImages/* :放置产品图片

-----------------连接池的优点-----------------
a.可以管理Connection对象,并且将Connection数量控制在一个安全范围内。提高数据库的访问安全性。
b.连接池中的Connection对象与数据库保持连接状态,避免频繁的建立和销毁连接。

============用户管理模块==============
1.注册需求
   1)表单验证(采用js+Ajax)
         邮箱:非空、格式、唯一性(ajax)
         昵称:非空、格式
         密码:非空、格式
         确认密码:非空、与密码一致
         验证码:非空、正确性(ajax)

2)将表单信息写入数据表d_user
         编写实体类、DAO、Action
   3)给用户邮箱发送验证码
         引入commons-email.jar,email.jar
         参考EmailUtil工具类代码
   4)进入邮箱验证页面verify_form.jsp

2.邮箱验证
   1)表单验证
       验证码:非空、正确性(ajax)
      正确后跳转到成功提示界面:window.location = "register_ok.jsp";
   2)Action逻辑
      a.利用验证码去d_user检查
      b.如果正确,将d_user的is_email_verify字段更新成Y;不正确在verify_form.jsp提示“验证失败”
      c.跳转到register_ok.jsp
3.用户登录
    1)表单验证
         邮箱:非空、格式
         密码:非空
    2)Action逻辑
      a.检测Email和密码是否正确,失败回到login_form.jsp提示
      b.检测is_email_verify邮箱是否通过验证,未通过进入verify_form.jsp
      c.更新最后一次登录时间last_login_time和IP地址last_login_ip。
      d.将用户信息放入session。
      e.都正确进入/main/main.jsp
4.main.jsp页面的页眉部分,显示用户是否登录的状态
   如果用户已登录,显示"欢迎XXX,【登出】"
   如果用户未登录,显示"【登录】【注册】"

数据库 模型 

首页展示:

java web 程序---购物车项目内容:的更多相关文章

  1. java web 程序---购物车选商品,购买,付款

    思路:1.有一个单选按钮,让我们选择商品   2.购买的物品及 数量清算 3.付款 我的界面: home.jsp <body> <center> 选择您购买的商品 <br ...

  2. Java Web程序工作原理

    Web开发的最重要的基本功能是HTTP:Java Web开发的最重要的基本功是Servlet Specification.HTTP和Servlet Specitication对于Web Server和 ...

  3. 在Java Web程序中使用监听器可以通过以下两种方法

    之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...

  4. 在Java Web程序中使用Hibernate

    在Java Web程序中使用Hibernate与普通Java程序一样.本文中将使用Servlet和JSP结合Hibernate实现数据库表的增删改查操作. Web程序中,hibernate.cfg.x ...

  5. java Web程序使用wro4j合并、压缩js、css等静态资源

    在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...

  6. @Java web程序员,在保留现场,服务不重启的情况下,执行我们的调试代码(JSP 方式)

    一.前言 类加载器实战系列的第六篇(悄悄跟你说,这篇比较水),前面5篇在这里: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得, ...

  7. linux tomcat部署含有matlab画图打包的java web程序

    首先说下问题:matlab可以把相关算法代码打包成jar文件共java调用,本例使用的jar文件的作用是画图并保存,然后部署在linux的tomcat中进行发布.这里出现了一个问题,具体如下:linu ...

  8. Spring MVC + Spring + Mybitis开发Java Web程序基础

    Spring MVC + Spring + Mybitis是除了SSH外的另外一种常见的web框架组合. Java web开发和普通的Java应用程序开发是不太一样的,下面是一个Java web开发在 ...

  9. 新浪云部署java web程序 注意事项

    在新浪云新手指南里有部署java的示例,但是对一个新手来说难免会有一些地方犯错,折腾了好长时间才把自己的java web部署到了新浪云.这里主要写一些我遇到的问题与第一次使用新浪云的朋友分享一下. 首 ...

随机推荐

  1. 51nod 1289 大鱼吃小鱼

    #include<bits/stdc++.h> using namespace std; ; int a[maxn],b[maxn]; stack<int>s; int mai ...

  2. [kata](5kyu) 约瑟夫战死排序(排列)

    之前一直不懂,今天百度了下,发下kyu是级别的意思,dan是段的意思,级别数值越小越强,段数数值越大越强. 原题  https://www.codewars.com/kata/josephus-per ...

  3. [转] sql server 跨数据库调用存储过程

    A库存储过程: create PROCEDURE [dbo].[spAAAForTest] ( ) =null , ) =null ) AS BEGIN select N'A' AS a , N'B' ...

  4. Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

    Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博 ...

  5. c++运算符优先级表

    优先级 操作符 描述 例子 结合性 1 () [] -> . :: ++ -- 调节优先级的括号操作符 数组下标访问操作符 通过指向对象的指针访问成员的操作符 通过对象本身访问成员的操作符 作用 ...

  6. 108. Convert Sorted Array to Binary Search Tree 109. Convert Sorted List to Binary Search Tree -- 将有序数组或有序链表转成平衡二叉排序树

    108. Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascendin ...

  7. 018PHP基础知识——函数(一)

    <?php /** *函数:一部分可重复执行的代码段,多次执行一次编译 * 特点: * 1.减少程序运行的复杂性 * 2.提高程序的可靠性 * 3.提高软件的开发效率 * 4.提高程序的维护性 ...

  8. HDU 1241 Oil Deposits bfs 难度:0

    http://acm.hdu.edu.cn/showproblem.php?pid=1241 对每个还未访问的点bfs,到达的点都标为一块,最后统计有多少块即可 #include <cstdio ...

  9. bzoj4129

    题解: 树上+可修改莫队 莫队的每一块 可以用一个栈 每一次dfs个数>sqrt(n)(自己选的)的时候就可以跳出了 然后不要忘记分出来最后一块 代码: #include<bits/std ...

  10. win7下解压安装mysql的方法

    在win7下通过解压安装mysql 5.7一直出现启动不成功,网上找了好久终于找到一个解决方法,记录一下: 1.解压下载的压缩包 2.在解压目录下,将my-default.ini改名为my.ini, ...