SSH实战 · 唯唯乐购项目(上)
- 注册
- 前台JS校验
- 使用AJAX完成对用户名(邮箱)的异步校验
- 后台Struts2校验
- 验证码
- 发送激活邮件
- 将用户信息存入到数据库
- 激活
- 点击激活邮件中的链接完成激活
- 根据激活码,查询数据库中是否有该用户;
- 如果有则激活,否则不激活;
- 登录
- 输入用户名、密码、验证码(前台,后台数据校验)
- 用户名、密码都正确同时用户状态必须是激活状态
- 退出
- 销毁session。
- 查询一级分类
- 将一级分类存入session中(每个页面都一样的数据)
- 查询某个一级分类
- 查询所有一级分类,同时查询到该一级分类下的所有二级分类
- 查询该分类下所有的商品,带分页显示
- 查询热门商品
- 查询热门商品:限制查10个
- 查询最新商品
- 查询最新商品:限制查10个
- 查询某个分类商品
- 根据分类的ID进行查询商品
- 查询某个二级分类商品
- 根据二级分类的ID进行查询商品
- 查询某个商品信息
- 根据商品ID进行查询商品
- 添加到购物车
- 将商品添加到购物车
- 从购物车中移除商品
- 将商品从购物车中移除
- 清空购物车
- 将所有的商品信息从购物车中移除
- 生成订单
- 将购物车中的信息存入到数据库(生成订单)
- 清空购物车
- 为订单付款
- 在线支付功能
- 修改订单状态
- 修改订单信息(收货地址,联系方式,收货人等)
- 查询我的订单
- 根据用户ID查询订单
- 查询某个订单详情
- 根据订单ID查询订单
- 添加用户 · 后台只添加管理员用户
- 删除用户
- 查询用户
- 修改用户
- 添加一级分类
- 删除一级分类
- 级联删除一级分类下的所有二级分类
- 修改一级分类
- 级联修改一级分类下的所有二级分类
- 查询一级分类
- 分页查询
- 添加二级分类
- 选择所属的一级分类进行添加
- 删除二级分类
- 删除二级分类下的所有商品
- 修改二级分类
- 查询二级分类
- 分页查询
- 添加商品
- 选择商品所属二级分类进行添加
- 上传商品图片
- 修改商品
- 修改商品二级分类
- 修改商品图片
- 删除商品
- 查询商品
- 商品查询(带分页)
- 查询订单
- 查询所有订单(带分页)
- 异步加载所有订单
- 用户ID
- 用户名
- 密码
- 真实姓名
- 邮箱
- 细致
- 电话
- 用户状态:0--激活;1--未激活
- 激活码
- 一级分类ID
- 一级分类名称
- 二级分类ID
- 二级分类名称
- 一级分类ID(外键指向一级分类主键ID)
- 商品ID
- 商品名称
- 商品商城价格
- 商品描述
- 商品市场价格
- 商品描述
- 商品图片(路径)
- 二级分类ID(外键指向二级分类主键ID )
- 订单ID
- 订单时间
- 订单金额
- 订单状态
- 订单地址
- 订单电话
- 订单收货人
- 用户ID(外键指向用户表的主键ID)
- 主键ID
- 商品ID(指向)
- 订单ID()
- 数量
- 小计
- 用户名
- 密码
- 参考之前得SSH项目实战 · 项目环境搭建——http://www.cnblogs.com/panweiwei/p/6212609.html。
2. 引入前端页面 ---- 页面都放到WebRoot/WEB-INF下。
- 引入静态页面
- 将HTML静态页面都复制到WebRoot/WEB-INF/jsp目录下.
- 将JS、CSS文件分别复制到WebRoot/js、WebRoot/css目录下.
3. 访问首页
- 创建包的格式:
- 编写Action
- IndexAction
- 改造jsp和文件路径
- 将html静态页面改为jsp页面文件
- 将jsp中的css、js、图片路径改为绝对路径(${pageContext.request.contextPath} )
- 配置Action
- 配置applicationContext.xml
- 配置struts.xml
- 将页面中能共用的菜单、头部区域提出来(新建一个head.jsp)
- 在原来网页的头部处将head.jsp包入就好:
- 点击注册链接进行跳转(添加到一个Action中,从Action中完成页面转向)
- 修改注册的访问路径
- 编写Action
- 配置applicationContext.xml
- 配置struts.xml
- 修改register.jsp页面:
- 替换css、图片的路径
- 包含head.jsp。当然了,原页面中相应的内容删掉
- 用户注册校验
- 统一字段名的name、id(与数据库表中字段、实体类中的字段对应);
- 加 JS。
- AJAX异步校验:验证数据库中是否已存在输入的用户名
- 事件触发:onblur
- 编写AJAX代码:向action中提交:传递username参数
- 编写antion:
* 接收username:模型驱动接收
* 编写实体类:User;
* 映射文件:User.hbm.xml;
* 将实体类与映射文件配置到spring中。
- 编写DAO
* 继承HibernateDaoSupport;
- 在配置中注入sessionFactory
- 编写Service
* 注入UserDao;
* 配置事务管理;
- 在Action所在包下创建一个校验的xml
- 创建一个与Action类名-validation.xml(只针对register方法进行校验)
- UserAction-user_regist-validation.xml
- 在struts.xml中配置INPUT逻辑视图
- 在register.jsp页面先引入struts标签
- 在相应的位置回显错误提示信息。如密码验证提示如下:
- 用户注册
- 将数据保存到数据库
- 完善user对象
- 发送激活邮件
- 电子邮箱:邮件服务器上的一块空间;
邮件服务器:类比于web服务器(tomcat),有相应的服务器软件;
- 邮件协议:大公司发送和接收服务器分开,也可以都用一个服务器。
- 邮件发送的全过程:理论上需要联网,但是通过搭建在本地的服务器,可以在本地进行邮件的发送。
- 搭建邮箱服务器:
- 安装邮箱服务器(易邮邮箱服务器,就按默认的安装在C盘)
- 修改域名:工具-->服务器设置-->单域名改为:shop.com
- 注册几个内部账号:账号-->新建账号。密码设为55555
- 注册一个商城官方账号:service 密码:55555
- 安装邮件客户端软件(可以接发邮件):避免了网页版session的过期离线问题。
- 流行的有软件有:outlook(微软收费)、foxmail(免费,选用foxmail)
- 配置
- 编码实现邮件发送
- 用户激活
- 在邮箱客户端中点击激活链接:
- 根据链接中传递的激活码进行查询
- 用户登录
- 登录页面跳转链接
- 将html编写为login.jsp,并更换引用路径以及菜单头文件
- 修改页面上的登录链接为${pageContext.request.contextPath}/user_loginPage.action
- 编写Action中的方法
- struts.xml中配置页面转向
- 登录功能实现
- 添加login.jsp中的表单action
- 接收用户输入的用户名、密码——模型驱动会自动接收;
- 调用userService,进行查询——参数:用户名、密码、用户状态。
- 登录成功:跳转到首页,并将用户信息显示在首页。
- 登录失败:跳转回登录页面,并将错误信息显示在登录页面。
- 用户退出
- 给链接加action的路径,点击退出链接
- 销毁session
- 页面跳转
- 验证码
- 在com.weiwei.shopping.user下编写单独的验证码Action类;
- 在spring、struts配置文件中完成配置;
- 页面中需要的位置显示验证码
- 编写JS,点击刷新验证码
- 提交到action,在action中进行比较,表单输入的与session中的验证码不相等则相应请求不提交。
SSH实战 · 唯唯乐购项目(上)的更多相关文章
- SSH实战 · 唯唯乐购项目(中)
用户模块 三:一级分类的查询 创建一级分类表并导入基本数据 CREATE TABLE `category` ( `cid` int(11) NOT NULL AUTO_INCREMENT, ` ...
- SSH实战 · 唯唯乐购项目(下)
后台模块 一:后台用户模块 引入后台管理页面 创建adminuser表: CREATE TABLE `adminuser` ( `uid` int(11) NOT NULL AUTO_INCREM ...
- 配置github的SSH key及GitHub项目上传方式一——使用终端命令行
GitHub是一个开源的大仓库,我们经常从github上下载项目进行学习和研究,下面是一个完整的步骤——往GitHub上传一个新项目. 一.注册GitHub账号 1.注册GitHub账号,地址:htt ...
- Spark入门实战系列--6.SparkSQL(上)--SparkSQL简介
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .SparkSQL的发展历程 1.1 Hive and Shark SparkSQL的前身是 ...
- 应用程序框架实战三十八:项目示例VS解决方案的创建(一)
进行项目开发的第一步,是创建出适合自己团队习惯的VS解决方案,虽然我已经提供了项目示例,但毕竟是我创建的,你直接使用可能并不合适,另外你如果尝试模仿重新创建该示例,中间可能碰到各种障碍,特别是项目间的 ...
- 将本地项目上传到Github
将本地项目上传到Github 转载请注明出自天外归云的博客. 前提 已经下载了Git到本地. 创建Repository 首先登陆我的Github页面,在Repositories中New一个并起Repo ...
- iTunes Store:隐藏和取消隐藏已购项目
使用 Mac 或 PC 上的 iTunes 来隐藏或取消隐藏已购项目. 如何隐藏已购项目 在 Mac 或 PC 上打开 iTunes. 从 Store 菜单中,选取商店 > 登录,然后输入您的 ...
- 【转】【Egit】如何将eclipse中的项目上传至Git
1.下载egit插件 打开Eclipse,git需要eclipse授权,通过网页是无法下载egit的安装包的.在菜单栏依次打开eclipse→help→install new software→add ...
- Git本地项目上传 & SourceTree & GitHub 简单使用
Git(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理 ...
随机推荐
- MIP改造常见问题二十问
在MIP推出后,我们收到了很多站长的疑问和顾虑.我们将所有疑问和顾虑归纳为以下二十个问题,希望对大家理解 MIP 有帮助. 1.MIP 化后对其他搜索引擎抓取收录以及 SEO 的影响如何? 答:在原页 ...
- Java 征途:行者的地图
前段时间应因缘梳理了下自己的 Java 知识体系, 成文一篇望能帮到即将走进或正在 Java 世界跋涉的程序员们. 第一张,基础图 大约在 2003 年我开始知道 Java 的(当时还在用 Delph ...
- Linux虚拟机的安装(使用Centos6.3)
1.什么是虚拟机? 虚拟机指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统 2.安装Linux虚拟机前要做的准备 2.1:一台windows环境的pc 2.2:下载VM ...
- JdbcTemplate+PageImpl实现多表分页查询
一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static ...
- TypeScript Vs2013 下提示Can not compile modules unless '--module' flag is provided
VS在开发TypeScript程序时候,如果import了模块有的时候会有如下提示: 这种情况下,只需要对当前TypeScript项目生成设置为AMD规范即可!
- 【微信小程序开发】之如何获取免费ssl证书【图文步骤】
微信小程序要求所有网络请求都走ssl加密,因此我们开发服务端接口需要配置为https 这篇文章介绍一下如何 在 startssl 申请一个免费的ca证书. 1. 打开网站 https://www.s ...
- Spring异步功能
使用 Spring 的异步功能时,实质是使用的 Servlet3 及以上版本的异步功能. Spring 的异步处理机制需要在 web.xml 中全部的 servlet 和 filter 处配置 < ...
- Atitit.如何建立研发体系
Atitit.如何建立研发体系 组织,流程,prj..Mana oppm 发管理是一个完整的管理体系,从结构上来讲,它主要由四个方面的内容构架而成:组织结构与岗位设置 管理流程与工作流程..项目及管 ...
- 敏捷测试模式之Scrum及其实践
一. 敏捷开发模式简介 敏捷是近年来软件研发领域很火的一个词,采用敏捷开发模式的研发团队是越来越多了,尤其是敏捷模式中的Scrum更是佼佼者大行其道,这表明敏捷模式确有其好处,能给企业带来效率的 ...
- Oracle 11g必须开启的服务及服务详细介绍
转自:http://www.educity.cn/shujuku/404120.html 成功安装Oracle 11g数据库后,你会发现自己电脑运行速度会变慢,配置较低的电脑甚至出现非常卡的状况,通 ...