图书商城

    

    环境搭建

        1.导入原型

            *用户模块

            *分类模块

            *图书模块

            *购物车模块

            *订单模块

2.功能分析

            *前台

                **用户模块

                    >注册

                    >激活

                    >登录

                    >退出

**分类模块

                    >查看所有分类

**图书模块

                    >查询所有图书

                    >按分类查询图书

                    >查询图书详细(按id查询)

**购物车模块

                    >添加购物车条目

                    >清空所有条目

                    >删除指定条目

                    >我的购物车(按用户查询购物车)

**订单模块

                    >生成订单

                    >我的订单(按用户查询订单)

                    >按id查询订单

                    >确认收货

                    >付款功能(只能跳转到银行页面)

                    >付款回调功能(由银行来调用我们这个方法,表示用户已经付款成功)

*后台:

                **管理员

                    >登录

**分类管理

                    >添加分类

                    >查看所有分类

                    >删除分类

                    >按id查询

                    >修改分类

**图书管理

                    >查询所有图书

                    >按id查询

                    >删除图书

                    >修改图书

                    >添加图书(上传图片)

**订单模块

                    >查询所有订单

                    >按状态查询订单

                    >发货

3.框架的搭建

            3.1导包

                *数据库

                    **mysql驱动

                    **c3p0(jar包和配置文件)

                    **dbutils

                    **itcast-tools

                        >commons-beanutils

                        >commons-logging

*javamail

                    **mail.jar

                    **activation.jar

*上传

                    **commons-fileupload

                    **commons-io

*ajax

                    json-lib

3.2创建pachage

                *根:com.changemax.bookstore

                    **user

                        >domain

                        >dao

                        >service

                        >web.servlet

**category

                        >domain

                        >dao

                        >service

                        >web.servlet

**book

                        >domain

                        >dao

                        >service

                        >web.servlet

**cart

                        >domain

                        >web.servlet

**order

                        >domain

                        >dao

                        >service

                        >web.servlet

3.3表

                *tb_user

                *category

                *book

                *orders

                *orderitem

用户模块

        1.用户模块的相关类创建

            *domain:User

            *dao:UserDao

            *service:UserDao

            *web.servlet:UserServlet

2.用户注册

            流程:/jsps/user/regist.jsp ->UserServlet#regist() ->msg.jsp

            页面:

                *regist.jsp

                    **表面页面,请求UserServlet#regist()方法

                    **参数:整个表单数据

                *msg.jsp

Servlet:

                *UserServlet#regist()

                    **一键封装表单数据到User form对象

                    **补全:uid、激活码

                    **输入校验

                        >保存错误信息到request

                        >保存当前表单数据(form)到request(回显);

                        >转发回到regist.jsp

                    **调用service的regist()方法,传递form过去

                        >如果跑出异常:保存错误信息(异常信息)、保存表单数据(回显)、转发到regist.jsp

                        >如果没有抛出异常:

                            ***发邮件(发件人、收件人、标题、内容),内容中包含超链接,超链接指向可完成激活的Servlet地址。链接中要有激活码参数

                            ***保存成功信息到request中。

                            ***转发到msg.jsp

            Service:

                *UserService#regist(User form)

                    **校验用户是否被注册,如果注册,抛出UserException

                    **校验邮箱是否被注册,如果注册,抛出UserExcetpion;

                    **把user插入到数据库中

Dao:

                *User findByUsername(String username):按用户名查询用户

                *User findByEmail(String email):按email查询用户

                *void add(User form):插入用户到数据库中

        

        3.用户激活

            流程:用户的邮件中->UserServlet#active()->msg.jsp

4.用户登录

            流程:/jsps/user/login.jsp -> UserServlet#login() -> index.jsp

5.用户退出

            流程:top.jsp -> UserServlet#quit() -> login.jsp

            quit():把session销毁

分类模块

        1.分类模块的相关类创建

            *com.changemax.bookstore.category

                **domain:Category

                **dao:CategoryDao

                **service:CategoryService

                **web.servlet:CategoryServlet

2.查询所有分类

            流程:main.jsp(<iframe>) -> CategoryService#findAll() -> left.jsp

图书模块

        1.创建相关类

            *com.changemax.bookstore.book

                **domain:Book

                **dao:BookDao

                **service:BookService

                **web.servlet:BookServlet

2.查询所有图书

            流程:left.jsp(全部分类) -> BookServlet#findAll() -> /jsps/book/list.jsp

3.按分类查询图书

            流程:left.jsp -> BookServlet#findByCategory() -> list.jsp

