基于javaweb的网上图书销售系统(servlet+jsp)

系统简介

    本项目采用eclipse工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。
角色:

  1. 管理员
  2. 普通用户

模块简介

管理员:

  1. 登录
  2. 用户管理
  3. 图书分类管理
  4. 图书管理
  5. 图书订单管理
  6. 图书评论管理
  7. 数据统计管理
  8. 个人信息管理

用户:

  1. 登录注册
  2. 浏览图书信息
  3. 购物车管理
  4. 收藏图书
  5. 下单图书
  6. 个人信息管理
  7. 金额充值管理
  8. 评论图书
  9. 收货地址管理

项目简介
难度等级:✩✩✩
用户类型:2角色(管理员,用户)
设计模式:MVC
项目架构:B/S架构
开发语言:Java语言
前端技术:HTML、CSS、JS、JQuery等
后端技术:JSP、servlet框架
运行环境:Windows7或10、JDK1.8
运行工具:本系统采用eclipse开发,支持idea运行。
数  据  库:MySQL5.5/5.7/8.0版本
运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
是否基于Maven环境:否
是否采用框架:是
数据库表数量:6张表
JSP页面数量:20多张
是否有分页:有分页


视频展示

javaweb网上图书销售管理系统_哔哩哔哩_bilibili本项目采用工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。系统一共分为2个角色分别是:图书,管理员有需要加 微信 hhh1148720753 或者 QQ1148720753(非开源,非开源,非开源,重要事情说三遍), 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 码盗666, 作者简介 java码农一枚,相关视频:【2023年8月份最强chatGPT4.0】免费使用教程,javaweb家庭财务管理系统,客户管理系统,基于javaweb宿舍管理系统(eclipse_mysql_jsp_servlet),健身房俱乐部管理系统,AUTOSAR CP培训,基于ssm的高校学生选课系统,【大麦抢票】9.6最新演唱会抢票攻略,规培入科循环系统常用医嘱,公布我稳定盈利的交易系统icon-default.png?t=N7T8https://www.bilibili.com/video/BV1VP411a7pJ/?vd_source=8ad4632d619f0460b22fc0a42f840129


获取地址

xystgl · master · 码盗_java_bishe / java系统 · GitCodeGitCode——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlabicon-default.png?t=N7T8https://gitcode.net/qq_43485489/javaweb/-/blob/master/xystgl


图片展示


部分代码展示

