• 视频+资料+笔记【链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs】
  • JavaWeb图书管理系统【bookEstore文档】
  • JavaWeb图书管理系统【源码 + 效果展示】
  1. JavaWeb图书管理系统day01【2014.09.27】
  2. JavaWeb图书管理系统day02【2014.09.28】
  3. JavaWeb图书管理系统day03【2014.09.29】

目录

公开课安排

一、功能分析与设计

数据表之间的关系

导入sql文件

设置域名(虚拟主机配置)

二、注册与登录操作

三、添加商品操作

四、显示商品信息


公开课安排

第一天

  1. 功能分析与设计
  2. 注册与登录操作
  3. 添加商品操作
  4. 显示商品信息

第二天

  1. 查看商品详细信息
  2. 添加商品到购物车
  3. 显示购物车商品
  4. 购物车删除与修改操作

第三天

  1. 生成订单
  2. 查看订单
  3. 订单的取消与支付
  4. 权限控制

一、功能分析与设计

数据表之间的关系

订单与用户之间存在关系:1 对 多  
        要在订单表中生成一个外键来描述关系。
        
订单项:描述的商品与订单之间的关系
        多对多关系
        
需要一个中间表(orderitem)来描述它们的关系

导入sql文件

创建数据库后,进入数据库,通过 source导入sql文件:

   

设置域名(虚拟主机配置)

关于在浏览器上直接输入  http://www.bookEstore.com 就可以访问工程的问题。
        
1.在tomcat/conf/server.xml文件中,配置一个虚拟主机
            <Host name="www.bookEstore.com"  appBase="D:\j2eeWorkspaces\bookEstore"
                unpackWARs="true" autoDeploy="true">

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log." suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
                 
                <Context path="" docBase="D:\j2eeWorkspaces\bookEstore\WebRoot"/>  
                   
          </Host>
          
2.需要在C:\Windows\System32\drivers\etc路径下,查找一个配置文件hosts
            在这个文件中配置
            127.0.0.1       www.bookEstore.com
            
            
3.可以在server.xml文件中,配置:
            <Engine name="Catalina" defaultHost="www.bookEstore.com">

二、注册与登录操作

1.注册
            1.注册功能演示
            2.代码实现
                regist.jsp页面------>UserServlet----->UserDao
                
                UserServlet中:
                    1.获取验证码,判断它是否正确,如果正确,向下执行.
                      如果不正确,跳转到regist.jsp页面,显示错误信息
                      
                    2.将所有请求参数封装到User对象中,在User类中创建一个validateRegist方法,
                    这个方法会对请求参数进行校验,将错误信息封装到一个Map集合,在Servlet中
                    判断集合长度是否>0,这样就可以判断是否有错误信息,如果有,跳转到regist.jsp显示错误信息.
                    
                    3.调用UserService去完成注册操作  调用regist方法,传递User参数
                        
                    4.在regist方法中做了两件事情
                        1.调用UserDao完成注册操作
                        2.给注册的用户发送了一封激活邮件
                        
                        
                关于md5加密:
                    在mysql数据库中通过  md5(字段);
                        update users set password=md5(password);
                        
                    在java中可以通过代码实现
                        MessageDigest.getInstance("md5")
                        
            