4.查询详细信息(加载)

            流程:list.jsp(点击某一本书) -> BookServlet#load() -> desc.jsp

Javaweb学习笔记——(二十四)——————图书商城项目的更多相关文章

  1. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  2. (C/C++学习笔记) 二十四. 知识补充

    二十四. 知识补充 ● 子类调用父类构造函数 ※ 为什么子类要调用父类的构造函数? 因为子类继承父类,会继承到父类中的数据,所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程. ...

  3. javaweb学习总结(二十四)——jsp传统标签开发

    一.标签技术的API 1.1.标签技术的API类继承关系 二.标签API简单介绍 2.1.JspTag接口 JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属 ...

  4. javaweb学习总结二十四(servlet经常用到的对象)

    一:ServletConfig对象 1:用来封装数据初始化参数,在服务器web.xml配置文件中可以使用<init-param>标签配置初始化参数. 2:实例演示 web.xml文件中配置 ...

  5. Java基础学习笔记二十四 MySQL安装图解

    .MYSQL的安装 1.打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe”. 2.选择安装类型,有“Typical(默认)”.“Compl ...

  6. Java学习笔记二十四:Java中的Object类

    Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...

  7. JavaWeb学习笔记(十四)—— 使用JDBC处理MySQL大数据

    一.什么是大数据 所谓大数据,就是大的字节数据,或大的字符数据.大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 ...

  8. JavaWeb学习记录(十四)——商城购物之字符串拼接实现最近浏览商品和购物车的功能

    一.字符串拼接的工具类 package blank.util; import java.util.Iterator;import java.util.Map;import java.util.Set; ...

  9. PHP学习笔记二十四【Get Set】

    <?php Class Person{ private $n1; private $n2; private $n3; //使用__set方法来管理所有的属性 public function __ ...

  10. Javaweb学习笔记——(十四)—————— 服务器端验证注册登入表单项目

    项目:https://download.csdn.net/download/qq_40223688/10463436 项目 功能: *注册 *登录--------------------------- ...

随机推荐

  1. 初学python列表

    首先我定义了一个列表 a = [2,3,3,5,6,7,9] 我想对列表a 的每个值都加一,哈,脑子里顿时闪过一道光 ①首先我想到的是用for 循环来进行加一,即以下代码 a = [2,3,3,5,6 ...

  2. LVS+Keepalived实现mysql的负载均衡

    1 初识LVS:Linux Virtual Server 1.1 LVS是什么       LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起 ...

  3. Django组件--分页器(有用)

    一.分页器对象 from django.core.paginator import Paginator,EmptyPage book_list = Book.objects.all() #假设有100 ...

  4. Linux安装python2.7

    一.Python安装 以Python-2.7.7为例,安装包:Python-2.7.7.tgz如无特殊说明,以下安装步骤都采用root用户执行 1. 解压Python-2.7.7.tgz tar -x ...

  5. c++11の死锁

    一.死锁的产生 两个mutex的时候,mutex1,mutex2 如果两把锁两个线程的顺序不一致,会造成相互等待释放资源,造成死锁 二.死锁的避免 1.是否需要两把以上的锁,如果不用两把锁,自然不会存 ...

  6. java 项目打jar包,用cmd运行,并且编写运行脚本

    项目是ideal编辑器的springboot项目的demo.打包就是在侧边栏,点击packge ,就会在target下生成jar包. 生成之后把 jar包放在一个文件夹中.新建一个txt文件,在txt ...

  7. VMware Workstation中安装linux系统(CentOS)超详细(部分转载)

    首先准备一下VMware虚拟机和linux镜像文件,链接如下: 对于32位windows机子安装的是10.0.7版本的VMware Workstation,链接: https://pan.baidu. ...

  8. SpringBoot前端模板

    Springboot支持thymeleaf.freemarker.JSP,但是官方不建议使用JSP,因为有些功能会受限制,这里介绍thymeleaf和freemarker. 一.thymeleaf模板 ...

  9. 使用VMware安装Ubuntu虚拟机,创建后开启显示黑屏的解决方法

    将使用的VMware-workstation-full-14.0.0.24051卸载改为使用VMware-workstation_full_12.1.1.6932. 安装VMware成功后,创建新的虚 ...

  10. Flask 快速使用 进阶—— (2)

    案例:可配置发送信息的系统 假如我们有这样的一个系统,可以发送短息,邮件和微信,后期可能还会增加一些平台,怎么才可以做到快速切换的去使用某种功能呢,在这里我会通过在配置文件中简单的配置就可以实现 在项 ...