登录

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>登录</title><link rel="icon" href="<%=path%>/resource/static/favicon.ico"><link rel="stylesheet" href="<%=path%>/resource/static/bootstrap/css/bootstrap.min.css"><link rel="stylesheet" href="<%=path%>/resource/static/admin/css/login.css"><script src="<%=path%>/resource/static/js/vue.min.js"></script><script src="<%=path%>/resource/static/js/jquery-3.3.1.min.js"></script><script src="<%=path%>/resource/static/bootstrap/js/bootstrap.bundle.js"></script><style>body {width: 100% ;height: 100%;background-image: url(<%=path%>/resource/back.jpg);background-repeat: no-repeat;background-size: 100% 100%;background-size:cover;}</style>
</head>
<body>
<div class="login"><form id="saveForm"><h2>网上图书销售系统</h2><div class="form-group"><label>用户名</label><input type="text" v-model="username" name="username" id="username" class="form-control form-control-lg"></div><div class="form-group"><label>密码</label><input type="password" v-model="password" name ="password" id="password" class="form-control form-control-lg" id="pwd"></div><div class="form-group form-check"><input type="radio" class="form-check-input" name="type" value="1" id="exampleCheck2" checked><label class="form-check-label" for="exampleCheck2">管理员</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" class="form-check-input" name="type" value="2" id="exampleCheck1" ><label class="form-check-label" for="exampleCheck1">普通用户</label></div> <button type="button" :disabled="loading" @click="login" id="login" class="btn btn-primary btn-lg  btn-block"><span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>立即登录</button></form>
</div><script>$("#login").click(function(){var username = $("#username").val();var password = $("#password").val();if(username == null || username == ""){alert("请填写用户名");return false;}if(password == null || password == ""){alert("请填写密码");return false;}//执行添加的操作ajax$.ajax({cache:true,type:"post",url:"LoginServlet?action=login",data:$("#saveForm").serialize(),async:false,success:function(e){if(e == 'ok'){alert("登录成功");window.parent.location.href="LoginServlet?action=toMain";}else if(e == "user"){alert("登录成功");window.parent.location.href="IndexServlet?action=toIndex";}else{alert("登录失败,账号或密码错误");}}})});</script></body>
</html>
/*** 登录* @param request* @param response* @throws ServletException* @throws IOException*/public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//处理登录//清空登录记录request.getSession().invalidate();//进行登录操作String username = request.getParameter("username");String password = request.getParameter("password");String type = request.getParameter("type");Admin admin = new Admin();User user = new User();if(type != null && type.equals("1")){Admin admin1 = userService.selectAdmin(username,password);if(admin1 != null){response.getWriter().print("ok");request.getSession().setAttribute("admin",admin1);request.getSession().setAttribute("flag",1);}else{response.getWriter().print("error");}}else if(type != null && type.equals("2")){User user1 = userService.selectUser(username,password);if(user1 != null){response.getWriter().print("user");request.getSession().setAttribute("user",user1);request.getSession().setAttribute("flag",2);}else{response.getWriter().print("error");}}else{response.getWriter().print("error");}}

注册

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html lang="en">
<head><title>网上图书销售系统</title><meta charset="UTF-8"><meta http-equiv="X-UA-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="shortcut icon" type="image/x-icon" href="<%=path%>/resource/assets/images/favicon.png"/><link href="https://fonts.googleapis.com/css?family=Montserrat:300,300i,400,400i,500,500i,600,600i,700,700i&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css?family=Lato:300,300i,400,400i,700,700i&display=swap" rel="stylesheet"><link rel="stylesheet" href="<%=path%>/resource/assets/css/bootstrap.min.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/font-awesome.min.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/owl.carousel.min.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/animate.min.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/jquery-ui.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/slick.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/chosen.min.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/pe-icon-7-stroke.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/magnific-popup.min.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/lightbox.min.css"><link rel="stylesheet" href="<%=path%>/resource/assets/js/fancybox/source/jquery.fancybox.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/jquery.scrollbar.min.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/mobile-menu.css"><link rel="stylesheet" href="<%=path%>/resource/assets/fonts/flaticon/flaticon.css"><link rel="stylesheet" href="<%=path%>/resource/assets/css/style.css">
</head>
<body class="inblog-page"><header class="header style7"><div class="top-bar"><div class="container"><div class="top-bar-left"><div class="header-message" style="color:white;font-size:30px">欢迎来到网上图书销售系统</div></div><div class="top-bar-right"><ul class="header-user-links"><c:if test="${user != null }"><li><img src="/images/${user.tx}" id="preview_img" style="width:40px; height:40px; border-radius:100%; overflow:hidden;"><a >${user.realname}</a><a href="LoginServlet?action=loginOut">退出登录</a></li></c:if><c:if test="${user == null }"><li><a href="LoginServlet?action=loginOut">去登录</a></li><!--   <li><a href="IndexServlet?action=toIndexLogin">后台登录</a></li> --></c:if></ul></div></div></div><div class="header-nav-container" style="margin-top:60px;"><div class="container"><div class="header-nav-wapper main-menu-wapper"><div class="vertical-wapper block-nav-categori"><div class="block-title"><span class="icon-bar"><span></span><span></span><span></span></span><span class="text">所有分类</span></div><div class="block-content verticalmenu-content"><ul class="teamo-nav-vertical vertical-menu teamo-clone-mobile-menu"><c:forEach items="${categoryList}" var="data"><li class="menu-item"><a href="IndexServlet?action=toSearchIndex&cname=${data.cname }" class="teamo-menu-item-title" title="${data.cname }">${data.cname }</a></li></c:forEach></ul></div></div><div class="header-nav"><div class="container-wapper"><ul class="teamo-clone-mobile-menu teamo-nav main-menu " id="menu-main-menu"><li class="menu-item  menu-item-has-children"><a href="IndexServlet?action=toIndex" class="teamo-menu-item-title" title="Home">主页</a><span class="toggle-submenu"></span><ul class="submenu"><li class="menu-item"><a href="IndexServlet?action=toIndex">主页</a></li></ul></li><li class="menu-item menu-item-has-children"><a href="IndexServlet?action=toSearchIndex" class="teamo-menu-item-title" title="Shop">图书大厅</a></li><c:if test="${user == null }"><li class="menu-item menu-item-has-children"><a href="IndexServlet?action=toRegister" class="teamo-menu-item-title" title="Shop">去注册</a></li></c:if><c:if test="${user != null }"><li class="menu-item"><a href="IndexServlet?action=toMyinfo" class="teamo-menu-item-title" title="About">个人信息</a></li><li class="menu-item"><a href="IndexServlet?action=toShoppingcart" class="teamo-menu-item-title" title="About">我的购物车</a></li><li class="menu-item"><a href="IndexServlet?action=toMyLike" class="teamo-menu-item-title" title="About">我的收藏</a></li><li class="menu-item"><a href="IndexServlet?action=toMyOrder" class="teamo-menu-item-title" title="About">我的订单</a></li></c:if></ul></div></div></div></div></div></header><div class="header-device-mobile"><div class="wapper"><div class="item mobile-logo"><div class="logo"><a href="#"><img src="<%=path%>/resource/assets/images/logo.png" alt="img"></a></div></div><div class="item item mobile-search-box has-sub"><a href="#"><span class="icon"><i class="fa fa-search" aria-hidden="true"></i></span></a><div class="block-sub"><a href="#" class="close"><i class="fa fa-times" aria-hidden="true"></i></a><div class="header-searchform-box"><form class="header-searchform"><div class="searchform-wrap"><input type="text" class="search-input" placeholder="Enter keywords to search..."><input type="submit" class="submit button" value="Search"></div></form></div></div></div><div class="item mobile-settings-box has-sub"><a href="#"><span class="icon"><i class="fa fa-cog" aria-hidden="true"></i></span></a><div class="block-sub"><a href="#" class="close"><i class="fa fa-times" aria-hidden="true"></i></a><div class="block-sub-item"><h5 class="block-item-title">Currency</h5><form class="currency-form teamo-language"><ul class="teamo-language-wrap"><li class="active"><a href="#"><span>English (USD)</span></a></li><li><a href="#"><span>French (EUR)</span></a></li><li><a href="#"><span>Japanese (JPY)</span></a></li></ul></form></div></div></div><div class="item menu-bar"><a class=" mobile-navigation  menu-toggle" href="#"><span></span><span></span><span></span></a></div></div></div><div class="main-content main-content-login"><div class="container"><div class="row"><div class="col-lg-12"><div class="breadcrumb-trail breadcrumbs"><ul class="trail-items breadcrumb"><li class="trail-item trail-begin"><a href="IndexServlet?action=toIndex">主页</a></li><li class="trail-item trail-end active">注册</li></ul></div></div></div><div class="row"><div class="content-area col-lg-12 col-md-12 col-sm-12 col-xs-12"><div class="site-main"><h3 class="custom_blog_title">个人信息</h3><div class="customer_login"><div class="row"><div class="col-lg-6 col-md-6 col-sm-12"><div class="login-item"><h5 class="title-login">信息填写</h5><form class="login" id="updateInfo" enctype="multipart/form-data"><input name="id" value="${user.id }" type="hidden" class="input-text"><p class="form-row form-row-wide"><label class="text">真实姓名</label><input name="realname" type="text" value="${user.realname }" class="input-text"></p><p class="form-row form-row-wide"><label class="text">密码</label><input name="pwd" type="text" value="${user.pwd }" class="input-text"></p><p class="form-row form-row-wide"><label class="text">地址</label><input name="address" type="text" value="${user.address }" class="input-text"></p><p class="form-row form-row-wide"><label class="text">手机号</label><input name="phone" type="text" value="${user.phone }" class="input-text"></p><p class="form-row form-row-wide"><label class="text">性别</label><input name="sex" type="text" value="${user.sex }" class="input-text"></p><p class="form-row form-row-wide"><label class="text">头像</label><img class="layui-upload-img" style="width:200px;height:100px;" id="demo1"><input type="file" name="tx" id="tx" ></p><p class="form-row"><input type="button" id="update" class="btn btn-success" value="立即注册"></p></form></div></div></div></div></div></div></div></div></div><script src="<%=path%>/resource/assets/js/jquery-1.12.4.min.js"></script><script src="<%=path%>/resource/assets/js/jquery.plugin-countdown.min.js"></script><script src="<%=path%>/resource/assets/js/jquery-countdown.min.js"></script><script src="<%=path%>/resource/assets/js/bootstrap.min.js"></script><script src="<%=path%>/resource/assets/js/owl.carousel.min.js"></script><script src="<%=path%>/resource/assets/js/magnific-popup.min.js"></script><script src="<%=path%>/resource/assets/js/isotope.min.js"></script><script src="<%=path%>/resource/assets/js/jquery.scrollbar.min.js"></script><script src="<%=path%>/resource/assets/js/jquery-ui.min.js"></script><script src="<%=path%>/resource/assets/js/mobile-menu.js"></script><script src="<%=path%>/resource/assets/js/chosen.min.js"></script><script src="<%=path%>/resource/assets/js/slick.js"></script><script src="<%=path%>/resource/assets/js/jquery.elevateZoom.min.js"></script><script src="<%=path%>/resource/assets/js/jquery.actual.min.js"></script><script src="<%=path%>/resource/assets/js/fancybox/source/jquery.fancybox.js"></script><script src="<%=path%>/resource/assets/js/lightbox.min.js"></script><script src="<%=path%>/resource/assets/js/owl.thumbs.min.js"></script><script src="<%=path%>/resource/assets/js/jquery.scrollbar.min.js"></script><script src='https://ditu.google.cn/maps/api/js?key=AIzaSyC3nDHy1dARR-Pa_2jjPCjvsOR4bcILYsM'></script><script src="<%=path%>/resource/assets/js/frontend-plugin.js"></script><script src="<%=path%>/resource/layui/layui.js"></script><script>layui.use(['layer','form','jquery'], function () {//调用layui组件var form = layui.form;var layer=layui.layer;$=layui.jquery;  form.render();$("#tx").change(function () {//创建blob对象,浏览器将文件放入内存中,并生成标识var img_src = URL.createObjectURL($(this)[0].files[0]);//给img标检的src赋值document.getElementById("demo1").src=img_src;//URL.revokeObjectURL(img_src);// 手动 回收,});$('#update').on("click",function(e){$.ajax({cache:true,type:"post",url:"UserServlet?action=addUser",data:new FormData($('#updateInfo')[0]),async:false,processData: false,contentType: false,success:function(e){if(e == 'yes'){layer.msg('注册成功', {icon: 1,time: 2000 //2秒关闭(如果不配置,默认是3秒)}, function(){window.parent.location.href="LoginServlet?action=loginOut";});  }else{layer.msg('注册失败,请登录后重试', {icon: 5,time: 2000 //2秒关闭(如果不配置,默认是3秒)});}}})});});</script>   
</body>
</html>

系统总结

系统使用eclipse开发的(也可idea运行)

相关技术:jsp,servlet,JavaScript,ajax,jquery,mvc结构,jdbc连接池C3p0,mysql,bootstrap。

我的开发工具:eclipse2020,mysql5.7,navicat数据库管理工具,Jdk1.8,tomcat8.5,google浏览器。

非开源!!!!!!
项目截图中的数据,很多是用来测试的,需求自行添加合适的数据图片
喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/102647.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

100天精通Golang(基础入门篇)——第20天:Golang 接口 深度解析☞从基础到高级

&#x1f337;&#x1f341; 博主猫头虎&#x1f405;&#x1f43e; 带您进入 Golang 语言的新世界✨✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f…

MySQL日志

MySQL日志 文章目录 MySQL日志1. 二进制日志(binary log)1.1 二进制日志的概念1.2 二进制日志的作用1.3 二进制日志相关参数及作用1.3.1 max_binlog_size1.3.2 binlog_cache_size1.3.3 sync_binlog1.3.4 binlog_format1.3.5 binlog_do_db1.3.6 binlog_ignore_db1.3.7 log-slave…

时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测(风电功率预测)

时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测&#xff08;风电功率预测&#xff09; 目录 时序预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络时间序列预测&#xff08;风电功率预测&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1…

阿里云App备案详细流程_APP备案问题解答

阿里云APP备案流程分为6步&#xff0c;APP备案成功后应用可以上架&#xff0c;登录阿里云账号填写APP信息&#xff0c;等待阿里云初审&#xff0c;初审通过后进行工信部短信核验&#xff0c;管局审核通过后APP即可备案成功&#xff0c;最后移动APP应用可以分发平台上架&#xf…

SpringCloud环境搭建及入门案例

技术选型&#xff1a; Maven 3.8.4SpringBoot 2.7.8SpringCloud 2021.0.4SpringCloudAlibaba 2022.0.1.0Nacos 2.1.1Sentinel 1.8.5 模块设计&#xff1a; 父工程&#xff1a;SpringCloudAlibaba订单微服&#xff1a;order-service库存微服&#xff1a;stock-service 1.创建…

【数学建模】2023数学建模国赛C题完整思路和代码解析

C题第一问代码和求解结果已完成&#xff0c;第一问数据量有点大&#xff0c;经过编程整理出来了单品销售额的汇总数据、将附件2中的单品编码替换为分类编码&#xff0c;整理出了蔬菜各品类随着时间变化的销售量&#xff0c;并做出了这些疏菜品类的皮尔森相关系数的热力图&#…

磐基2.0部署apisix集群

一、部署etcd集群 由于etcd是磐基2.0的组件服务&#xff0c;直接通过组件部署即可。如需手动部署&#xff0c;参考如下链接 k8s 部署etcd集群_k8s部署etcd_平凡似水的人生的博客-CSDN博客前言公司计划使用etcd来做统一配置管理&#xff0c;由于服务都在阿里云托管k8s集群上&a…

浏览器进程,性能指标,性能优化

目录 浏览器进程&#xff1a;多进程 主进程&#xff1a;显示、交互&#xff0c;增删进程 UI进程&#xff1a;控制地址栏、书签、前进后退 存储进程&#xff1a;cookie&#xff0c;webstorage&#xff0c;indexDB 渲染进程&#xff1a;每个标签页或窗口都有一个独立的渲染进…

c++类与对象

文章目录 前言一、1、类的引入2、类的定义3、类的访问限定符及封装4、类的实例化5、类对象模型6、this指针7、封装 前言 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关…

@Autowired为什么会报错?如何解决?

作者 | 磊哥 来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09; 转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09; Autowired报错信息相信大部分程序员都遇到过&#xff0c;奇怪的是虽然代码报错&#xff0c;但丝毫不影响程序的正常执行&…

go work 不同包下mod + work实现.go文件的互相调用

一、文件架构 . ├── go.mod ├── go.work ├── main │ └── main.go └── util├── go.mod└── util.go其中go.mod module testgo 1.21.0其中go.work go 1.21.0use (../util )main/main.go 1 package main …

QT day5

服务器&#xff1a; #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化对象server new QTcpServer(this); }Widget::~Widget() {delete ui…