zoukankan      html  css  js  c++  java
  • 从零开始——电子商务平台02

    一、整体示意图

    二、分析

      1)添加管理员/修改管理员信息

        1、addUser.jsp  

          [通过action跳转到adminServlet中。]

          [当Id值存在时,为修改;当Id值不存在时,为注册]

    <form role="form" class="form-horizontal"
            action="${pageContext.request.contextPath}/admin/adminServlet?method=addUser&updateId=${updateBean.id }"
            method="post" id="checkForm">
    <!--     *********************************************** -->
    <!--     *******************updateBean****************** -->
    <!--     *******************当修改时,用的****************** -->
    <!--     *********************************************** -->
            <div class="form-group"> 
                <label class="col-md-3 control-label" for="username">用户名</label> 
                <div class="col-md-9">
                    <input class ="form-control" name="username" type="text" id="username"
                        placeholder="Username" value="${updateBean.username }" />
                </div>
            </div>
            <div class="form-group"> 
                <label class ="col-md-3 control-label"for="inputPassword">密码</label> 
                <div class="col-md-9">
                    <input type ="password"name="password" class="form-control"
                    id="inputPassword" placeholder="Password"
                    value="${updateBean.password }">
                </div>
            </div>
            <div class="form-group"> 
                <label class ="col-md-3 control-label"for="password2">确认密码</label> 
                <div class="col-md-9">
                    <input type ="password"name="password2" class="form-control"
                    id="password2" placeholder="conformPassword">
                </div>
            </div>
            <div class="form-group"></div>
            <div class="form-group"> 
            <div class ="col-md-offset-3col-md-9">
            <button type ="submit" class="btn btn-primary btn-block">
            提交
            </button>
            </div>
            </div>
            
            <c:if test="${param.status.equals('1')}">
                <div class ="alert alert-danger"role="alert">添加成功</div>
            </c:if> 
            
            <c:if test="${param.status.equals('2')}">
                <div class ="alert alert-danger"role="alert">该用户已存在</div>
            </c:if> 
            
            <c:if test="${param.status.equals('3')}">
                <div class ="alert alert-danger"role="alert">成功</div>
            </c:if>
            
        </form>

        2、adminServlet.java

    //添加用户/修改用户信息
        private void addUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException 
        {
            // TODO Auto-generated method stub
            req.setCharacterEncoding("utf-8");
            
            //************************update**********************
            String updateId = req.getParameter("updateId");
            //****************************************************
            
            AdminDao adminDao = new AdminDao();
            String username =req.getParameter("username");
            String password =req.getParameter("password");
            AdminBean adminBean = new AdminBean();
            
            adminBean.setUsername(username);
            String salt=StringUtil.getRandomString(10);
            //设置盐值
            String md5Pwd= MD5.GetMD5Code(MD5.GetMD5Code(password)+salt);
            //将加密的密码和盐值再加密设为数据库中的密码
            adminBean.setSalt(salt);
            adminBean.setPassword(md5Pwd);
            SimpleDateFormat createDate1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            adminBean.setCreateDate(createDate1.format(new Date()));
            
            //************************传过来的id值 (updateId)为空时,为添加用户,不为空修改**********************
            if(!updateId.equals(""))
            {
                //不为空——修改
                int id = StringUtil.StringToInt(updateId);
                adminBean.setId(id);
                boolean flag = true;
                if(!(username.equals(adminDao.getById(id).getUsername())))
                {
                    //用户名与库里的不相等时,flag为true
                    flag=adminDao.checkReg(username);
                }
                if(flag)
                {
                    adminDao.update(adminBean);
                    resp.sendRedirect("adminServlet?method=list&status=2");
                    //修改
                }
                else
                {
                    resp.sendRedirect("addUser.jsp?status=2");
                    //用户已存在
                }
            }
            else
            {
                //为空——注册
                boolean flag = adminDao.checkReg(username);
                if(flag)
                {
                    //注册成功,写入数据库
                    adminDao.save(adminBean);
                    resp.sendRedirect("addUser.jsp?status=1");
                }
                else
                {
                    //失败,跳回
                    resp.sendRedirect("addUser.jsp?status=2");
                }
            }
        }

      2)查看管理员信息(修改、删除、分页

        2.1 修改、删除

          1.listUsers.jsp

            [修改-->adminServlet 中toUpdate方法]

            [删除-->adminServlet 中delete方法]

    <table class ="table table-striped">
                <tr>
                    <td>id</td>
                    <td>username</td>
                    <td>password</td>
                    <td>salt</td>
                    <td align ="center" colspan="2">操作</td>
                </tr>
        <!-- forEach遍历出adminBeans --> 
            <c:forEach items="${adminBeans}" var="item" varStatus="status">
                <tr>
                    <td>${item.id}</td>
                    <td><a>${item.username}</a></td>
                    <td>${item.password}</td>
                    <td>${item.salt}</td>
                    <td><a href="${pageContext.request.contextPath}/admin/adminServlet?method=toUpdate&id=${item.id}">修改</a></td>
                    <td><a href="${pageContext.request.contextPath}/admin/adminServlet?method=delete&id=${item.id}">删除</a></td>
                </tr>
            </c:forEach>
            
            </table>

          2.adminServlet.java

            [修改-->adminServlet 中toUpdate方法]   

    private void toUpdate(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
            // TODO Auto-generated method stub
            req.setCharacterEncoding("utf-8");
            int id=StringUtil.StringToInt(req.getParameter("id"));
    
            if(id>1)
            {
                AdminDao adminDao = new AdminDao();
                AdminBean adminBean=adminDao.getById(id);
                req.setAttribute(Constants.SESSION_UPDATE_BEAN, adminBean);
                req.getRequestDispatcher("addUser.jsp").forward(req, resp);
            }
            else if(id==1)
            {
                resp.sendRedirect(req.getContextPath()+"/admin/adminServlet?method=list&status=1");
            }
            else
            {
                resp.sendRedirect(req.getContextPath()+"/admin/adminServlet?method=list&status=2");
            }
        }

          [删除-->adminServlet 中delete方法]【无提示!!!】

    private void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
            // TODO Auto-generated method stub
            req.setCharacterEncoding("utf-8");
            int id=StringUtil.StringToInt(req.getParameter("id"));
            if(id>1)
            {
                AdminDao adminDao = new AdminDao();
                adminDao.delete(id);
                resp.sendRedirect(req.getContextPath()+"/admin/adminServlet?method=list&status=3");
            }
            else if(id==1)
            {
                resp.sendRedirect(req.getContextPath()+"/admin/adminServlet?method=list&status=1");
            }
            else
            {
                resp.sendRedirect(req.getContextPath()+"/admin/adminServlet?method=list&status=2");
            }
        }

       2.2 分页

        1.listUsers.jsp

         [pagingBean 相关量的集合 set get部分]

        <div>
                <util:page pagingBean ="${pagingBean}"/>
            </div>

        2.adminServlet.java

          [list-->adminServlet]

          [其中设置了pagingBean中的当前页显示的条数 (在Constants中有设置)]

    //查看/列举管理员
        private void listUsers(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
            // TODO Auto-generated method stub
            req.setCharacterEncoding("utf-8");
            String status=req.getParameter("status");
            AdminDao adminDao = new AdminDao();
            int currentPage=StringUtil.StringToInt(req.getParameter("currentPage"));
            int countSize = adminDao.getCount();
            PagingBean pagingBean =new PagingBean(currentPage,countSize,Constants.PAGE_SIZE_1);
            List<AdminBean> adminBeans = adminDao.getListByPage(currentPage * Constants.PAGE_SIZE_1,Constants.PAGE_SIZE_1);
            pagingBean.setPrefixUrl(req.getContextPath()+"/admin/adminServlet?method=list");
            pagingBean.setAnd(true);
            req.setAttribute(Constants.SESSION_ADMIN_BEANS, adminBeans);
            req.setAttribute("pagingBean", pagingBean);
            if(status!=null)
            {
                req.getRequestDispatcher("listUsers.jsp?status="+status).forward(req, resp);
            }
            else
            {
                req.getRequestDispatcher("listUsers.jsp").forward(req, resp);
            }
        }

        3.PageTag.java

        [分页函数的具体实现]

    public void doTag() throws JspException, IOException {
            // TODO Auto-generated method stub
            //super.doTag();
            StringBuffer sb =new StringBuffer();
            if(pagingBean!=null)
            {
                sb.append("<nav><ul class='pagination'>");
                if(pagingBean.getCurrentPage()<=0)
                {
                    sb.append("<li class='disabled'><a>首页</a></li>");
                    sb.append("<li class='disabled'><a href='#'>上一页</a></li>");
                }
                else
                {
                    sb.append("<li><a href='").append(pagingBean.getPrefixUrl()).append("'aria-label='Previous'><span aria-hidden='true'>首页</span></a></li>");
                    sb.append("<li><a href='").append(pagingBean.getPrefixUrl()).append(pagingBean.isAnd()?"&":"?").append("currentPage=").append(pagingBean.getCurrentPage()-1).append("'>上一页</a></li>");
                }
                
                if(pagingBean.getCurrentPage()>=(pagingBean.getPageCount()-1))
                {
                    sb.append("<li class='disabled'><a>下一页</a></li>");
                    sb.append("<li class='disabled'><a>尾页</a></li>");
                }
                else
                {
                    sb.append("<li><a href='").append(pagingBean.getPrefixUrl()).append(pagingBean.isAnd()?"&":"?").append("currentPage=").append(pagingBean.getCurrentPage()+1).append("'>下一页</a></li>");
                    sb.append("<li><a href='").append(pagingBean.getPrefixUrl()).append(pagingBean.isAnd()?"&":"?").append("currentPage=").append(pagingBean.getPageCount()-1).append("'aria-label='Previous'><span aria-hidden='true'>尾页</span></a></li>");
                }
                sb.append("<li><a href='#'>");
                sb.append("<span>");
                sb.append(pagingBean.getCurrentPage()+1);
                sb.append("/");
                sb.append(pagingBean.getPageCount());
                sb.append("</span>");
                sb.append("</a>");
                sb.append("</li>");
                sb.append("</ul></nav>");
            }
            getJspContext().getOut().write(sb.toString());
        }

    三、分享

       链接:http://pan.baidu.com/s/1gfbzodX 密码:qitj

  • 相关阅读:
    Vue 环境配置
    Vue-think脚手架
    搭建vue环境网站
    数组 还是 字符串
    javascript jquery console调试方法说明
    获取 stoken 或者id MVC写法
    它山之石
    Android学习笔记_44_apk安装、反编译及防治反编译
    (转)超级实用且不花哨的js代码大全
    Android学习笔记_43_网络通信之文件断点上传
  • 原文地址:https://www.cnblogs.com/justmaomao/p/6880077.html
Copyright © 2011-2022 走看看