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(