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>

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;

        }

    }

}

四、项目完整源代码

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

  • 22
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaWeb课程设计是一门综合性较强的课程,要求学生通过设计一个完整JavaWeb项目来实践和巩固所学的知识。源代码是整个项目的核心部分,它包含了项目的所有实现细节和功能代码。 源代码可以分为前端和后端两部分。前端部分主要负责与用户的交互,通过HTML、CSS、JavaScript等技术实现页面的呈现和用户的输入验证,其主要目的是提供美观、友好的用户界面。后端部分则主要负责处理用户的请求,与数据库进行交互,并返回相应的数据或页面。在后端部分,Java语言及相关技术如ServletJSP、JDBC等是主要的开发工具。通过这些技术,可以实现用户注册、登录、数据查询、数据添加和修改等功能。 在设计源代码时,需要遵循软件工程的相关原则和规范,如模块化、封装、可维护性和可扩展性等。代码应该清晰、易读,并且有良好的注释,以便于他人的理解和维护。此外,还需要根据项目需求进行代码优化,提高程序的性能和响应速度。 除了基本的功能代码外,源代码还应包含相应的配置文件,如web.xml用于配置Servlet和URL映射关系,数据库连接池的配置文件等。这些配置文件是项目正常运行的重要组成部分,能够保证项目的稳定性和可靠性。 总之,javaweb课程设计源代码课程设计的实质性成果,它是整个项目的核心,不仅反映了学生在JavaWeb开发技术上的掌握程度,也体现了软件工程的基本原则和实践。仔细设计和编写源代码能够使项目更加稳定、可维护和易扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值