JavaWeb项目--网上商城 (6-5)

Posted 周无极

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb项目--网上商城 (6-5)相关的知识,希望对你有一定的参考价值。

day5--后台管理模块开发

 

          案例1-后台所有分类展示
                                                需求:        在左侧的树上上添加一个连接 "分类列表",点击分类列表 将所有的分类展示在右边的主页面上
                                                步骤分析:
                                                                   1.在left.jsp上添加一个连接 父节点"分类管理",在分类管理下面添加一个子节点"分类列表"
                                                                      连接: /store/adminCategory?method=findAll
                                                                   2.编写adminCategoryservlet,继承baseservlet,编写findAll方法
                                                                      调用service 查询所有分类,返回值:List<Category>
                                                                      请求转发 /admin/category/list.jsp

                                              d-tree用法:

                                                                  1.项目中和页面中导入dtree.js
                                                                  2.项目中和页面中导入dtree.css
                                                                  3.在页面中创建一个div,添加样式 class="dtree"
                                                                 4.在div中编写js代码  创建一个树d = new dTree(‘d‘);
                                                                      添加节点
                                                                      方法及参数说明:
                                                                      d.add(当前节点id,父节点id,显示名称,点击时候打开的连接,放上去显示的名称,在那个地方打开这个连接)
                                                                      添加根节点
                                                                      根节点的父节点的id为-1
                                                                       添加其他节点
                                                                       5.最后通过document.write(d) 写到页面上即可                   

                                                                       6.例子:    d  = new dTree(‘d‘);
                                                                                       d.add(‘01‘,-1,‘系统菜单树‘);
                                                                                       d.add(‘0102‘,‘01‘,‘分类管理‘,‘‘,‘‘,‘mainFrame‘);
                                                          d.add(‘010201‘,‘0102‘,‘分类列表‘,‘${pageContext.request.contextPath}/adminCategory?method=findAll‘,‘‘,‘mainFrame‘);
                                                          d.add(‘010202‘,‘0102‘,‘添加分类‘,‘${pageContext.request.contextPath}/adminCategory?method=addUI‘,‘‘,‘mainFrame‘);
                                                          d.add(‘0104‘,‘01‘,‘商品管理‘);
                                                          d.add(‘010401‘,‘0104‘,‘已上架商品列表‘,‘${pageContext.request.contextPath}/adminProduct?method=findAll‘,‘‘,‘mainFrame‘);
                                                          d.add(‘010402‘,‘0104‘,‘添加商品‘,‘${pageContext.request.contextPath}/adminProduct?method=addUI‘,‘‘,‘mainFrame‘);
                                                          d.add(‘0105‘,‘01‘,‘订单管理‘);
                                                          d.add(‘010501‘,‘0105‘,‘订单管理‘,‘${pageContext.request.contextPath}/adminOrder_findAll.action?page=1‘,‘‘,‘mainFrame‘);

                                                          document.write(d);

                                                      <!--id Number 唯一的ID号
                                                           pid Number 判定父节点的数字,根节点的值为
                                                            name String 节点的文本标签
                                                            url String 节点的Url
                                                            title String 节点的Title
                                                          target String 节点的target
                                                          icon String 用做节点的图标,节点没有指定图标时使用默认值
                                                           iconOpen String 用做节点打开的图标,节点没有指定图标时使用默认值
                                                           open Boolean 判断节点是否打开 -->

            案例2-后台添加分类
                                                需求:      
                                                                 在一个表单页面中,输入分类名称,点击保存,将分类保存到数据库
                                               步骤分析:
                                                                1.在left.jsp上添加一个连接 "添加分类"  /store/adminCategory?method=addUI
                                                                2.在admincategoryservlet下编写addUI方法  请求转发到 /admin/category/add.jsp
                                                                3.修改add.jsp, action:/store/adminCategory?method=save
                                                                    给分类input标签添加name属性
                                                                4,点击保存,发送 adminCategory一个请求 请求方法:save
                                                                        获取cname,设置cid
                                                                        封装category对象
                                                                       调用service完成添加操作
                                                                       重定向到分类列表页面
                                                                5.service  调用dao保存
                                                                     更新redis中数据(清空redis中该条记录)

            案例3-后台展示所有商品 
                                               需求:        点击左边树上的一个连接 "已上架商品列表",在右边的主页面上展示所有的商品
                                               步骤分析:
                                                               1.在left.jsp上添加一个连接 "已上架商品列表", /store/adminProduct?method=findAll
                                                               2.编写adminProductServlet,继承baseservlet,编写findAll方法
                                                                   调用service,获取所有的已上架的商品信息 返回值:list
                                                                    将list放入reque st中,请求转发 /admin/product/list.jsp

            案例4-后台添加商品
                                               需求: 

                                                   有一个商品的表单页面,填写商品信息,选择商品的图片,点击保存,将商品的信息保存到数据库中和web服务器上
                                              技术分析:
                                                   文件上传: 就是将客户端的数据发送到服务器上
                                                   文件上传要求:                                                        
                                                              浏览器端要求:                
                                                                                     1.表单提交方式 post
                                                                                     2.提供文件上传框(组件) input type="file"
                                                                                     3.表单entype属性必须为 multipart/form-data
                                                              服务器端要求:  request.getInputStream()
                                                                 注意:
                                                                          若表单使用了 multipart/form-data ,使用原生request去获取参数的时候都为null
                                                                          使用工具类或者框架去解析用户上传的内容
                                                                           commons -fileupload
                                                                          struts(底层:commons-fileupload)
                                                                          serlvet 3.0
                                                                          apache出品的一款专门处理文件上传的工具类 commons-fileupload
                                            使用步骤:
                                                                       1.导入jar包
                                                                       2.创建磁盘文件项工厂
                                                                         DiskFileItemFactory factory=new DiskFileItemFactory();
                                                                       3.创建核心上传对象
                                                                         ServletFileUpload upload=new ServletFileUpload(factory);
                                                                       4.解析请求,获取所有的上传组件 List<FileItem>
                                                                         List<FileItem> list=upload.parseRequest(request);
                                                                       5.遍历list 获取每一个上传项
                                                                        getFiledName():获取标签name属性的值
                                                                        isFormFiled():判断是否是普通上传 组件
                                                                         true:普通上传组件
                                                                         false:文件上传组件 <input type="file">
                                                                         普通上传组件
                                                                         getString("utf-8"):获取用户输入的内容
                                                                        文件上传组件
                                                                        getName():文件 名称
                                                                        getInputStream():获取文件的流
                                                                        delete():删除文件上传时候产生的临时文件

                                      上传注意问题:
                                                                           1.文件名称   浏览器不同,有可能获取的名称不同, 1.txt 或者 G:\1.txt
                                                                           2.文件重名   给文件来一个随机名称
                                                                                               uuid方式  毫米值+三个随机数
                                                                                                数据库中可以存放多个字段: 文件名称和文件路径
                                                                                                文件名称:身份证正面.jpg
                                                                                               文件路径:g:\123123123423sfsf.jpg
                                                                                                文件下载:
                                                                                               response.setHeader("content-disposition","attachment;filename="+真实名称);
                                                                           3.文件安全(fastDFS)
                                                                                               安全目录:web-inf meta-inf 项目之外的目录
                                                                                               不安全目录:项目目录(除去web-inf和meta-inf)
                                                                           4.目录分离 常用的方式:
                                                                                                  按用户划分 按时间划分  按数量划分   随机划分 

                                             步骤分析:
                                                          1.在left.jsp上添加一个连接,"添加商品",点击他,在主页面上打开一个表单页面
                                                                                 /store/adminProduct?method=addUI
                                                          2.在adminproductserlvet中编写addUI方法
                                                             调用categoryservice查询所有的分类 findList
                                                             请求转发到 /admin/product/add.jsp
                                                             分类信息没有查询出来:
                                                                    方式1:同步  方式2:异步
                                                            3.编辑表单页面   action: /store/addProduct  method:post     entype:multipart/form-data
                                                               给所有的子标签添加name属性  点击保存,向addProductServlet发送请求
                                                            4.编写addProductServlet
                                                                  封装prodcut对象
                                                                  让product的所有字段都有值
                                                                  将product的图片保存到服务器
                                                                  以前使用beanUtils.populate(Product bean,Map map);
                                                                 但是现在request.getParameterMap不好使,若还想使用上面的方法封装对象,
                                                                  我们需要创建一个map 且map中存放product对象的信息
                                                                  Map<String 字段名,Object 值> map
                                                                  字段名: getFieldName()
                                                                  值:getString("utf-8");
                                                                  除了图片
                                                                  将图片通过commons-fileupload保存到服务器上
                                                                  将图片的路径 put到map中
                                                                   调用service保存商品
                                                                   重定向到商品列表页面
                                                             5.service dao
                                                                     注意:  图片目录 保存 备份



 








































































































































以上是关于JavaWeb项目--网上商城 (6-5)的主要内容,如果未能解决你的问题,请参考以下文章

Java项目:JavaWeb实现网上图书商城系统

大神。一个简易的javaweb项目。商城类的。有没有源代码啊。急需!

java web服务器 源码放哪个位置

JavaWeb网上图书商城完整项目--day02-18.修改密码页面处理

javaweb项目JSP网上书店购物电商系统毕业设计

用eclipse建立的javaweb项目总显示错误,我也按照网上说的弄了还是不对,求大神告知,明天