从零开始——电子商务平台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

时间: 2025-01-09 06:24:41

从零开始——电子商务平台02的相关文章

从零开始——电子商务平台01

一.任务 后台--登录 包含的内容:1)bootstrap验证--登录 2)MD5加密(加盐)--对密码 3)三框架页面--主页面 二.整体图 三.分享 源码.数据库及图片共享链接:http://pan.baidu.com/s/1dFIMav3 密码:sers

从零开始——电子商务平台01_遇到的小问题

MySql中可视化界面如何进行自增设置? 数据类型为Int型时,可自动出现自增选项 ${pageContext.request.contextPath }是什么? 参考:http://jzgl-javaeye.iteye.com/blog/658446 在类似下图中使用此jsp取得绝对路径可以避免tomcat中修改过path而导致的找不到路径的问题. Frame? frameset? http://www.w3school.com.cn/tags/tag_frame.asp http://www

从零开始——电子商务平台02_遇到的小问题

1.Tld文件怎么新建?是干什么的? 1)New-->File(带后缀即可) 2)http://www.cnblogs.com/Maple-leaves/articles/4471043.html 2.关于格式化的日期(SimpleDateFormat&format&new Date()) 1)http://blog.csdn.net/gubaohua/article/details/575488/ 2)详细:参考JDK API 3.StringBuffer的append? 1)自己

高并发电子商务平台技术架构

原文出自:http://blog.csdn.net/yangbutao/article/details/12242441 http://stamen.iteye.com/blog/1525924 我自己的大型B2B和B2C站点原来也是用Hibernate,可是后来不得不换成mybatis, 第一是用Hibernate 因为它封装得太高了.非常多东西是隐式进行的.常常引起问题,非常难定位.毕竟凡事有利必有弊: 第二大型站点肯定不是一个数据库.这点Hibernate是非常麻烦的,用Jdbc或Myba

打造独一无二的电子商务平台-鸿鹄云商b2b b2c o2o

鸿鹄云商是大型企业分布式互联网电子商务平台,国内首家推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台.打通线上线下渠道,构建一个健康且可持续发展的企业生态系统. 鸿鹄云商互联网+涉及行业包括:智慧农业.智慧商店.智慧社区.工业互联网应用.跨境电商.生鲜食品行业.商业零售.互联网金融.房地产.汽车市场.健康.珠宝.餐饮娱乐.服装等多个领域. 鸿鹄云商结合了当前大部分企业的通用需求,包括技术的选型比较严格.苛刻,不仅要用业界最流行的技术,

OSCHina技术导向:Java电子商务平台OFBiz

OFBiz 是开放的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级.跨平台.跨数据库.跨应用服务器的多层.分布式电子商务类WEB应用系统的框架. OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具.包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等. OFBiz最新更新资讯,共12条  (投递新闻,查看所有») Apache OFBiz 12.04.05/11.04.06 发布12

第三方电子商务平台的优势

第三方电子商务平台为多个买方和多个卖方提供信息和交易等服务的电子场所.第三方电子商务平台的优势包括:首先得到参与者的信任.集成买卖双方供应信息.买卖流通.O2O支持交易.三方集成产生规模效益. 选用第三方电子商务平台是买卖双方企业应用电子商务的一种好的选择.电子商务平台是以客户为中心的开放式中立商务平台,是一种有盈利潜力的电子商务模式,其以创新的方式提供传统的功能,用增值功能的形式服务于买卖双方企业.这个解决方案对买方和卖方都有益处. 首先,第三方电子商务平台的优势事使交易方不需要直接连接对方网

线下线上对接的一种思路(本地erp与线上电子商务平台对接)

目前很多公司都希望本地的ERP能够与线上的电子商务平台进行对接. 但是很多的线下ERP系统商不愿意修改代码来做相应的对接,或者觉得太话费成本. 而对于企业本身,又会有很多的特殊需求. 下面略述一家进口商品企业的线上线下整合方案. 线下系统使用深圳思迅的门店管理系统,使用VS.Net平台开发,数据库使用MSQL2005,BS结构(内部管理用)+CS结构(门店POS开单),局域网部署 线上系统使用本地的一家电子商务平台提供商的商城系统(通过该平台,让分销商可以直接采购下单,查询库存,以及及时下载最新

电子商务平台需求建议书应包括的关键问题(一)

hybris软件公司全方位商务洞察系列 电子商务平台需求建议书应包括的关键问题(一) 问:Hybris的平台是否可为多渠道商务提供基础?它是否可以与其他系统(内部或第三方)集成从而实现全渠道商务? 答:寻找答案 公司应该寻找已预先集成了众多的第三方解决方案的电子商务平台.最好的平台能与多种第三方应用程序集成,并能提供强大的 API 与其他内部系统集成.这些功能可让电子商务平台用作全渠道商务的基础.要寻找的关键系统集成包括订单管理系统 (OMS).产品信息管理系统 (PIM) 及企业资源规划系统