Javaweb学习笔记——(二十四)——————图书商城项目
    图书商城
     
     环境搭建
         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