梁建全
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
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 1、ServletRequestAware这个接口中的方法是setServletRequest(HttpServletRequest request) 可以获得这次请求的request对象
2、RequestAware这个接口中的方法是setRequest(Map request) 它只能够获得这次请求中包含request对象中全部attributes的一个map对象