精华内容
下载资源
问答
  • JavaWeb库存管理系统

    热门讨论 2016-04-14 10:53:43
    JavaWeb库存管理系统 供应商信息 商品类别 商品信息 商品管理(商品入库 商品出库 商品库存)等等
  • javaweb仓库管理系统(进销存管理系统 超市管理).zipj
  • 基于javaweb,使用三层分层结构,能够实现对商品,用户的一系列增删改查功能。
  • 主要完成对商品的销售、统计和简单管理。 2、功能要求 (1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,...
  • 是一个基于MVC模式的简单商品管理集团,采用JSP开发,数据库是MySQL,开发环境是Eclipse Jee Mars。
  • 酒店管理系统,基于Java的SSM框架实现的酒店管理系统 二、技术实现 后台框架:Spring、SpringMVC、MyBatis UI界面:BootStrap、JSP、jQuery 数据库:MySQL 三、系统功能 系统主要功能模块: 1. 客房管理 2. 预订管理...
  • JAVAWeb采购管理系统

    千次阅读 2020-05-09 10:26:15
    简易的管理系统,结构为 Servlet + JSP + MySQL,使用,搭建起了这个项目,源码中有很详细的注释,如果刚开始学习JavaWeb的内容,学一下Servlet SSM ,再搭配这个项目,岂不是美滋滋,有需要就拿去,如果能够有帮助...

    采购管理系统

    正文

    项目构思

    简易的管理系统,结构为 Servlet + JSP + MySQL,使用,搭建起了这个项目,源码中有很详细的注释,如果刚开始学习JavaWeb的内容,学一下Servlet SSM ,再搭配这个项目,岂不是美滋滋,有需要就拿去,如果能够有帮助,在fork的同时也赏一个Star吧!

    接下来就介绍一下过程:

    1. 数据库连接

    在这个项目中,并不是单独编写Java程序来连接数据库,而是使用c3p0-config.xml文件来配置数据库连接池,使用 QueryRunner 来执行数据库操作

    在运行项目之前,需要在图中所示文件中设置你自己的本地数据库名称和密码,否则,无法连接数据库

    运用技术:
    SSM + redis + jsp + bootstrap(前台) + layui/bootstrap(后台) + jquery
    实现功能:
    首页:商品信息+视频播放+广告轮播
    用户模块:个人信息+粉丝数量/关注数量
    商品模块: 商品分类+商品详情+商品列表分页
    资讯模块: 外链接
    动态留言模块:发布动态+评论+图片发布
    支付模块:微信支付+易宝支付

    代码已经上传github,下载地址: https://github.com/21503882/

    2. JAR文件

    在构建项目时,需要导入所需的Library

    3. 建表

    在创建数据库时,也需要一张表来配合运行项目,在项目中也给出了这张表的结构

    4. 建包

    采用MVC设计模式,建包时我分成了这几个方面:

    dao
    page
    product
    service
    servlet
    以及在测试时的用例:demo

    接下来介绍这几个包的内容:

    1. dao包:
      内含有一个Java文件:ProductDao,编写对于数据库的操作,增删改查之类

    2. page包:
      查询后的数据需要分页显示,否则看起来很麻烦,page包中包含有一个Java文件:PageBean,配合content.jsp文件将查询结果分页显示

    3. product包:
      内含有Product类,将商品的基本信息封装,便于其他类使用

    4. service包
      内含有一个Java文件:ProductService,实现了ProductDao类中定义的方法,并封装,降低程序中的代码重复性,更加简洁

    5. servlet包
      内含有ProductServlet,实现了ProductService类中定义的方法,并和JSP页面进行通信

    6. demo包
      在完成项目后,需要测试用例来进行测试

    5. MVC模式

    MVC模式:Model,View,Controller:

    Model:ProductDao类,PageBean类和Product类作为基本的模型

    View:JSP文件,系统的页面

    Controller:ProductServlet,作为用户输入和数据库操作的控制者

    这样就使得代码较为简洁

    6. 运行前需要的准备

    在Github上fork项目,并且clone至本地后,用IDEA打开,并按照这篇配置教程来配置web项目
    【JavaWeb】IDEA如何创建及配置Web项目(多图)

    配置后,将src目录下的 c3p0-config.xml 文件中的数据库信息改为自己的数据库信息,运行Tomcat,岂不是美滋滋

     

     

     

     

     

    package com.oa.actions;
    import java.util.List;

    import org.apache.struts2.ServletActionContext;

    import com.oa.models.TOrder;
    import com.oa.models.TProduct;
    import com.oa.models.TSupplier;
    import com.oa.services.OrderServices;
    import com.oa.services.ProductServices;
    import com.oa.services.SupplierServices;
    import com.oa.utils.PageInfo;


    public class OrderAction extends BaseAction{
        private OrderServices orderServices;
        private SupplierServices supplierServices;
        private ProductServices productServices;
        private Integer id;
        private Integer supplierid;
        private Integer productid;
        private String ordername;
        private String num;
        private String status;
        private String searchname;
        private String numb;
        private Float price;
        private Float allprice;
        private String username;
        private String remark; 


        
        public String queryOrder() throws Exception{
            if (getSessionAttribute("querypageunit") == null) {
                setSessionAttribute("querypageunit",this.pageunit);
            }
            StringBuffer cond = new StringBuffer();
            if(null!=searchname&&""!=searchname.trim()){
                cond.append(" and a.ordername like '%"+searchname.trim()+"%' ");
            }
            if(null!=getRequestParameter("flag") &&""!=getRequestParameter("flag")){
                setSessionAttribute("flag", getRequestParameter("flag"));
            }
            if(null!=getSessionAttribute("flag") &&""!=(String)getSessionAttribute("flag")){
                cond.append(" and a.status = '"+(String)getSessionAttribute("flag")+"' ");
            }
            
            int curpage = Integer.parseInt(this.getCurrentpage(ServletActionContext.getRequest()));
            int pageunit = Integer.parseInt(this.getPageunit(ServletActionContext.getRequest(), "querypageunit"));

            String url = "order_queryOrder?a=a";
            
            PageInfo pageInfo = this.orderServices.queryOrder(curpage,
                    pageunit, ServletActionContext.getRequest(), url, cond.toString());
            setRequestAttribute("pageinfo", pageInfo);
            setRequestAttribute("searchname", this.searchname);
            return "queryOrder";
        }
        
        public String queryOrderUndo() throws Exception{
            if (getSessionAttribute("querypageunit") == null) {
                setSessionAttribute("querypageunit",this.pageunit);
            }
            StringBuffer cond = new StringBuffer();
            if(null!=searchname&&""!=searchname.trim()){
                cond.append(" and a.ordername like '%"+searchname.trim()+"%' ");
            }
            if(null!=getRequestParameter("flag") &&""!=getRequestParameter("flag")){
                setSessionAttribute("flag", getRequestParameter("flag"));
            }
            if(null!=getSessionAttribute("flag") &&""!=(String)getSessionAttribute("flag")){
                cond.append(" and a.status in ('0','1','2','3','4','6') ");
            }
            
            int curpage = Integer.parseInt(this.getCurrentpage(ServletActionContext.getRequest()));
            int pageunit = Integer.parseInt(this.getPageunit(ServletActionContext.getRequest(), "querypageunit"));

            String url = "order_queryOrderUndo?a=a";
            
            PageInfo pageInfo = this.orderServices.queryOrder(curpage,
                    pageunit, ServletActionContext.getRequest(), url, cond.toString());
            setRequestAttribute("pageinfo", pageInfo);
            setRequestAttribute("searchname", this.searchname);
            return "queryOrder";
        }
        
        //为采购员获取订单数据
        public String purchaseOrder() throws Exception{
            PageInfo pageInfo0 =queryOrderByStatus("('0','3')");
            PageInfo pageInfo2 =queryOrderByStatus("('2')");
            setRequestAttribute("pageinfo0", pageInfo0);
            setRequestAttribute("pageinfo2", pageInfo2);
            setRequestAttribute("searchname", this.searchname);
            return "purchaseOrder";
        }
        
        
        public PageInfo queryOrderByStatus(String status){
            
            if (getSessionAttribute("querypageunit") == null) {
                setSessionAttribute("querypageunit",this.pageunit);
            }
            StringBuffer cond = new StringBuffer();
            if(null!=searchname&&""!=searchname.trim()){
                cond.append(" and a.ordername like '%"+searchname.trim()+"%' ");
            }
            if(null!=getRequestParameter("flag") &&""!=getRequestParameter("flag")){
                setSessionAttribute("flag", getRequestParameter("flag"));
            }
            if(null!=getSessionAttribute("flag") &&""!=(String)getSessionAttribute("flag")){
                //cond.append(" and a.status = '"+status+"' ");
                cond.append(" and a.status in "+status+" ");
            }
            
            int curpage = Integer.parseInt(this.getCurrentpage(ServletActionContext.getRequest()));
            int pageunit = Integer.parseInt(this.getPageunit(ServletActionContext.getRequest(), "querypageunit"));

            String url = "order_purchaseOrder?a=a";
            
            PageInfo pageInfo = this.orderServices.queryOrder(curpage,
                    pageunit, ServletActionContext.getRequest(), url, cond.toString());
            return pageInfo;
            
        }
        
        //为审批员获取订单数据
        public String approveListOrder() throws Exception{
            PageInfo pageInfo0 =queryOrderByStatus("('1')");
            PageInfo pageInfo2 =queryOrderByStatus("('6')");
            setRequestAttribute("pageinfo0", pageInfo0);
            setRequestAttribute("pageinfo2", pageInfo2);
            setRequestAttribute("searchname", this.searchname);
            return "approveListOrder";
            }
        
            
            //为审批员获取订单数据
            public String storeListOrder() throws Exception{
                if (getSessionAttribute("querypageunit") == null) {
                    setSessionAttribute("querypageunit",this.pageunit);
                }
                StringBuffer cond = new StringBuffer();
                if(null!=searchname&&""!=searchname.trim()){
                    cond.append(" and a.ordername like '%"+searchname.trim()+"%' ");
                }
                if(null!=getRequestParameter("flag") &&""!=getRequestParameter("flag")){
                    setSessionAttribute("flag", getRequestParameter("flag"));
                }
                if(null!=getSessionAttribute("flag") &&""!=(String)getSessionAttribute("flag")){
                    cond.append(" and a.status = '"+(String)getSessionAttribute("flag")+"' ");
                }
                
                int curpage = Integer.parseInt(this.getCurrentpage(ServletActionContext.getRequest()));
                int pageunit = Integer.parseInt(this.getPageunit(ServletActionContext.getRequest(), "querypageunit"));

                String url = "order_storeListOrder?a=a";
                
                PageInfo pageInfo = this.orderServices.queryOrder(curpage,
                        pageunit, ServletActionContext.getRequest(), url, cond.toString());
                setRequestAttribute("pageinfo", pageInfo);
                setRequestAttribute("searchname", this.searchname);
                return "storeListOrder";
            }
        

        public String addOrder(){
            try {
                TOrder order = new TOrder();
                order.setNum(num);
                order.setOrdername(ordername);
                order.setStatus("0");
                TProduct product = productServices.getProduct(productid);
                order.setTProduct(product);
                TSupplier supplier = supplierServices.getSupplier(supplierid);
                order.setTSupplier(supplier);
                order.setNumb(numb);
                order.setPrice(price);
                order.setRemark(remark);
                order.setAllprice(allprice);
                order.setUsername(username);
                orderServices.addOrder(order);
            } catch (RuntimeException e) {
                e.printStackTrace();
            }
            return "addOrder";
        }
        
        public String addOrderForPurchase(){
            try {
                TOrder order = new TOrder();
                order.setNum(num);
                order.setOrdername(ordername);
                order.setStatus("0");
                TProduct product = productServices.getProduct(productid);
                order.setTProduct(product);
                TSupplier supplier = supplierServices.getSupplier(supplierid);
                order.setTSupplier(supplier);
                order.setNumb(numb);
                order.setPrice(price);
                order.setRemark(remark);
                order.setAllprice(allprice);
                order.setUsername(username);
                orderServices.addOrder(order);
            } catch (RuntimeException e) {
                e.printStackTrace();
            }
            return "addOrderForPurchase";
        }

        public String preaddOrder() throws Exception{
            List<TSupplier> list = supplierServices.querySupplier();
            setRequestAttribute("supplier",list);
            List<TProduct> list2 = productServices.queryProduct();
            setRequestAttribute("product",list2);
            return "preaddOrder";
        }
        
        public String preaddOrderForPurchase() throws Exception{
            List<TSupplier> list = supplierServices.querySupplier();
            setRequestAttribute("supplier",list);
            List<TProduct> list2 = productServices.queryProduct();
            setRequestAttribute("product",list2);
            return "preaddOrderForPurchase";
        }
        
        public String preupdateOrder() throws Exception{
            TOrder order = this.getOrderServices().getOrder(id);
            List<TSupplier> list = supplierServices.querySupplier();
            setRequestAttribute("supplier",list);
            List<TProduct> list2 = productServices.queryProduct();
            setRequestAttribute("product",list2);
            setRequestAttribute("order",order);
            return "preupdateOrder";
        }
        
        public String preupdateOrderForPurchase() throws Exception{
            TOrder order = this.getOrderServices().getOrder(id);
            List<TSupplier> list = supplierServices.querySupplier();
            setRequestAttribute("supplier",list);
            List<TProduct> list2 = productServices.queryProduct();
            setRequestAttribute("product",list2);
            setRequestAttribute("order",order);
            return "preupdateOrderForPurchase";
        }
        
        public String preapproveOrderForApproveList() throws Exception{
            TOrder order = this.getOrderServices().getOrder(id);
            List<TSupplier> list = supplierServices.querySupplier();
            setRequestAttribute("supplier",list);
            List<TProduct> list2 = productServices.queryProduct();
            setRequestAttribute("product",list2);
            setRequestAttribute("order",order);
            return "preapproveOrderForApproveList";
        }
        
        public String preapproveOrderReturnForApproveList() throws Exception{
            TOrder order = this.getOrderServices().getOrder(id);
            List<TSupplier> list = supplierServices.querySupplier();
            setRequestAttribute("supplier",list);
            List<TProduct> list2 = productServices.queryProduct();
            setRequestAttribute("product",list2);
            setRequestAttribute("order",order);
            return "preapproveOrderReturnForApproveList";
        }
        
        
        public String updateOrder() {
            try {
                TOrder order = this.getOrderServices().getOrder(id);
                order.setNum(num);
                order.setOrdername(ordername);
                TProduct product = productServices.getProduct(productid);
                order.setTProduct(product);
                TSupplier supplier = supplierServices.getSupplier(supplierid);
                order.setTSupplier(supplier);
                order.setNumb(numb);
                order.setPrice(price);
                order.setRemark(remark);
                order.setAllprice(allprice);
                order.setUsername(username);
                this.getOrderServices().updateOrder(order);
                
            } catch (RuntimeException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return "updateOrder";
        }
        
        public String updateOrderForPurchase() {
            try {
                TOrder order = this.getOrderServices().getOrder(id);
                order.setNum(num);
                order.setOrdername(ordername);
                TProduct product = productServices.getProduct(productid);
                order.setTProduct(product);
                TSupplier supplier = supplierServices.getSupplier(supplierid);
                order.setTSupplier(supplier);
                order.setNumb(numb);
                order.setPrice(price);
                order.setRemark(remark);
                order.setAllprice(allprice);
                order.setUsername(username);
                this.getOrderServices().updateOrder(order);
                
            } catch (RuntimeException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return "updateOrderForPurchase";
        }
        
        public String approveOrder() throws Exception{
            TOrder order = this.getOrderServices().getOrder(id);
            order.setStatus("1");
            this.getOrderServices().updateOrder(order);
            return "approveOrder";
        }
        
        //采购申请
        public String applyOrder() throws Exception{

            TOrder order = this.getOrderServices().getOrder(id);
            order.setStatus("1");
            this.getOrderServices().updateOrder(order);
            return "applyOrder";
        }
        
        //采购
        public String buyOrder() throws Exception{

            TOrder order = this.getOrderServices().getOrder(id);
            order.setStatus("4");
            this.getOrderServices().updateOrder(order);
            return "buyOrder";
        }
        
        //合格检查
        public String TestOrder() throws Exception{

            TOrder order = this.getOrderServices().getOrder(id);
            order.setStatus("5");
            this.getOrderServices().updateOrder(order);
            return "TestOrder";
        }
        
        //退货检查
            public String returnOrder() throws Exception{

                TOrder order = this.getOrderServices().getOrder(id);
                order.setStatus("6");
                this.getOrderServices().updateOrder(order);
                return "returnOrder";
            }
        
        //审批
        public String approveOrderForApproveList() throws Exception{

            TOrder order = this.getOrderServices().getOrder(id);
            order.setRemark(remark);
            order.setStatus(status);
            this.getOrderServices().updateOrder(order);
            return "approveOrderForApproveList";
        }
        
        public String approveOrderReturnForApproveList() throws Exception{

            TOrder order = this.getOrderServices().getOrder(id);
            order.setRemark(remark);
            order.setStatus(status);
            this.getOrderServices().updateOrder(order);
            return "approveOrderReturnForApproveList";
        }
        
        
        public String delOrder() throws Exception{
            orderServices.delOrder(id);
            return "delOrder";
        }
        
        public String delOrderForPurchase() throws Exception{
            orderServices.delOrder(id);
            return "delOrderForPurchase";
        }
        
        public OrderServices getOrderServices() {
            return orderServices;
        }
        public void setOrderServices(OrderServices orderServices) {
            this.orderServices = orderServices;
        }
        public SupplierServices getSupplierServices() {
            return supplierServices;
        }
        public void setSupplierServices(SupplierServices supplierServices) {
            this.supplierServices = supplierServices;
        }
        public ProductServices getProductServices() {
            return productServices;
        }
        public void setProductServices(ProductServices productServices) {
            this.productServices = productServices;
        }
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }

        public String getOrdername() {
            return ordername;
        }
        public void setOrdername(String ordername) {
            this.ordername = ordername;
        }
        public String getNum() {
            return num;
        }
        public void setNum(String num) {
            this.num = num;
        }
        public String getStatus() {
            return status;
        }
        public void setStatus(String status) {
            this.status = status;
        }
        public String getSearchname() {
            return searchname;
        }
        public void setSearchname(String searchname) {
            this.searchname = searchname;
        }
        public Integer getSupplierid() {
            return supplierid;
        }
        public void setSupplierid(Integer supplierid) {
            this.supplierid = supplierid;
        }
        public Integer getProductid() {
            return productid;
        }
        public void setProductid(Integer productid) {
            this.productid = productid;
        }
        public String getNumb() {
            return numb;
        }
        public void setNumb(String numb) {
            this.numb = numb;
        }
        public Float getPrice() {
            return price;
        }
        public void setPrice(Float price) {
            this.price = price;
        }
        public Float getAllprice() {
            return allprice;
        }
        public void setAllprice(Float allprice) {
            this.allprice = allprice;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getRemark() {
            return remark;
        }
        public void setRemark(String remark) {
            this.remark = remark;
        }
        
    }
     

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    %>
    <!-- 
    功能介绍:系统登录界面

     -->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>采购管理系统</title>
    <style type="text/css">
    <!--
    body {
        margin-left: 0px;
        margin-top: 0px;
        margin-right: 0px;
        margin-bottom: 0px;
    }
    -->
    </style>
    <link href="css/css.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    function commit() {
        if(form1.username.value=="") {
            alert("请您输入用户名!");
            form1.username.focus();
            return false;
        }
        if(form1.password.value=="") {
            alert("请您输入密码!");
            form1.password.focus();
            return false;
        }
        return true;
    }

    </script>
    </head>
    <body>
    <form action="login_checkUser" method="post" name="form1" οnsubmit="return commit()">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
    <%-- <td height="147" background="images/top02.gif" width="100%" ><img src="images/top.png" width="100%" /></td> --%>
        
        <td height="147" width="100%" ></td>
      </tr>
    </table>
    <center style="background:#D7FFEE">
    <fieldset style="width:562px;align=center">
    <table width="562" border="0" align="center" cellpadding="0" cellspacing="0" class="right-table03">
    <tr><td colspan="2" align="center">
    <div style="font-family: 宋体;font-size: 30px;color: #7F9DB9;text-decoration: none;text-align:center;padding-top: 14px;">采购管理系统</div>
    </td></tr>
      <tr>
        <td width="221"><table width="95%" border="0" cellpadding="0" cellspacing="0" class="login-text01">
          
          <tr>
            <td><table width="100%" border="0" cellpadding="0" cellspacing="0" class="login-text01">
              <tr>
                <td align="center"><div style="padding-top:50px"><img src="images/1ico13.gif" width="107" height="117" /></div></td>
              </tr>
              <tr>
                <td height="40" align="center">&nbsp;</td>
              </tr>
              
            </table></td>
            <td><img src="images/line01.gif" width="5" height="292" /></td>
          </tr>
        </table></td>
        <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="31%" height="35" class="login-text02">帐    号&nbsp;&nbsp;&nbsp;<br /></td>
            <td width="69%"><input name="username" id= "username" type="text" size="28" style="width:150px" /></td>
          </tr>
          <tr>
            <td height="35" class="login-text02">密    码&nbsp;&nbsp;&nbsp;<br /></td>
            <td><input name="password" id="password" type="password" size="30" style="width:150px"/></td>
          </tr>
          <tr>
            <td height="35">&nbsp;</td>
            <td><input name="Submit2" type="submit" class="right-button02" value="登 录" />
              &nbsp;&nbsp;<input name="reset232" type="reset"" class="right-button02" value="重 置" />
          </tr>      
          <%
          if("error".equals((String)request.getAttribute("error"))){ %>
              <font color="red">信息错误,请重新填写!</font>
          <%}%>
          
        </table></td>
      </tr>
    </table>
    </fieldset>
    </center>
    </form>
    </body>
    </html>

    展开全文
  • javaweb后台管理系统

    千次阅读 2020-11-24 10:49:19
    JavaWeb专业版,企业级开发框架SpringBoot+Layui+Thymeleaf+MybatisPlus开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理,数据库管理、富文本编辑器(已集成ueditor,kindeditor),后台支持多主题切换、...

    系统简介

    JavaWeb专业版,企业级开发框架SpringBoot+Layui+Thymeleaf+MybatisPlus开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理,数据库管理、富文本编辑器(已集成ueditor,kindeditor),后台支持多主题切换、布局管理、广告管理、配置管理、字典管理、切图管理、CMS内容管理等常用功能模块,以方便开发者快速构建自己的应用。框架专注于为中小企业提供最佳的行业基础后台框架解决方案,执行效率、扩展性、稳定性值得信赖,操作体验流畅,使用非常优化,欢迎大家使用及进行二次开发。

    项目介绍

    1、模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。
    2、模型/栏目/分类信息体系:通过栏目和模型绑定,以及不同的模型类型,不同栏目可以实现差异化的功能,轻松实现诸如资讯、下载、讨论和图片等功能。通过分类信息和栏目绑定,可以自动建立索引表,轻松实现复杂的信息检索。
    3、JavaWeb企业级开发框架是一套基于SpringBoot2 + Layui开发出来的框架。
    4、支持SQLServer、MySQL、Oracle、PostgreSQL、SQLite等多数据库类型。模块化设计,层次结构清晰。
    5、Shiro权限认证,操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、功能按钮。提高开发效率及质量。
    6、常用类封装,日志、缓存、验证、字典、文件(本地、七牛云)。等等,目前兼容浏览器(Chrome、Firefox、360浏览器等)
    7、适用范围:可以开发OA、ERP、BPM、CRM、WMS、TMS、MIS、BI、电商平台后台、物流管理系统、快递管理系统、教务管理系统等各类管理软件。

    在线演示

    官网网址:http://www.javaweb.vip
    演示地址: http://manage.javaweb.vip
    登录账号:admin
    登录密码:123456
    验证码:520

    码云地址

    地址:https://gitee.com/javaweb520/JavaWeb

    技术支持

    技术支持QQ:1175401194

    系统UI展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 系统分为前台商城和后台管理: 1. 前台商城 商品分类展示、商品详情、商品推荐、购物车、下单、支付 客户登陆、客户注册、我的订单、会员中心、修改个人信息、退出等 2. 后台管理 管理员:登陆、添加、...
  • 1. 前台商城 数据库 mysql 商品分类展示、商品详情、商品推荐、购物车、下单、支付 ... 商品管理:查询、添加、修改、删除 订单管理:查询、发货、删除 客户管理:查询、添加、修改、删除 元数据管理
  • javaweb后台管理系统源码

    千次阅读 2020-08-16 09:29:04
    JavaWeb专业版,企业级开发框架SpringBoot+Layui+Thymeleaf+MybatisPlus开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理,数据库管理、富文本编辑器(已集成ueditor,kindeditor),后台支持多主题切换、...

    系统简介

    JavaWeb专业版,企业级开发框架SpringBoot+Layui+Thymeleaf+MybatisPlus开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理,数据库管理、富文本编辑器(已集成ueditor,kindeditor),后台支持多主题切换、布局管理、广告管理、配置管理、字典管理、切图管理、CMS内容管理等常用功能模块,以方便开发者快速构建自己的应用。框架专注于为中小企业提供最佳的行业基础后台框架解决方案,执行效率、扩展性、稳定性值得信赖,操作体验流畅,使用非常优化,欢迎大家使用及进行二次开发。

    项目介绍

    1、模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。
    2、模型/栏目/分类信息体系:通过栏目和模型绑定,以及不同的模型类型,不同栏目可以实现差异化的功能,轻松实现诸如资讯、下载、讨论和图片等功能。通过分类信息和栏目绑定,可以自动建立索引表,轻松实现复杂的信息检索。
    3、JavaWeb企业级开发框架是一套基于SpringBoot2 + Layui开发出来的框架。
    4、支持SQLServer、MySQL、Oracle、PostgreSQL、SQLite等多数据库类型。模块化设计,层次结构清晰。
    5、Shiro权限认证,操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、功能按钮。提高开发效率及质量。
    6、常用类封装,日志、缓存、验证、字典、文件(本地、七牛云)。等等,目前兼容浏览器(Chrome、Firefox、360浏览器等)
    7、适用范围:可以开发OA、ERP、BPM、CRM、WMS、TMS、MIS、BI、电商平台后台、物流管理系统、快递管理系统、教务管理系统等各类管理软件。

    在线演示

    官网网址:http://www.javaweb.vip
    在线文档:http://docs.javaweb.vip/
    演示地址: http://manage.javaweb.vip
    登录账号:admin
    登录密码:123456
    验证码:520

    码云地址

    地址:https://gitee.com/javaweb520/JavaWeb

    技术支持

    技术支持QQ:1175401194

    系统UI展示

    • 系统登录
      在这里插入图片描述
    • 系统主页
      在这里插入图片描述
    • 人员管理
      在这里插入图片描述
    • 人员编辑
      在这里插入图片描述+ 角色管理
      在这里插入图片描述
    • 角色设置
      在这里插入图片描述
    • 职级管理
      在这里插入图片描述
    • 岗位管理
      在这里插入图片描述
    • 部门管理
      在这里插入图片描述
    • 菜单管理
      在这里插入图片描述
    • 菜单编辑
      在这里插入图片描述
    • 操作日志
      在这里插入图片描述
    • 广告管理
      在这里插入图片描述
    • 配置管理
      在这里插入图片描述
    • 友情链接
      在这里插入图片描述
    • 通知公告
      在这里插入图片描述
    • 代码生成器
      在这里插入图片描述
    • 商品管理
      在这里插入图片描述
    • CMS管理
      在这里插入图片描述
    • 会员中心
      在这里插入图片描述
    • 统计报表
      在这里插入图片描述
    • 统计报表二
      在这里插入图片描述
    展开全文
  • 1.成绩管理系统SSM + 2.宠物网SSM+MAVEN + 3.滴答办公SSM+MAVEN+ 4.进销存系统SSM+MAVEN + 5.兰迪酒店租房管理系统SSM+MAVEN + 6.千锋集团-教务成绩管理系统 + 7.千锋集团-图书管理系统 + 8.人力资源管理SSM+MAVEN...
  • JavaWeb图书管理系统【bookEstore文档】
    1. JavaWeb图书管理系统day01
    2. JavaWeb图书管理系统day02
    3. JavaWeb图书管理系统day03

    目录

    一、功能分析

    二、系统设计

    01、技术选型 (系统架构)

    02、数据库设计

    03、工程环境搭建和网站部署

    1) 导入jar包

    2) 建立package结构 按照JavaEE 三层结构

    3) domain类编写

    4) 工程发布

    三、功能实现

    01、用户注册

    02、用户登录

    03、用户自动登录过滤器

    04、商品添加

    05、商品列表查看

    06、商品详细信息查看

    07、添加商品到购物车

    08、显示与修改购物车数据

    09、订单生成

    10、订单列表查询与取消

    11、订单在线支付

    12、销售榜单导出功能


    一、功能分析

    1. 用户注册
    2. 用户登录
    3. 添加商品(CURD)
    4. 商品查看-- 列表查询
    5. 商品详情页面
    6. 将商品添加购物车
    7. 查看购物车
    8. 修改购物车
    9. 生成订单
    10. 订单查看(取消)
    11. 在线支付
    12. 下载销售榜单

    游客(未登录): 注册、登陆、商品查看

    商城注册用户 : 商品查看、添加商品到购物车、购物车管理、生成订单、订单管理、在线支付

    管理员 : 添加商品、商品管理、查看订单 、榜单查看(导出)

    二、系统设计

    01、技术选型 (系统架构)

    JSTL + JSP + Servlet + JavaBean + BeanUtils + FileUpload + JavaMail + DBUtils(JDBC) + C3P0 +  MySQL + MyEclipse10+ Tomcat7.0 + JDK6  + Windows

    MVC 模式

    JavaEE 三层结构:web层、service层、dao层

    DAO 模式

    02、数据库设计

    系统存在以下实体:用户、商品、订单、购物车

    购物车不放入数据库 (Session或者Cookie实现)

    用户表

    create table users (

       id int primary key auto_increment,

       username varchar(40),

       password varchar(100),

       nickname varchar(40), -- 昵称

       email varchar(100), -- 邮件

       role varchar(100) , -- 角色

       state int , -- 状态

       activecode varchar(100),

       updatetime timestamp

    );

    商品表

    create table products(

       id varchar(100) primary key ,

       name varchar(40),

       price double, -- 价格

       category varchar(40), -- 商品分类

       pnum int , -- 商品数量

       imgurl varchar(100), -- 商品图片

       description varchar(255)

    );

    订单表

    create table orders(

       id varchar(100) primary key, -- 订单id

       money double, -- 订单价格

       receiverinfo varchar(255), -- 订单收货地址

       paystate int, -- 订单的支付状态

       ordertime timestamp, -- 订单的生成时间

       user_id int ,

       foreign key(user_id) references users(id)

    );

    用户与订单之间存在 一对多关系 : 在多方添加一方主键作为外键

    订单和商品之间存在 多对多关系 : 创建第三张关系表,引入两张表主键作为外键 (联合主键)

    订单项

    create table orderitem(

       order_id varchar(100), -- 订单id

       product_id varchar(100), -- 商品id

       buynum int , -- 商品购买数量

       primary key(order_id,product_id),

       foreign key(order_id) references orders(id),

       foreign key(product_id) references products(id)

    );

    设置数据库环境

    数据库 :create database estoresystem;

    03、工程环境搭建和网站部署

    1) 导入jar包

    导入mysql驱动  mysql driver / mysql-connector-java-5.0.8-bin.jar

    导入c3p0  c3p0/c3p0-0.9.1.2.jar  将c3p0-config.xml 复制src下  将DataSourceUtils复制 cn.itcast.estore.utils  ----- 配置c3p0-config.xml数据库连接参数

    导入dbutils apache commons\dbutils\commons-dbutils-1.4.jar

    导入beanutils commons-beanutils-1.8.3.jar commons-logging-1.1.1.jar

    导入fileupload commons-fileupload-1.2.1.jar commons-io-1.4.jar

    导入javamail mail.jar

    导入jstl jstl.jar standard.jar

    2) 建立package结构 按照JavaEE 三层结构

    cn.itcast.estore.web.servlet

    cn.itcast.estore.web.filter

    cn.itcast.estore.web.listener

    cn.itcast.estore.service

    cn.itcast.estore.dao

    cn.itcast.estore.domain

    cn.itcast.estore.utils

    3) domain类编写

    4) 工程发布

    将bookEstore项目配置虚拟主机,以顶级域名方式进行发布

    1) 将工程根目录 bookEstore目录 配置虚拟主机目录 ---- 配置conf/server.xml

               <Host name="www.bookEstore.com"  appBase="myeclipse下的工程路径"

                unpackWARs="true" autoDeploy="true"

                xmlValidation="false" xmlNamespaceAware="false">

               </Host>

    2) 将工程目录下WebRoot 目录,配置缺省web应用

              <Host name="www.estore.com"  appBase=" myeclipse下的工程路径"

                unpackWARs="true" autoDeploy="true"

                xmlValidation="false" xmlNamespaceAware="false">

                              <Context path="" docBase="WebRoot" />

               </Host>

    3) 将www.estore.com 虚拟主机配置缺省虚拟主机 ----- 能够用ip直接访问主机

    <Engine name="Catalina" defaultHost="www.estore.com">

    4) 修改本机域名解析文件 hosts ---- c:\windows\system32\drivers\etc

    添加 127.0.0.1 www.bookEstore.com

    三、功能实现

    01、用户注册

    1、 功能一: 用户注册 (技术点:验证码技术 、激活邮件技术)

    1) 一次性验证码

    原理:在生成验证码Servlet程序中,将生成验证码保存Session中,用户提交验证码 与 保存在Session验证码进行比较,如果相同,请求合法 

     

    2) 注册表单 JS校验

    考虑JS校验是否可以抽取成框架

    3) 处理form乱码问题 ---- 通用get post 乱码过滤器

    4) 密码 MD5 加密 

     

    5) 激活邮件发送

     

    6) 配置通用错误处理页面web.xml

      <error-page>

          <error-code>500</error-code>

          <location>/500.jsp</location>

      </error-page>

     

      <error-page>

          <error-code>404</error-code>

          <location>/404.jsp</location>

      </error-page>

     

    500.jsp 显示错误的信息

    404.jsp 自动刷新跳转回主页面

    02、用户登录

    原理:用户输入正确用户名和密码,登陆成功,用户信息将会被保存Session对象中。 ------ 记住用户名和密码 、自动登陆

     

    1) 登陆表单中,添加记住用户名 和 自动登陆功能

     

    2) 登陆过程中判断 账户是否激活

     

    3) 在login.jsp 显示记住用户名

    在username 的input项中添加  value="${cookie.username.value}"

    在勾选自动登陆 checkbox 添加

     

    4) 登陆后注销功能

    注销Session 

    03、用户自动登录过滤器

    自动登陆功能 对系统所有页面有效 (例如访问index.jsp  list_product.jsp  info_product.jsp 这些页面在访问时都将执行自动登陆 )

    * 对于登陆相关页面不会执行自动登陆逻辑 (login.jsp 、LoginServlet 、InvalidateServlet )

    1) 判断该请求页面是否需要自动登陆

    2) 是否已经登陆

    3) 是否含有自动登陆cookie

    4) 自动登陆

    5) 在LoginServlet 添加对于没有勾选记住用户名和自动登陆 处理代码 !!!!!!!

    6) 在退出功能 InvalidateServlet 清除自动登陆信息

    04、商品添加

    文件上传三个注意事项

    1) input输入框 必须有name属性

    2) 表单form 必须post提交方式

    3) 设置form的enctype 为 multipart/form-data

     

    表单提交时,校验分为两种 : 客户端校验 、服务器端校验  ------ 只有服务器端校验才能确保数据准确

     

    商品图片上传到服务器端后,保存在哪个目录 ???  必须直接在WebRoot下及其除WEB-INF、META-INF 子目录外

     

    一般情况下,一张表对应Domain类 --- DAO类 ---- Service类

    05、商品列表查看

    列表中显示原图,因为原图比较大,页面加载非常缓慢 ,页面布局不会很美观 ---------------- 缩略图

    * Java中通过图形界面技术,生成小图

     

    在Product类中添加 getImgurl_s方法,用来获取缩略图路径

    06、商品详细信息查看

    通过在列表中点击 商品图片或者商品名称 进入详情查看页面

    07、添加商品到购物车

    购物车对象,不保存在数据库中,使用Session来保存用户购物车数据

     

    保存购物车对象 Map<Product,Integer>  key 商品对象 value 商品购买数量

     

    流程 :添加商品到购物车流程,点击添加到购物车,将商品id传递Servlet ,从Session中取出购物车对象,判断商品是否已经在购物车中,如果不在添加商品到购物车数量 1 ,在购物车取出原有数量+1 

    1) 如果Map的key是一个自定义对象,重写 hashcode和equals

    2) 如果商品不在购物车中,需要根据商品 id 查询商品所有信息,添加购物车

     

    3) 添加商品到购物车

    Session中信息在服务器正常关闭时,会被序列化到硬盘中  ---- Product实现 Serializable接口 完成序列化

    08、显示与修改购物车数据

    购物车信息保存在Session中,不需要去查询数据库,将Session中信息显示出来

     

    1) 在购物车中显示总价 

     

    2) 购物车修改 : 

    清空购物车 : request.getSession().removeAttribute("cart");

    删除购物车中单项商品 : cart.remove(product) ;  注意:删除一项后,判断购物车是否为空,如果为空 移除购物车对象

     

    * 删除确认功能

    写法一:直接在href中 触发js函数,询问用户是否确认,如果确认,location.href 发起删除请求  ----- <a href="javasript:confirmDel();" >...</a>

    写法二:<a href="/delCart?id=xx" οnclick="confirmDel(); "></a> 在链接中添加 onclick事件 ,询问用户是否确认,如果用户取消,通过JS阻止href事件提交

    阻止href默认事件 : e.preventDefault() ---- 必须支持事件 FF支持、IE不支持

    IE阻止href默认事件

             function confirmDel(e){

                      // 询问用户是否确认

                      var isConfirm = window.confirm("商品不要了吗?多好的商品啊!");

                      if(!isConfirm){

                              // 用户选择取消,阻止 a 标签 默认事件 href发生

                              if(e&&e.preventDefault){

                                       // e对象存在,preventDefault方法存在 ---- 火狐浏览器

                                       e.preventDefault();

                              }else{

                                       // 不支持e对象,或者没有preventDefault方法 ---- IE

                                       window.event.returnValue = false;

                              }

                      }

             }

     

    修改购物车中商品购买数量  ---- JavaScript 控制购物数量修改

    09、订单生成

    重点:

    1) 向orders表插入订单信息后,同时需要向orderitem表插入 订单中每项数据

    2) 多表插入 (数据完整性问题)  --- 事务管理     

    3) 订单生成后 ,商品数量更新减少

    10、订单列表查询与取消

    管理查询订单 --- 所有人订单信息

    普通用户 ---- 只能查询自己的订单

     

    在订单生成后,查看订单列表 、也可以通过index.jsp 进入订单查看页面

     

    重点:查询订单时,同时查询订单项目信息

    1) 查询订单基本信息时,查询下单用户昵称和用户名

    在Order类中 添加 用户的 username 和 nickname字段

    select orders.*,users.username,users.nickname from orders,users where orders.user_id = users.id;

     

    2) 查询订单项信息时,查询商品的名称和单价

    在OrderItem类中 添加商品的name和price 字段

    select orderitem.*,products.name,products.price from orderitem,products where orderitem.produtct_id = products.id and orderitem.order_id = ?

     

    订单取消 : 删除订单表信息时,同时删除订单项信息 (订单项信息依赖 订单信息 ,必须先删除订单项)

    注意事项

    1) 可以取消未支付的订单,如果订单已经支付,将无法取消

    2) 管理员不能取消任何用户未支付订单,普通用户只能取消 自己的未支付的订单

     

    取消订单进行事务管理 :删除订单项、删除订单、恢复商品数量

    11、订单在线支付

    1) 网站进行支付,根据易宝支付接口请求规范,生成易宝需要数据,将数据提交到易宝指定网址 https://www.yeepay.com/app-merchant-proxy/node

    * 在提交支付请求给易宝,需要将请求中数据,使用易宝提供密钥和算法进行加密,获得数字签名 hmac码 ,将hmac码发送给易宝

    2) 易宝会连接银行,进行支付

    3) 支付后,浏览器会以重定向方式访问 网站回调程序,易宝在收到银行转账后,会以Socket方式通知网站

    * 在浏览器重定向通知后,提供给用户支付成功显示页面 (不要去修改订单状态)

    * 在网站收到易宝点对点通知后,回复易宝success,修改订单状态

     

    数字签名原理:将数据 使用密钥和算法加密后 获得数字签名hmac,将数据和数字签名hmac一起发送给易宝,易宝采用同样密钥和算法对数据进行加密获得数字签名hmac,比较请求中数字签名hmac与加密后获得数字签名hmac是否一致,如果一致 签名hmac有效 (数据没有被篡改 )

     

    流程入口: 未支付订单可以进行支付,管理员不允许支付  

     

    在线支付

    1) pay.jsp 银行选择页面

    2) OnlinePayServlet 准备易宝支付参数

    * 提供密钥和算法  商家编号  真实的  将PaymentUtil 复制 utils包  , 将 merchantInfo.properties 复制 src

    * responseURL 支付成功后 回调地址 ,该地址会收到 浏览器重定向和服务器点对点两次通知 ,确保该地址 可以被易宝访问  (estore项目必须要配置缺省虚拟主机)

    将OnlinePayServlet准备易宝参数,传递JSP 确认

    3) confirm.jsp 通过form的隐藏域 提交参数给易宝网址 https://www.yeepay.com/app-merchant-proxy/node

     

    4) CallbackServlet 回调程序

    收到浏览器重定向和服务器点对点两个通知

    浏览器重定向,显示支付成功,不要修改订单状态

    服务器点对点,修改订单状态,回复success

    12、销售榜单导出功能

    获得商品销售情况,需要查询orderitem表  ------- 统计已支付订单项内容

     

    1) 榜单中存在哪些信息?(已支付订单中商品)

    商品信息 products表

    销售数量 orderitem表

    订单支付情况 orders表

     

    select * from products,orderitem,orders where products.id = orderitem.product_id and orderitem.order_id = orders.id ;

     

    进行商品分组查询 group by

     

    select products.* , sum(orderitem.buynum) totalSaleNum from products,orderitem,orders where products.id = orderitem.product_id and orderitem.order_id = orders.id and orders.paystate = 1 group by products.id order by totalSaleNum desc;

     

    2) 榜单文件是什么格式?

    导出Excel 使用 POI类库

     

    csv 格式文件 , 逗号分隔文件

    1) 信息当中有,在两端加 双引号

    2) 信息当中有" 在之前加双引号 转义

     

    文件下载

    设置Content-Type、Content-Disposition 头信息

    文件流输出 (输出文件内容)

     

    Excel 默认读取字符集gbk

    展开全文
  • 2、用户登录 3、添加商品(CURD) 4、商品查看-- 列表查询 5、商品详情页面 6、将商品添加购物车 7、查看购物车 8、修改购物车 9、生成订单 ...管理员 : 添加商品商品管理、查看订单 、榜单查看(导出)
  • JavaWeb宠物管理系统(源码+文档)

    千次阅读 多人点赞 2020-08-14 23:40:16
    javaweb的宠物管理系统,分为前后台,主要功能如下: 商品管理、订单、购物车、管理员、远远管理、公告等 系统页面截图 登录页面: 会员登录 管理员登录: 商品信息管理页面: 狗狗展示: 在线留言: 会员管理...
  • 查看商品详细信息、 添加商品到购物车、 显示购物车商品、 购物车删除与修改操作
  • 功能分析与设计、 注册与登录操作、 添加商品操作、 显示商品信息
  • 视频+资料+笔记【链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ 提取码:zjxs】 JavaWeb图书管理系统【bookEstore文档】 JavaWeb图书管理系统【源码 + 效果展示】 JavaWeb图书管理系统day01【2014.09.27...
  • 基于ssm整合的JavaWeb后台管理系统

    千次阅读 2020-07-21 10:43:10
    JavaWeb专业版,企业级开发框架SpringBoot+Layui+Thymeleaf+MybatisPlus开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理,数据库管理、富文本编辑器(已集成ueditor,kindeditor),后台支持多主题切换、...
  • JavaWeb后台管理系统(毕业设计神器)

    千次阅读 2020-07-21 11:34:30
    JavaWeb专业版,企业级开发框架SpringBoot+Layui+Thymeleaf+MybatisPlus开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理,数据库管理、富文本编辑器(已集成ueditor,kindeditor),后台支持多主题切换、...
  • 1.实现语言:Java语言。 2.环境要求:MyEclipse(Eclipse)+MySQL。 3.实现方式:JBDC、jsp/servlet。 效果图:https://blog.csdn.net/weixin_44893902/article/details/115377650
  • 这是基于JAVAweb的宠物管理系统完整源码。 一、任务书设计需求 本系统主要是由RFID自动识别技术,通过无线射频方式对宠物的电子标签进行读取,获取宠物的基本信息和在店内的所有消费,然后将数据通过网络传输至...
  • JavaWeb仓库管理系统,表弟的棒棒糖到底谁拿了

    千次阅读 多人点赞 2021-08-29 21:22:44
    系统界面图 难度系数(易入) 因为才有比较基础的语法,对Java初学者、基础不是太好的小伙伴来说,也是比较容易上手的 后端: 1.使用Java Servlet 本身就是Java语法,无缝链接,也无效更种配置,web.xml轻松配置一...
  • 设计(论文)内容: ...完成货物类型、商品类型、货物入库、货物出库、库存等的全过程管理,包括添加入库、出库等,添加、修改和删除出库入库记录,修改、删除库存信息,查看出库入库情况和货物数量
  • 正文之前在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统目前项目源码已全部上传至GitHub,欢迎大家来fork —— 商品...
  • 利用Servlet+jsp+Mysql等javaWeb技术。从dao到测试。实现登陆增删查改。管理系统
  • JavaWeb专业版,企业级开发框架SpringBoot+Layui+Thymeleaf+MybatisPlus开发权限(RBAC)及内容管理框架,框架中集成了权限管理、模块管理,数据库管理、富文本编辑器(已集成ueditor,kindeditor),后台支持多主题切换、...
  • 基于Javaweb实现超市管理系统

    千次阅读 2021-06-17 09:35:38
    项目编号:BS-XX-050 运行环境: 开发工具:IDEA / ECLIPSE ...大学校内超市管理系统,实现收银台,商品分类管理,商品库存管理,商品管理,营收统计等功能 软件架构 使用说明 项目导入ecli...
  • javaweb仓库管理系统的实现,基于ssm+mysql实现的WMS进销存出库入库系统 感兴趣的朋友可以家 3060912346 主要技术 SpringBoot\SSM(两个版本都有) HTML、jQuery、HTML、CSS、JS Mysql bootstrap 开发工具和环境 ...
  • JavaWeb项目作业 Market商品管理系统

    千次阅读 多人点赞 2021-04-01 16:33:51
    1、首页完成商品信息列表显示,如图1所示。需求功能如下: 分页展示 多条件模糊查询商品 图1列表信息展示 2、当用户点击新增超链接时进入新增页面,类型数据为动态加载,用户添加成功后返回列表页面显示最新...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,081
精华内容 1,232
关键字:

javaweb商品管理系统

java 订阅