java毕业设计——基于javaweb+mysql的jsp+servlet仿小米网上商城项目(java+jsp+servlet+mysql+axios)

 大家好,今天给大家介绍基于java+Servlet+jsp的网上商城销售系统设计与实现,有需要源码或需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴

参考演示

【java毕业设计——基于javaweb+mysql的jsp+servlet仿小米网上商城项目(java+jsp+servlet+mysql+axios)】 https://www.bilibili.com/video/BV1ie411z7mg/?share_source=copy_web&vd_source=cfd1c15af1b3d1369bed270e3903f8fc

基于javaweb+mysql的jsp+servlet仿天猫网上商城项目(java+jsp+servlet+mysql+ajax)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用范围

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明基于javaweb+mysql的JSP+Servlet仿天猫网上商城项目(java+jsp+servlet+mysql+ajax)

一、项目简述

功能:

前台:

  • 用户模块(登录注册,修改信息,修改密码等)

  • 分类模块(商品种类,查询,筛选)

  • 商品模块(商品查询添加)

  • 购物车模块(添加购物车,购物车结算,购物车数量加购)

  • 沙箱支付(通过支付宝沙箱进行测试支付功能)

  • 订单模块(查看订单,确认收货)

  • 评论模块(可以实现购买后的商品进行评论发布)

后台:

  • 管理员模块(管理员对商品进行修改审核,对用户管理,对订单筛选查看,对日志查看)

  • 分类管理模块(商品种类管理)

  • 商品管理模块(商品的状态以及审核和操作)

  • 评论管理(对评论内容的违规删除操作)

  • 订单模块(对订单执行筛选查询操作)

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP + Servlert + html+ css + JavaScript + JQuery + axios+ 沙箱支付等等。
 

 三、项目运行图片

商品主页

 登录注册页面

商品主页轮播查询

商品详情

卖家个人中心

购物车页面

订单页面

商品管理+添加

+

管理员+上传用户

修改密码

 //获取所有商品信息
public void selAllGoods(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        //创建代理对象
        GoodsService proxy = (GoodsService) ServiceProxy.createProxy(GoodsService.class);
        //定义页码和每页显示数量
        int pageNum = 1;
        int pageSize = 5;
        //定义查询条件
        int gflag = 0;
        //获取页码
        String pageNum1 = request.getParameter("pageNum");
        if (pageNum1 != null) {
            pageNum = Integer.parseInt(pageNum1);
        }
        //获取每页显示数量
        String pageSize1 = request.getParameter("pageSize");
        if (pageSize1 != null) {
            pageSize = Integer.parseInt(pageSize1);
        }
        //获取查询条件
        String gflag1 = request.getParameter("gflag1");
        if (gflag1 != null) {
            gflag = Integer.parseInt(gflag1);
        }
        //调用代理对象获取商品信息
        List<Goods> list = proxy.selAllGoods(pageNum, pageSize, gflag);
        //创建分页信息
        PageInfo<Goods> info = new PageInfo<Goods>(list);
        //将分页信息转换为json格式
        JSONObject json = JSONObject.fromObject(info);
        //将json格式的数据写入到response中
        response.getWriter().write(json.toString());
    }

  //购物车
 public void selCar(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
        //创建代理对象
        RecordService proxy = (RecordService)ServiceProxy.createProxy(RecordService.class);
        //获取session中的userinfo
        Userinfo userinfo = (Userinfo)request.getSession().getAttribute("U");

        //获取页码和每页显示数量
        int pageNum = 1;
        int pageSize = 5;
        //获取url中的页码和每页显示数量
        String pageNum1 = request.getParameter("pageNum");
        String pageSize1 = request.getParameter("pageSize");
        //如果url中有页码,则使用url中的页码
        if(pageNum1 != null) {
            pageNum = Integer.parseInt(pageNum1);
        }
        //如果url中有每页显示数量,则使用url中的每页显示数量
        if(pageSize1 != null) {
            pageSize = Integer.parseInt(pageSize1);
        }
        //调用代理对象的selCar方法
        List<Record> list = proxy.selCar(pageNum,pageSize,userinfo.getUid(),1);
        //创建PageInfo对象
        PageInfo<Record> pageInfo = new PageInfo<Record>(list);
        //将PageInfo对象转换为JSONObject
        JSONObject josn = JSONObject.fromObject(pageInfo);
        //将JSONObject写入response
        response.getWriter().write(josn.toString());
    }

