一.用户激活
- 准备工作
用户点击了邮箱中的激活链接就,向服务端发送method=active&code= 5230j5j2l345j2 - UserServlet _ _ _ >active
获取到激活码
调用service功能,对帐户进行激活操作
进行信息提示 - service _ dao
- /jsp/login.jsp
获取到注册成功的提示信息 ${msg} - info.jsp已实现,不需再设置内容
二.用户登录
- 准备工作
实现用户登录页面跳转
*_ /jsp/index.jsp 修改登录链接
<a href="${pageContext.request.contextPath}/UserServlet?method=loginUI">登录</a>
*_ UserServlet_ _ _>loginUI
return "/jsp/login.jsp";
/jsp/login.jsp中
设置form标签action , method
设置表单下input标签的name属性 - User_userLogin
*_获取数据
*_调用业务层功能
*_成功,session存放用户信息,重定向到首页
*_失败,request放入失败信息,转发到登录页面 - service _ dao
PS: service:自定义异常向servlet传递两种数据(密码不存在,用户未激活) - /jsp/index.jsp 获取到了用户信息
三.用户退出
- 准备工作,
/jsp/index.jsp 修改链接
<a href="${pageContext.request.contextPath}/UserServlet?method=logOut">退出</a> - UserServlet_ __>logOut
清除session
重新定向到首页
return null;
四.抽取公共页面
- 复制info.jsp____>header.jsp
- 打开/jsp/index.jsp, 将页面部分的导航和菜单区域复制到header.jsp
在header.jsp通过taglib导入标签库 - 打开其他的所有页面进行替换
五.首页分类查询
- webContent/index.jsp中
<jsp:forward page="/IndexServlet"></jsp:forward> - 创建分类模块的相关程序
CategoryServlet CategoryService CategoryServiceImp CategoryDao CategoryDaoImp Category - 创建IndexServlet
调用 业务层的功能: 获取全部分类信息,返回集合
将返回的集合放入request
转发到真实的首页 /jsp/index.jsp - 实现CategoryService CategoryDao
- 弊端: 当访问首页是可以看到全部分类信息,但是如果访问其它界面,看不到分类信息
六.分类查询优化 ajax
- /jsp/header.jsp
当页面加载完毕之后,向服务端发起Ajax请求,服务端经过处理
将所有分类信息以JSON格式的数据返回,客户端获取返回的所有分类
绑定在页面的显示分类区域
页面底部
$.post(url,{},function(data){},"json"); - CategoryServlet___>getAllCats
//调用业务层获取全部分类
//将全部分类转换成json格式的数据
//将全部分类信息响应到客户端 - 调试
观察本次请求,响应网络传输情况,
目的: 排除两端错误 - 实现/jsp/header.jsp中AJAX代码的剩余部分
- 弊端: 如果用户频繁的访问包含分类信息的页面,每次都要去DB中获取分类信息,影响性能
七.分类查询优化 redis
- 准备工作
导入jar包
导入JedisUtils工具类(修改参数127.0.0.1)
启动windows版本的redis - 实现CategoryServlet___>findAllCats
在redis中获取全部分类信息
如果无法获取分类信息
_____查询DB中的分类,转换成JSON格式字符串
_____将JSON格式字符串向redis缓存一份,之后将JSON格式数据响应到客户端
如果可以获取到分类信息
_____直接响应即可
八.首页热门商品,最新商品查询
- SQL语句编写
#查询商品表中最新的9件商品信息
SELECT * FROM product WHERE pflag=0 ORDER BY pdate DESC LIMIT 0,9 ;
#查询商品表中最热,最新的9件商品信息
SELECT * FROM product WHERE pflag=0 AND is_hot=1 ORDER BY pdate DESC LIMIT 0,9 ; - IndexServlet___>execute
//调用业务层查询最新商品,查询最热商品,返回两个集合
//将2个集合放入到request
//转发到真实的首页 - 建立商品模块相关程序
ProductServlet ProductServlce ProductServlceImp ProductDao ProductDaoImp Product - 调用service dao
- /jsp/index.jsp 获取最新/最热9件商品信息