2.登录操作
            index.jsp---->page.jsp页面 有登录窗口
            
            会有登录窗口,提交时会访问UserServlet,会带一个请求参数  method=login
            在UserServlet中就可以判断当前操作是登录操作
            就会调用UserServlet中的login方法
            
            
            UserServlet---UserService----->UserDao
                
                1.userServlet中收集了用户名与密码
                2.UserService中调用UserDao中查找用户操作  findUserByUserNameAndPassword
                3.在UserService中判断了一下得到的User对象是否为null,如果为null,直接抛出一个自定义异常.
                4.如果查找到了用户,但是用户未激活,那么也不能登录成功,抛出了一个自定义异常.
                5.在UserServlet中捕获自定义异常,在page.jsp页面显示错误信息.
                6.在UserServlet中判断用户不为空,就将User存储到session中,并跳转到首页index.jsp,
                  自动跳转到page.jsp页面。
                  
            
            1.记住用户名
                当用户登录成功后,并且勾选了记住用户名操作,我们将用户的username存储到cookie中,
                持久化存储,并携带到浏览器端.
                在页面上通过el表达式获取username显示出来.
                
                在cookie中是不能存储中文,那么要是用户名是中文,我们可以存储username的utf-8码.
                在页面上,通过js将utf-8码解码.
                
            2.自动登录操作
                当用户登录成功后,并且勾选自动登录操作,我们将username,password都存储到cookie中,
                持久化存储,并携带到浏览器端.
                
                当下一次在访问时,我们可以通过Filter来拦截我们请求,判断cookie中是否有我们存储username,
                passowrd的这个cookie
                
                注意:自动登录时,有以下情况是不需要进行自动登录的.
                    1.用户已经登录
                    2.用户访问的路径是  login  regist这样的操作。
                    
                    
            3.注销操作
                我们用户登录成功后,会将用户存储到session中。
                注销操作就是将session销毁就可以以。
                session.invalidate()方法.
                
                点击注销访问UserServlet?method=logout

三、添加商品操作

3.关于商品的添加
            添加商品操作,其实是一个文件上传操作。添加商品时,需要添加一个商品图片,我们使用文件上传。
            commons-fileupload
            
            浏览器:
                1.method=post
                2.encType="multipart/form-data"
                3.<input type="file" name="f">组件
                
            点击添加图书链接,会访问 addProduct.jsp页面    
            
            AddProductServlet这个servlet中有两个工作:
                1.完成书箱图片的保存(上传操作)
                2.将信息存储到数据库

创建了一个Map<String,String[]>它用于封装所有请求参数
            通过BeanUtils.populate方法将请求参数直接封装到Product类中。

可以调用ProductService中的添加图书的方法,完成图书添加操作

当图片添加成功后,我们会跳转到index.jsp页面。

四、显示商品信息

4.关于查询图书操作
            
            1.查询全部
                index.jsp页面直接跳转到ProductServlet中
                执行findAll操作,也就是查询出全部信息
                
                调用ProductService----ProductDao完成查询操作,得到所有商品信息List<Product>
                
                转发到page.jsp页面,在page.jsp页面展示所有商品信息.
                
            2.根据id查询
                点击“抢购书籍”,会访问ProductServlet,
                product?method=findById&id=xxx
                会将这本书籍的id也携带到服务器端.
                
                会调用ProductService的findByid方法,根据id查找书籍,也就是得到一个Product对象。
                
                查找到商品后,跳转到productInfo.jsp页面,展示商品信息。
                
                上传的所有图片 大小不确定的,怎样保证显示商品时,它的大小?
                    
                通过一个工具类可以保证当前的商品的图片大小一致。
                
                PicUtils putils = new PicUtils(this.getServletContext().getRealPath(product.getImgurl()));
                putils.resize(200, 200);
                
                当添加商品时,会生成商品图片的一个缩略图,以方便我们在页面上显示。
                 
                在Product类中提供了一个getImgurl_s方法,这个方法,会根据商品图片的路径,获取到缩略图片的路径,
                我们就可以直接在页面上通过el表达式,获取缩略图的路径,显示出这个缩略图。