//上传
    public void upload(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        try {
            // 创建文件上传工厂
            DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
            // 创建文件上传工具
            ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
            // 解析请求
            List<FileItem> list = servletFileUpload.parseRequest(request);
            // 创建一个Map集合
            Map<String, String> map = new HashMap<String, String>();
            // 遍历文件列表
            for (int i = 0; i < list.size(); i++) {
                // 获取文件项
                FileItem fileItem = list.get(i);
                // 获取当前路径
                String path1 = request.getRealPath("/");  //F:\tomcat8.5\apache-tomcat-8.5.41\webapps\test1\
                // 获取文件路径
                String path2 = "upload/" + new Date().getTime() + new Random().nextInt(10000) + fileItem.getName().substring(fileItem.getName().lastIndexOf("."));
                // 创建文件
                File f1 = new File(path1 + path2);
                // 将文件写入文件
                fileItem.write(f1);
                // 将文件路径放入Map集合中
                map.put("file" + i, path2);
            }
            // 将Map集合转换成JSON对象
            JSONObject json = JSONObject.fromObject(map);
            // 返回JSON对象
            response.getWriter().write(json.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }


    }
//主页js
new Vue({
    el: "#all",
    data: {
        u: {uid: "", uname1: "", usrc: ""},
        rnum: 0,
        gtypes: [],
        goods: [],
        like: "",
        checkedGtid: [],
        money1: "",
        money2: "",
        a:"1"
    },
    methods: {
        forward(gid) {
            sessionStorage.setItem("gid", gid);
            // location.href = "";

        },
        zonghe(type) {
            axios({
                baseURL: "http://localhost:8080/text1",
                url: "/zonghe.do",
                method: "get",
                params: {type: type},
                responseType: "json"
            }).then(response => {
                if (response.data.length != 0) {
                    this.goods = response.data;
                }
            });
        },
        selMoneys() {
            var a = this.a;
            if (a == 1) {

                this.selMoney(-1, 500);
                // return;
            }
            if (a == 2) {
                this.selMoney(500, 1000);
                return;
            }
            if (a == 3) {
                 this.selMoney(1000, 2000);
                return;
            }
            if (a == 4) {
                 this.selMoney(2000, 3000);
                return;
            }
            if (a == 5) {
                this.selMoney(3000, -1);
                return;
            }
        },
        selMoney(money1, money2) {
            if (money1 == "" || money2 == "") {
                alert("请输入价格");
                return;
            }

            if (isNaN(money1) || isNaN(money2)) {
                alert("价格必须是数字");
                return;
            }

            if ((parseInt(money1) > parseInt(money2)) && money2 != -1) {
                var a = money1;
                money1 = money2;
                money2 = a;
            }

            axios({
                baseURL: "http://localhost:8080/text1",
                url: "/indexGoods3.do",
                method: "get",
                params: {money1: money1, money2: money2},
                responseType: "json"
            }).then(response => {
                if (response.data.length != 0) {
                    this.goods = response.data;
                } else {
                    alert("未查到相关数据");
                }
            });
        },
        selOne(gtid) {
            var index = this.checkedGtid.indexOf(gtid);
            if (index == -1) {
                this.checkedGtid.push(gtid);
            } else {
                this.checkedGtid.splice(index, 1);
            }
        },
        selType2() {
            if (this.checkedGtid.length > 0) {
                var gtid = "";
                for (var i = 0; i < this.checkedGtid.length; i++) {
                    gtid += this.checkedGtid[i] + ",";
                }
                this.selType(gtid);
            }
        },
        selType(gtid) {
            axios({
                baseURL: "http://localhost:8080/text1",
                url: "/indexGoods2.do",
                method: "get",
                params: {gtid: gtid},
                responseType: "json"
            }).then(response => {
                if (response.data.length != 0) {
                    this.goods = response.data;
                } else {
                    alert("未查到相关数据");
                }

            });
        },
        selLike() {
            if (this.like != "") {
                axios({
                    baseURL: "http://localhost:8080/text1",
                    url: "/indexGoods1.do",
                    method: "get",
                    params: {like: this.like},
                    responseType: "json"
                }).then(response => {
                    if (response.data.length != 0) {
                        this.goods = response.data;
                    } else {
                        alert("未查到相关数据");
                    }

                });
            }
        }
    },
    beforeMount() {
        axios({
            baseURL: "http://localhost:8080/text1",
            url: "/index.do",
            method: "get",
            responseType: "json"
        }).then(response => {
            this.gtypes = response.data.list1;
            this.goods = response.data.list2;
            if (response.data.U != undefined) {
                this.u = response.data.U;
                this.rnum = response.data.num;
            }


        });
    }

});
//用户vue代码
Vue.filter("ff", function (data) {
    var dd = new Date(data.time);
    var year = dd.getFullYear();
    var month = dd.getMonth() + 1;
    var date = dd.getDate();
    var hour = dd.getHours();
    var minute = dd.getMinutes();
    var second = dd.getSeconds();
    return year + "-" + month + "-" + date + "  " + hour + ":" + minute + ":" + second;
});

var v1 = new Vue({
    el: "#all",
    data: {
        u:{uid:"",uacc:"",upwd:"",utel:"",uadd1:"",uadd2:"",uadd3:"",urole:"",usrc:"",utime:"",uflag1:"",uname1:"",uname2:"",ubieyong1:""}
    },
    methods: {
        upload(obj){
            if(obj.files.length == 1){
                for(var i=0;i<obj.files.length;i++){
                    var end = [".jpg",".jpeg",".png"];
                    var dian = obj.files[i].name.lastIndexOf(".");
                    var sub = obj.files[i].name.substring(dian);
                    if(end.indexOf(sub) == -1){
                        alert("只能上传.jpg,.jpeg,.png的文件");
                        return;
                    }
                }

                var formData = new FormData();
                for(var i=0;i<obj.files.length;i++){
                    formData.append("ff",obj.files[i]);
                }

                axios({
                    baseURL: "http://localhost:8080/text1",
                    url:"/upload.do",
                    method:"post",
                    headers:{"Content-Type":"multipart/form-data"},
                    data:formData,
                    responseType:"text"
                }).then(response=>{
                    this.u.usrc = response.data.file0;
                });

            }else{
                alert("只能上传一个图片");
            }
        },
        update() {
            axios({
                baseURL: "http://localhost:8080/text1",
                url: "/updateUserinfo.do",
                method: "get",
                params: this.u,
                responseType: "text"
            }).then(response => {
                if (response.data == "ok") {
                    alert("修改成功");
                    history.go(0);
                } else {
                    alert("系统异常,稍后重试");
                }
            });
        }
    },
    beforeMount() {
        axios({
            baseURL: "http://localhost:8080/text1",
            url: "/selSession.do",
            method: "get",
            responseType: "json"
        }).then(response => {
            this.u = response.data;
            this.u.utime = this.$options.filters["ff"](this.u.utime);
        });
    }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值