当当网-day1

梁建全

liangjq@tarena.com.cn

-------------第一天--------------

1.项目需求简介

  1)用户管理模块(3天)user

    用户登录,登出,注册功能

  2)产品浏览模块(2天)main

    主界面,类别浏览界面,产品详细界面

  3)购物车模块(1.5天)cart

    购买,删除,恢复,变更数量,商品列表,金额统计等

  4)生成订单模块(1.5天)order

    订单确认,填写送货地址,成功提示

2.项目技术架构

  服务器端:Struts2+Hibernate

  客户端:javascript,ajax(jQuery脚本库)

  系统采用MVC结构,分层思想,采用4层。

   表现层(V):JSP组件(jQuery)

   控制层(C):Struts2Filter控制器,Action(Struts2框架)

   业务层(M):Bean组件

   数据访问层(M):DAO组件(Hibernate框架)

3.数据库设计

  学会看E-R模型图,通过该图可以了解整个数据的结构。有哪些表构成,表与表之间是否有关联条件。

 1)d_user 用户信息表

     存储了用户的注册信息

 2)d_receive_address收货地址表

     存储了用户使用过的收货地址信息

 3)d_category类别信息表

     存储了商品的类别信息

 4)d_product商品信息表

    存储了商品的基本信息

 5)d_book图书信息表

    存储了图书特有的信息

 6)d_category_product类别和产品对象关系表

    存储了哪个类别包含了哪些商品的对应关系

 7)d_order订单基本信息表

    存储了订单的基本信息

 8)d_item订单明细表

    存储了一个订单所购买的商品信息

 --------导入dangdang.sql命令--------

set names utf8;

source D:\\dangdang.sql;(指定本机sql文件位置)

4.项目工程的结构

  1)开发包

   Struts2(2.1.8),

   Hibernate(3.2),

    数据库驱动包

 2)src

   org.tarena.dang.action //控制层

   org.tarena.dang.action.user

   org.tarena.dang.action.main

   org.tarena.dang.action.cart

   org.tarena.dang.action.order

   org.tarena.dang.service //业务层

   org.tarena.dang.dao //数据访问层

   org.tarena.dang.pojo //实体类

   org.tarena.dang.util //工具类

   org.tarena.dang.common //共通

  3)配置文件

   a.struts2配置

     --web.xml(控制器配置)

     --src/struts.xml(采用<include引入>)

      struts-user.xml //用户管理相关配置

      struts-main.xml

      struts-order.xml

      struts-cart.xml

   b.Hibernate配置

     --src/hibernate.cfg.xml

     --hbm.xml映射文件

 4)WebRoot

   a. JSP

      /user/:用户管理模块jsp

      /main/:产品浏览模块jsp

      /cart/:购物车模块jsp

      /order/:订单模块jsp

   b. 图片

      /images/:页面需要的图片

      /productImages/:图书图片

   c. css样式

      /css/:样式文件

   d. js脚本

      /js/:jQuery脚本库

==========功能开发============

5.用户管理模块--注册功能

  1)需求描述

    用户输入表单信息,通过表单格式检查,将用户信息插入到数据表d_user。

   a.表单格式检查(js+ajax)

   Email地址:非空,格式,唯一性(ajax)

    昵称:非空,格式(4-20,中文算2个)

    密码:非空,格式(6-20)

    确认密码:非空,与密码一致

    验证码:非空,正确性(ajax)

   b.服务器处理

    生成一个邮箱验证码

    给用户邮箱发送验证码信息

    将表单信息写入d_user表

  2)熟悉功能涉及的d_user表

    了解d_user表结构,各个字段含义

  3)设计请求处理流程

 register.action-->RegisterAction

-->UserDAO-->d_user-->verify_form.jsp

  4)编写UserDAO接口和实现类

  5)编写RegisterAction类

  6)在struts-user.xml中配置RegisterAction组件

  7)编辑JSP,发出请求或使用标签显示数据

  8)测试

   

6.用户管理模块--邮箱验证

  1)需求描述

   用户输入验证码,通过检查发送服务器处理,如果正确将进入注册成功页面。如果不正确返回验证码验证页面,提示错误信息。

   a.表单数据检查

     验证码:非空

   b.服务器处理

     检查验证码是否与d_user中的email_verify_code一致。

     如果验证码正确,将is_email_verify修改成"Y",进入register_ok.jsp

     如果不正确,返回verify_form.jsp,提示“验证码错误”

 

7.用户管理模块--登录功能

  1)需求描述

    用户输入email和密码后,经过格式检查,提交服务器处理,判断email和密码正确性。

   a.表单数据格式检查

    Email地址:非空,格式

     密码:非空

   b.服务器端处理

     检查Email和密码是否匹配(错误返回login_form.jsp)

     检查邮箱是否经过验证(未通过验证,进入verify_form.jsp)

     登陆成功,需要更新last_login_time和last_login_ip字段值,进入/main/main.jsp

 

7.用户管理模块--登录状态提示

  1)需求描述

   在head.jsp中,根据用户是否登录显示不同状态。

   如果登录,显示“你好XXX,欢迎光临当当网【登出】”

   如果未登录,显示“你好,欢迎光临当当网【登录】【注册】”

 

 

 

 

1.0   加命名空间放置请求重名

2.0   编程就像画画一样,先画骨架,在上色彩。

3.0 1ServletRequestAware这个接口中的方法是setServletRequest(HttpServletRequest request) 可以获得这次请求的request对象
2
RequestAware这个接口中的方法是setRequest(Map request) 它只能够获得这次请求中包含request对象中全部attributes的一个map对象

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值