JavaWeb图书管理系统day01相关推荐

  1. JavaWeb图书管理系统day03

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

  2. JavaWeb图书管理系统day02

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

  3. Javaweb图书管理系统t

    JavaWeb图书管理系统 一.创建数据库bookdb,导入数据库文件在这里插入代码片 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ------- ...

  4. JavaWeb图书管理系统 图书借阅系统项目源码附带视频部署演示教程

    一.项目介绍 更新记录 2022.05.29 修复Java代码,添加过滤器未实现的方法 解决css,js样式失效,引入改为本地引入 重构项目,一个项目分两版本,一个idea版本一个eclipse版本 ...

  5. javaweb 图书管理系统完整代码_群晖 + Docker + Calibre-Web 搭建电子书管理系统

    自从有了群晖生活方便了很多,想看的书也越来越多, 给管理带来了挑战,想着有没有什么高大上一点的系统能帮我管理这些电子书籍,就像Ds Video一样,界面养眼的同时还能激发我看书的欲望. 我在百度用各种 ...

  6. JavaWeb图书管理系统

    目录 1.设计任务与目的 2.设计思路 3.概要设计 3.1系统结构图设计 3.2开发工具与运行环境 4.详细设计 4.1系统用户用例图 4.2用户登录用例图 4.3业务流程图 4.4数据流程图 4. ...

  7. JavaWeb 图书管理系统(数据库综合实验)

    <数据库系统综合实验>设计报告 分工我负责了图书管理系统中整个数据库的设计与实现,编写与整理了数据库相关方面的文档.梳理了概念设计,对于实体,实体对应的属性,各实体间的关联,E-R(实体联 ...

  8. java工作日报管理系统_GitHub - LovebuildJ/book-manager: JavaWeb图书管理系统,简单易用功能强大,可拓展性高,集成主流框架...

    book-manager 介绍 图书管理系统 请勿忽略更新日志, 会有详细的版本更新说明! 软件截图 在线API接口文档 登录 首页轮播 图书列表 图书上架 图书编辑 图书删除 图书借阅 图书检索 图 ...

  9. 基于eclipse开发软件的Javaweb图书管理系统【源代码】及部分软件

    第一步 下载JDK 1.下载网址:所需JDK网址 根据自己的操作系统选择,x86代表32位,x64代表64位.点击相应的jdk下载.(本机系统是Windows 64位的,选择.exe) 2.百度网盘下 ...

最新文章

  1. 用计算机处理信息可以分为四个过程,大学计算机基础期末考试样题3
  2. python绘制三维散点图-Python散点图与三维图
  3. Vue3里的setup中使用vuex
  4. 群辉发布RackStation系列机型——RS3621RPxs、RS3621xs+与RS4021xs+
  5. Sublime Text 2安装汉化破解、插件包安装教程
  6. python之argmax
  7. Web1.0、Web2.0、Web3.0的主要区别
  8. Python弹球游戏(tkinter模块编写)
  9. python自动生成字幕脚本_自动生成字幕软件?
  10. openwrt中luci学习笔记
  11. MySql in子句 效率低下优化
  12. MachineLearning_LogisticRegression使用matlab编程遇到问题
  13. 平面几何----用角平分线逆定理证明阿氏圆定理
  14. java程序员表白代码_程序员表白代码,用过的人都找到了对象...
  15. python爬取有声小说_python写的有声小说爬虫
  16. 0 win10重装partition_gpt分区无法安装win10的根本原因
  17. sony android mp3播放器,高音质与流媒体兼具,索尼 NW-ZX500 安卓音乐播放器评测
  18. [更新]android平板手机 通过usb otg 来充电(以nexus 7 一代为例USB ROM)
  19. 如何使用anydesk进行远程控制?进来长知识
  20. Linux在线安装mysql57-community-release-el7-10.noarch.rpm

热门文章

  1. oracle脚本刷错了怎么办,Oracle故障处理中常用的脚本
  2. java+synchro_synchrozied,wait()与notify()的理解
  3. oracle 存储 更新,oracle 更新空间数据存储过程语句
  4. java try 返回值_JAVA的try... catch finally的return返回值问题
  5. pycharm创建python虚拟环境好处_pycharm虚拟环境的搭建
  6. python获取视频帧的时间_Python提取视频中图片的示例(按帧、按秒)
  7. 二十三、前端必学Node.js入门
  8. face_recognition快速入门
  9. 下一代对话系统中的关键技术(上篇)
  10. 对凸优化(Convex Optimization)的一些浅显理解