一、Estore电子商城 --- 知识的整合,加入一些真实开发中的思想 面向切面编程 利用注解加本地线程的方式实现事务管理
1.用户注册(验证码 前台js校验 激活邮件--javamail开发)
2.用户激活
3.用户登录(记住用户名 30天内自动登陆)
4.用户注销
5.添加商品(文件上传)
6.商品列表
7.商品详细信息页面
8.购物车 (session) 修改商品数量 删除所购买的商品 清空购物车
9.生成订单 (多表设计)
10.查看订单列表 (多表查询)
11.定单删除 (事务控制--面向切面编程 利用注解+本地线程变量的方式控制事务)
12.在线支付 (易宝+网银 -- 调用第三方接口实现特定的功能)
13.销售榜单下载 (组织称excel文件 下载)
14.权限控制
数据库:
用户表:编号 用户名 密码 昵称 邮箱 激活状态 激活码 角色 注册时间
商品表:编号 商品名称 商品种类 单价 库存数量 图片地址 描述信息
订单表:订单编号 下单时间 收货地址 订单金额 所属用户编号 支付状态
订单项表: 订单编号 商品编号 购买数量
用户 1 -- * 订单
订单 * -- * 商品
create database estore;
用户:
create user estore identified by ‘estore‘;
授权:
grant all on estore.* to estore;
use estore;
create table users (
id int primary key auto_increment,
username varchar(40),
password varchar(100),
nickname varchar(40),
email varchar(100),
role varchar(100) ,
state int ,
activecode varchar(100),
updatetime timestamp
);
create table products(
id varchar(100) primary key ,
name varchar(40),
price double,
category varchar(40),
pnum int ,
imgurl varchar(100),
description varchar(255)
);
create table orders(
id varchar(100) primary key,
money double,
receiverinfo varchar(255),
paystate int,
ordertime timestamp,
user_id int ,
foreign key(user_id) references users(id)
);
create table orderitem(
order_id varchar(100),
product_id varchar(100),
buynum int ,
primary key(order_id,product_id), #联合主键,两列的值加在一起作为这张表的主键使用
foreign key(order_id) references orders(id),
foreign key(product_id) references products(id)
);
javaee经典三层架构
com.itheima.web
.service
.dao
.domain
.exception
.util
.factory
.test
.filter
.listener
junit
jstl
beanutils
mysql驱动
c3p0
dbutils
fileupload
config.properties
c3p0-config.xml
配置虚拟主机:
在tomcat的conf/server.xml中配置:
<Host name="www.estore.com" appBase="E:\resource\resource\20140212\Estore">
<Context path="" docBase="E:\resource\resource\20140212\Estore\WebRoot"/>
</Host>
将工程目录配置虚拟主机目录,其中的WebRoot目录配置为缺省虚拟主机
修改hosts文件使www.estore.com指向本机
通用工厂类实现解耦
全站乱码过滤器
工具类
javabean
*权限管理器
===================
1.用户注册(邮件发送):
index.jsp :
根据用户登录状态提示不同消息,如果没有登录,欢迎光临,游客登录 注册如果登录过 提示 欢迎回来 xx,注销
regist.jsp:
提供注册用 的表单,允许输入用户的基本信息,提交(验证码 js校验)
RegistServlet:
检查验证码,如果不正确提示
封装数据到bean 校验数据
调用Service中的方法注册用户
重定向到主页
UserService:
注册用户的方法,检查用户名是否已经存在 注册用户 发送激活邮件
UserDao:
根据用户名查找用户
添加客户
2.激活用户 -- 点击激活邮件中的连接,应该将用户的激活状态从0 改为 1
ActiveServlet:获取激活码 调用Service中激活用户的方法 重定向到主页
UserService:提供激活用户的方法 根据激活码找到用户 如果找不到用户 提示 , 找到用户但是用户已经激活过,提示 不要重复激活, 如果没激活过,检查是否超过24小时,如果超过了,提示激活码超时,要求重新注册,删除该条用户
UserDao: 根据激活码找用户 根据用户id删除用户 更改用户的激活状态
3.用户登录(记住用户名 30天内自动登陆)
index.jsp <登录>
login.jsp 提供登录用户的表单,允许用户输入用户名 密码
LoginServlet 获取用户名 密码 调用Service中根据用户名密码查找用户的方法,找不到 提示,找到则校验用户是否已经激活,如果没激活提示,激活过,则登录用户返回主页
UserService 根据用户名密码查找用户
UserDao 根据用户名密码查找用户的方法
*记住用户名 -- 用js解码URL编码
*30天内自动登录 -- 配置Cookie和过滤器实现自动登陆
4.用户注销
杀死session