基于JavaWeb的网上销售系统设计与实现

140 篇文章 15 订阅
139 篇文章 2 订阅

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题,今天给大家介绍一篇基于JavaWeb的网上销售系统设计与实现。

功能需求

本网上销售系统通过分析和确定系统的角色和功能划分,按照业务合理区分为不同的菜单功能模块。从用户角度出发,对每个功能的需求实现点进行人性化详细的构思。对每个功能的细节点进行分析设计整合完成整个网上销售系统的设计。这两类的主要功能如下:
(1)前端网页:
1、网站首页
2、用户登录注册
3、全部商品
4、新闻公告
5、咨询客服
6、详情下单
7、个人中心
(2)后台管理
1、后台主页
2、购物车管理
3、订单信息管理
4、留言管理
5、个人中心
6、商品信息管理
7、管理员登录

部分效果图

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

在这里插入图片描述

在这里插入图片描述

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

部分代码


/**
 * 前台、后台、登录。
 * 和修改密码项
 */
public class LoginCtrl extends HttpServlet {

    // 构造函数
    public LoginCtrl() {
        super();
    }

    // 析构函数
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    // get 访问得时候运行这个方法
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 将get 方法得内容运行到Post 方法中
        this.doPost(request, response);
    }

    // 输出弹出框、并跳转到指定页面
    public void go(String url, HttpServletRequest request, HttpServletResponse response) {
        try {
            // 获取输出流
            PrintWriter out = response.getWriter();
            // 输出到控制台
            System.out.println(request.getAttribute("error"));
            // 判断有没有错误、有得话就输出弹出框
            if (request.getAttribute("error") != null) {
                out.println("<script>alert('" + request.getAttribute("error") + "');location.href='" + url + "'</script>");
                out.close();
                return;
            }
            // 加载指定jsp 页面、
            request.getRequestDispatcher(url).forward(request, response);
        } catch (ServletException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 跳转到某个页面
    public void gor(String url, HttpServletRequest request, HttpServletResponse response) {
        try {
            // 执行页面跳转
            response.sendRedirect(url);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    // 执行post 方法
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设定编码为 utf-8
        response.setContentType("text/html;charset=utf-8");
        // 获取输出流
        PrintWriter out = response.getWriter();
        // 判断执行那个 if 判断内容
        String ac = request.getParameter("ac");
        if (ac == null) ac = "";
        // 生成数据库查询对象
        CommDAO dao = new CommDAO();
        // 获取当前时间
        String date = Info.getDateStr();
        // 获取当前日期
        String today = date.substring(0, 10);
        // 获取当前年月
        String tomonth = date.substring(0, 7);

        // 前台登录代码
        if (ac.equals("login")) {
            // 获取前台填写得账号
            String username = request.getParameter("username");
            // 获取前台填写得密码
            String password = request.getParameter("pwd");
            // 判断页面上选择的权限
            String utype = request.getParameter("cx");
            // 获取填写得验证码
            String pagerandom = request.getParameter("pagerandom") == null ? "" : request.getParameter("pagerandom");
            // 获取生成验证码时保存在session 中得验证码
            String random = (String) request.getSession().getAttribute("random");
            // 对比验证码是否正确、不正确则输出验证码错误
            if (!pagerandom.equals(random) && request.getParameter("a") != null) {
                request.setAttribute("error", "验证码错误");
                go("index.jsp", request, response);
            } else {
                String sql1 = "";
                if (utype.equals("用户")) {
                    sql1 = "select * from yonghu where yonghuming='" + username + "' and mima='" + password + "' ";
                }

                // 查询数据库中得信息判断账号密码得正确性
                Map map = dao.find(sql1);
                // map 不为空则是登录成功
                if (!map.isEmpty()) {
                    // 获取数据循环
                    Iterator iter = map.keySet().iterator();
                    // 设置session
                    request.getSession().setAttribute("username", username);
                    request.getSession().setAttribute("login", utype);
                    request.getSession().setAttribute("cx", utype);

                    while (iter.hasNext()) {
                        // 这个循环设置用户得信息进session 中
                        String key = (String) iter.next();
                        String val = (String) map.get(key);
                        request.getSession().setAttribute(key, val);
                    }
                    // 跳转到index.jsp
                    gor("index.jsp", request, response);
                } else {
                    // 否则提示账号或密码错误
                    request.setAttribute("error", "账号或密码错误");
                    go("index.jsp", request, response);
                }
            }
        }
        // 后台登录
        if (ac.equals("adminlogin")) {
            // 后台管理员登录
            // 获取前台填写得账号
            String username = request.getParameter("username");
            // 获取前台填写得密码
            String password = request.getParameter("pwd");
            // 判断页面上选择的权限
            String utype = request.getParameter("cx");
            // 获取填写得验证码
            String pagerandom = request.getParameter("pagerandom") == null ? "" : request.getParameter("pagerandom");
            // 获取生成验证码时保存在session 中得验证码
            String random = (String) request.getSession().getAttribute("random");
            // 对比验证码是否正确、不正确则输出验证码错误
            if (!pagerandom.equals(random) && request.getParameter("a") != null) {
                request.setAttribute("error", "验证码错误");
                go("login.jsp", request, response);
            } else {
                String sql1 = "";

                if (utype.equals("管理员")) {
                    sql1 = "select * from admins where username='" + username + "' and pwd='" + password + "' ";
                }

                // 查询数据库中得信息判断账号密码得正确性
                Map map = dao.find(sql1);
                // map 不为空则是登录成功
                if (!map.isEmpty()) {
                    // 获取数据循环
                    Iterator iter = map.keySet().iterator();
                    // 设置session
                    request.getSession().setAttribute("username", username);
                    request.getSession().setAttribute("cx", utype);
                    request.getSession().setAttribute("login", utype);
                    while (iter.hasNext()) {
                        // 这个循环设置用户得信息进session 中
                        String key = (String) iter.next();
                        String val = (String) map.get(key);
                        request.getSession().setAttribute(key, val);
                    }
                    // 跳转到main.jsp
                    gor("main.jsp", request, response);
                } else {
                    // 否则提示账号或密码错误
                    request.setAttribute("error", "账号或密码错误");
                    go("login.jsp", request, response);
                }
            }
        }

        //修改密码
        if (ac.equals("adminuppass")) {
            // 获取前台填写得原密码
            String olduserpass = request.getParameter("ymm");
            // 获取前台填写得新密码
            String userpass = request.getParameter("xmm1");
            // 获取前台填写得确认密码
            String copyuserpass = request.getParameter("xmm2");
            //  println(Info.getUser(request).get("id").toString());
            // 判断当前权限p
            String cx = (String) request.getSession().getAttribute("login");
            //String oldPassword = "";
            // 获取当前登录用户的账号
            String username = request.getSession().getAttribute("username").toString();
            Map m = null;
            String biao = "";
            if (cx.equals("管理员")) {
                biao = "admins";
                m = Query.make(biao).where("username", username).where("pwd", olduserpass).find();
                // dao.getmaps("username", (String) request.getSession().getAttribute("username"), "admins");
            }
            if (cx.equals("用户")) {
                biao = "yonghu";
                m = Query.make(biao).where("yonghuming", username).where("mima", olduserpass).find();
                // dao.getmaps("yonghuming", (String) request.getSession().getAttribute("username"), "yonghu");
            }

            // 尝试登录一下原密码、如果为null  或 空map则提示原密码错误
            if (m == null || m.isEmpty()) {
                // 提示原密码错误
                request.setAttribute("error", "原密码错误");
                go("mod.jsp", request, response);
            } else {
                //String id = (String)user.get("id");
                // 否则更新成新密码
                String sql = "";
                if (cx.equals("管理员")) {
                    sql = "UPDATE admins SET pwd='" + userpass + "' WHERE username='" + username + "'";
                }
                if (cx.equals("用户")) {
                    sql = "UPDATE yonghu SET mima='" + userpass + "' WHERE yonghuming='" + username + "'";
                }

                //执行更新密码
                dao.commOper(sql);
                //  提示密码修改成功
                request.setAttribute("error", "密码修改成功");
                go("mod.jsp", request, response);
            }
        }

        dao.close();
        out.flush();
        out.close();
    }

    public void init() throws ServletException {
        // Put your code here
    }
}

安装部署需求

eclipse运行启动

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在eclipse中运行打包;

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL5.7
4.框架:Servlet+JSP

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse
语言 JDK1.8 、Servlet+JDBC+JSP
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 总体介绍 本次项目主要以本学期所学内容为基础,采用servlet+jsp+jdbc的技术以及mvc模式进行项目开发,本次开发的内容主要以实现CRUD核心功能为主的教务管理系统,分为学生端和教师端,前端采用jquery进行数据传输以及处理,bootstap写界面。 2. 技术架构 运行环境:tomcat9+mysql5+maven3.8+jdk8 前端技术:jquery 用以数据处理以及前端验证以及生成验证码等等 Bootstrap 前端界面处理 后端技术:servelt+jsp maven进行jar包和第三方库管理 采用jspsmart进行文件的操作处理 数据库:mysql5 基于MVC的分层思想及采用jsp+servelt技术的B/S结构的应用系统系统主要开发语言为JAVA,JSP。数据库要求使用MySQL8.0,应用服务器选用Tomcat服务器 3. 功能介绍 系统能够提供用户有好的界面 系统具有良好的允许效率 系统具有良好的扩充性,灵活性 系统管理操作简单易懂 3.1 总体结构 3.2 模块详情 学生模块: 注册: 1. 用户点击注册,进行注册; 2. 用户输入注册信息; 3. 校验数据:如果用户名重复或者两次密码校验不合格或者密码规格不符合,则提示错误信息; 4. 若信息无错误,提示注册成功,跳转到登录页。 登录: 1. 用户进入系统未进行登录则自行跳转登录页面; 2. 点击忘记密码可进行密码找回; 3. 提交信息进行校验,查看用户名密码是否为空以及是否符合格式,随后在后台进行校验,合格则进行登录跳转到用户界面; 4. 若登录信息不正确,则提示登录错误信息。 查看成绩: 1. 点击查看成绩,打印成绩列表; 2. 支持到处成绩单为pdf格式。 导出成绩: 1. 点击到处按钮; 2. 系统自动处理并到处成pdf。 个人信息管理: 1. 选择上传头像 2. 修改个人信息:按需填写个人信息,随后进行保存则覆盖修改以往的个人信息。 退出登录: 1. 点击退出登录,自动退出到首页并删除本地和服务器缓存。 教师模块: 注册: 1用户点击注册,进行注册; 2用户输入注册信息; 3校验数据:如果用户名重复或者两次密码校验不合格或者密码规格不符合,则提示错误信息; 4若信息无错误,提示注册成功,跳转到登录页。 登录: 1用户进入系统未进行登录则自行跳转登录页面; 2点击忘记密码可进行密码找回; 3提交信息进行校验,查看用户名密码是否为空以及是否符合格式,随后在后台进行校验,合格则进行登录跳转到用户界面; 4若登录信息不正确,则提示登录错误信息。 个人信息管理: 1选择上传头像 2修改个人信息:按需填写个人信息,随后进行保存则覆盖修改以往的个人信息。 学生管理: 1. 点击添加学生,填写学生信息进行添加; 2. 修改学生信息,点击修改,按需填写要修改的学生信息,进行保存覆盖修改; 3. 点击删除学生数据,提示是否删除,确定则删除,取消则不删除; 4. 查看成绩,点击查看学生成绩,单独列出学生成绩列表; 成绩管理: 1. 点击成绩管理,列出所有学生成绩; 2. 点击修改,勾选需要修改的学生,按需填写修改信息,保存覆盖修改学生信息。 退出登录: 1点击退出登录,自动退出到首页并删除本地和服务器缓存。 4. 页面设计 静态jsp页面和jquery和bootstrap 5. 数据库设计 权限对照表: 表名: role 名称 类型 长度 允许空值 是否主键 注释 uid 整型 11 否 是 权限等级 utype 字符 255 否 否 用户等级名称 分数表: 表名: score 名称 类型 长度 允许空值 是否主键 注释 id 整型 200 否 是 学号 dat 字符 255 否 否 课程1分数 Android 字符 255 否 否 课程2分数 Jsp 字符 255 是 否 课程3分数 学生表: 表名: student 名称 类型 长度 允许空值 是否主键 注释 id 整型 59 否 是 学号 password 字符 255 否 否 登陆密码 Name 字符 255 否 否 学生姓名 Sex 字符 255 是 否 性别 School_date 字符 255 是 否 入学时间 Major 字符 255 是 否 专业 email 字符 255 是 否 邮箱 教师表: 表名: student 名称 类型 长度 允许空值 是否主键 注释 id 整型 59 否 是 教师工号 password 字符 255 否 否 登陆密码 Name 字符 255 否 否 教师姓名 Sex 字符 255 是 否 性别 email 字符 255 是 否 邮箱

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿麦小七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值