当前位置:   article > 正文

Javaweb在线购物商城-完整源代码-课程设计_javaweb网上商城源码

javaweb网上商城源码

一、项目简介

这是一个基于JavaWeb的在线购物商城系统。
主要用 servlet+jsp 实现,数据库用的 mysql
你是否还在被课程设计而折磨呢?当你看到这篇文章也许会给你带来帮助!!!
下面一张图告诉你,系统有哪些功能!
如果需要完整源代码,可以直接 跳转到文章尾部
在这里插入图片描述

二、项目实现效果

2.1登录页面

这就是一个简单的登录页面,左边是一个轮播图,右边是一个输入信息的表单!
可以选择不同身份进行登录。
在这里插入图片描述

2.2 用户主页面

在用户登录之后,便可以进入到这个页面里面了。
用户可以通过商品名称进行查询,也可以通过左边的商品分类按钮进行分类查询商品信息。
用户也可以在这里修改信息,查看自己的收藏等信息!
在这里插入图片描述
在这里插入图片描述

2.3 用户个人信息页面

这里是用户的个人信息页面,用户可以在这里面查看自己的信息,也可以进行修改。
关键是可以进行修改密码!!!
在这里插入图片描述

2.4 用户购物车页面

这里是用户个人的购物车页面,可以在这里面进行商品结算,也可以修改购物车中商品的数量。
在这里插入图片描述

2.6 商品结算页面

这里是进入到了商品订单结算页面,在这里可以看出来这次订单的商品信息,以及购买人的信息。
在这里插入图片描述

2.7 管理员页面

这里就是进入到了管理员的视角,
可以看到所有的商品信息,并且可以对商品进行管理,比如增删改查
在这里插入图片描述

2.8 发布商品页面

这里面可以进行商品发布!
在这里插入图片描述

三、部分代码展示

3.1 商品数据库

在这里插入图片描述

3.2 数据库连接池

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config> <!--默认配置 -->
    <default-config>
        <!--initialPoolSize:连接池初始化时创建的连接数,default : 3,取值应在minPoolSize与 maxPoolSize之间-->
        <property name="initialPoolSize">10</property>
        <!-- maxIdleTime:连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接。如果为0,则永远不会断开连接,即回收此连接。default : 0 单位 s -->
        <property name="maxIdleTime">30</property>
        <!--maxPoolSize:连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大,default : 15-->
        <property name="maxPoolSize">100</property>
        <!--minPoolSize:连接池保持的最小连接数,default : 3-->
        <property name="minPoolSize">10
        </property>
        <!--maxStatements:连接池为数据源缓存的PreparedStatement的总数。由于PreparedStatement属于单 个Connection,所以这个数量应该根据应用中平均连接数乘以每个连接的平均PreparedStatement 来计算-->
        <property name="maxStatements">200</property>
    </default-config> <!--配置连接池oracle -->
    <!-- 配置mysql-->
    <named-config name="mysql-book">
	    <!--mysql需要使用的驱动类-->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
		<!--连接语句-->
        <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/mydemo1?useUnicode=true&amp;characterEncoding=utf8</property>
		<!--mysql的用户名-->
        <property name="user">root</property>
		<!--我的mysql的密码:根据自己机器进行修改-->
        <property name="password">123456</property>
		<!--连接池初始化时创建的连接数:10-->
        <property name="initialPoolSize">10</property>
		<!--maxIdleTime:连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接。-->
        <property name="maxIdleTime">30</property>
		<!--连接池中拥有的最大连接数-->
        <property name="maxPoolSize">100</property>
		<!--连接池保持的最小连接数-->
        <property name="minPoolSize">10</property>
		<!--连接池为数据源缓存的PreparedStatement的总数-->
        <property name="maxStatements">200</property>
    </named-config>
</c3p0-config>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

3.3 登录注册

package action;

import bean.User;
import biz.UserBiz;
import dao.UserDao;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;


@WebServlet("/user.let")
public class UserServlet extends HttpServlet {

    // 构建UserBiz的对象
    UserBiz userBiz = new UserBiz();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();

        //1.判读用户请求的类型为login
        String method = req.getParameter("type");
        switch (method) {
            case "login":
                // 从 login.html中 拿 账号,密码等数据
                String name = req.getParameter("name");
                String pwd = req.getParameter("pwd");

                String option = req.getParameter("option");
                int temp = -1;
                //  调用UserBiz的getUser方法,根据 网页中 输入的账号密码,获取相应对象
                User user = userBiz.getUser(name,pwd);
                if(option.equals("option1")){  // 用户登录
                    if (user == null) {
                        out.println("<script>alert('用户名或密码不存在');location.href = 'login.html';</script>");
                    }else {
                        session.setAttribute("user",user);//user-->Object
                        req.getRequestDispatcher("/UserShow").forward(req, resp);

                    }
                }else if(option.equals("option2")){  // 管理员登录
                    try {
                        temp = new UserDao().getManage(name,pwd);
                    } catch (SQLException throwables) {
                        throwables.printStackTrace();
                    }
                    if (temp == 1){
                        out.println("<script>alert('用户名或密码不存在');location.href = 'login.html';</script>");
                    }else{
                        req.getRequestDispatcher("/index").forward(req, resp);
                    }
                }

                 break;
            case "register" :

                // 从 login.html中 拿 账号,密码等数据
                String name1 = req.getParameter("name");
                String pwd1 = req.getParameter("pwd");
                String phone = req.getParameter("phone");
                String address = req.getParameter("address");
                UserDao userDao = new UserDao();
                try {
                    userDao.setUser(name1,pwd1,"imgs/touxiang.jpg",phone,address);
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
                out.println("<script>alert('注册成功');location.href = 'login.html';</script>");
                break;

        }

    }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90

四、项目完整源代码

下面是完整代码的资料!如果项目在部署环节出问题了,可以联系我远程部署,一直在线!
也可以直接 点我跳转到项目完整代码
链接:https://pan.baidu.com/s/1nlvozPOMFZZ_yAtGqNd0ww?pwd=baoz
提取码:baoz

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/816973
推荐阅读
相关标签
  

闽ICP备14008679号