基于java jsp+mybatis+Spring+的SSM二手交易网站设计实现

🍅 作者主页:Java李杨勇 

🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌  简历模板、学习资料、面试题库、技术互助【关注我,都给你】

🍅 欢迎点赞 👍 收藏 ⭐留言 📝    

🍅 文末获取源码联系方式

一、 绪论 2

1.1 研究背景 2

1.2 研究目的和意义 2

1.3 研究的内容 3

1.4可行性研究设计 3

1.5社会可行性 4

1.6相关技术说明 4

spring 4

Spring 5

jQuery 5

Mysql 6

1) 功能强大 6

2) 支持跨平台 6

3) 运行速度快 6

4) 支持面向对象 7

5) 安全性高 7

6) 成本低 7

7) 支持各种开发语言 7

8) 数据库存储容量大 7

9) 支持强大的内置函数 7

二、 需求分析 8

2.1系统功能概述 8

1) 用户注册和登录登录功能 8

2) 用户信息的管理 8

3) 用户二手物品的操作 8

4) 用户购物车的管理 8

5) 用户订单管理操作管理 8

6)闲置物品类型的管理、添加、修改、删除操作 8

7)网页商品的预览、查看等 8

8)注销退出登录 8

2.2系统运行环境 8

三、 系统设计 9

3.1系统设计 9

3.1.1客户端主要设计 9

3.4主流程描述 9

四、 系统实现 11

4.1 程序主要类 11

4.1.1用户管理员类 11

4.1.4二手物品分类 12

4.1.4二手物品订单类 12

4.1.4二手物品订单类 13

4.1.4二手物品详情类 14

4.1.4用户客户类 15

4.3系统功能主要实现模块截图 16

4.3.1登陆页面 16

4.3.1登录前端代码: 16

4.3.2注册页面: 17

4.3.2 系统功能截图 17

4.3.4部分关键源码展示: 22

4.4数据库表设计 29

4.4.0数据三范式: 29

一、第一范式 29

二、第二范式 29

三、第三范式 29

4.4.1表ER图 30

4.4.2用户表设计 30

4.4.3二手物品分类表设计 30

4.4.4用户订单表设计 31

4.4.5二手物品表详情设计 31

4.4.5二手物品订单表设计 32

4.4.6数据库sql文件 32

五、参考献文 36

主要功能实现:

管理员:商品分类管理,商品管理,商品订单管理,用户管理等功能。
用户角色:查看所有商品,用户登陆注册,按照类别查看商品,发布商品,查看卖家主页,联系卖家,给商品留言,查看订单,修改查看个人资料等功能。

主要技术:

HTML+CSS+JavaScript+jsp+mysql+Spring+mybatis

系统首页:

登录模块:

登录代码实现:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title>系统登录 - 超市订单管理系统</title><link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/css/style.css" /><script type="text/javascript">/* if(top.location!=self.location){top.location=self.location;} */</script>
</head>
<body class="login_bg"><section class="loginBox"><header class="loginHeader"><h1>二手交易平台</h1></header><section class="loginCont"><form class="loginForm" action="${pageContext.request.contextPath }/login.do"  name="actionForm" id="actionForm"  method="post" ><div class="info">${error }</div><div class="inputbox"><label for="user">用户名:</label><input type="text" class="input-text" id="userCode" name="userCode" placeholder="请输入用户名" required/></div>	<div class="inputbox"><label for="mima">密码:</label><input type="password" id="userPassword" name="userPassword" placeholder="请输入密码" required/></div>	<div class="subBtn"><input type="submit" value="登录"/><input type="reset" value="重置"/></div>	</form></section></section>
</body>
</html>

商品详情:

点击购买就创建一个订单信息:

个人中心:

管理员登录:

主要代码实现:

/*** .*****/package io.renren.modules.sys.controller;import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import io.renren.common.utils.R;
import io.renren.modules.sys.shiro.ShiroUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;/*** 登录相关** @author Mark s.com*/
@Controller
public class SysLoginController {@Autowiredprivate Producer producer;@RequestMapping("captcha.jpg")public void captcha(HttpServletResponse response)throws IOException {response.setHeader("Cache-Control", "no-store, no-cache");response.setContentType("image/jpeg");//生成文字验证码String text = producer.createText();//生成图片验证码BufferedImage image = producer.createImage(text);//保存到shiro sessionShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);ServletOutputStream out = response.getOutputStream();ImageIO.write(image, "jpg", out);}/*** 登录*/@ResponseBody@RequestMapping(value = "/sys/login", method = RequestMethod.POST)public R login(String username, String password, String captcha) {String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);if(!captcha.equalsIgnoreCase(kaptcha)){return R.error("验证码不正确");}try{Subject subject = ShiroUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(username, password);//md5+Jiayansubject.login(token);}catch (UnknownAccountException e) {return R.error(e.getMessage());}catch (IncorrectCredentialsException e) {return R.error("账号或密码不正确");}catch (LockedAccountException e) {return R.error("账号已被锁定,请联系管理员");}catch (AuthenticationException e) {return R.error("账户验证失败");}return R.ok();}/*** 退出*/@RequestMapping(value = "logout", method = RequestMethod.GET)public String logout() {ShiroUtils.logout();return "redirect:login.html";}}

管理员主要功能:

分类管理:

商品管理:

订单管理:

用户管理;

主要表设计:

用户表:

CREATE TABLE `NewTable` (
`user_id`  bigint(20) NOT NULL AUTO_INCREMENT ,
`username`  varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名' ,
`password`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码' ,
`salt`  varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '盐' ,
`email`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱' ,
`mobile`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号' ,
`status`  tinyint(4) NULL DEFAULT NULL COMMENT '状态  0:禁用   1:正常' ,
`create_time`  datetime NULL DEFAULT NULL COMMENT '创建时间' ,
PRIMARY KEY (`user_id`),
UNIQUE INDEX `username` (`username`) USING BTREE 
)

订单表:

CREATE TABLE `NewTable` (
`order_id`  bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单表主键id' ,
`order_no`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '订单号' ,
`user_id`  bigint(20) NOT NULL DEFAULT 0 COMMENT '用户主键id' ,
`total_price`  int(11) NOT NULL DEFAULT 1 COMMENT '订单总价' ,
`pay_status`  bigint(20) NOT NULL DEFAULT 0 COMMENT '支付状态:0.未支付,1.支付成功,-1:支付失败' , ,
`pay_time`  datetime NULL DEFAULT NULL COMMENT '支付时间' ,
`order_status`  bigint(20) NOT NULL DEFAULT 0 COMMENT '订单状态:0.待支付 1.已支付 2.配货完成 3:出库成功 4.交易成功 -1.手动关闭 -2.超时关闭 -3.商家关闭' ,
`extra_info`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '订单body' ,
`user_name`  varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '收货人姓名' ,
`user_phone`  varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '收货人手机号' ,
`user_address`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '收货人收货地址' ,
PRIMARY KEY (`order_id`)
)

商品表:

CREATE TABLE `NewTable` (
`goods_id`  bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '商品表主键id' ,
`goods_name`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '商品名' ,
`goods_intro`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '商品简介' ,
`goods_category_id`  bigint(20) NOT NULL DEFAULT 0 COMMENT '关联分类id' ,
`goods_cover_img`  varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '/admin/dist/img/no-img.png' COMMENT '商品主图' ,
`goods_detail_content`  text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '商品详情' ,
`original_price`  int(11) NOT NULL DEFAULT 1 COMMENT '商品价格' ,
`selling_price`  int(11) NOT NULL DEFAULT 1 COMMENT '商品实际售价' ,`tag`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '商品标签' ,
`goods_sell_status`  tinyint(4) NOT NULL DEFAULT 0 COMMENT '商品上架状态 0-下架 1-上架' ,
`create_user`  int(11) NOT NULL DEFAULT 0 COMMENT '添加者主键id' ,
PRIMARY KEY (`goods_id`)
)

相关系统设计实现推荐:

基于java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于java ssm springboot+mybatis酒庄内部管理系统设计和实现

基于JAVA springboot+mybatis智慧生活分享平台设计和实现

基于JAVA springboot+VUE前后端分离疫情防疫平台设计实现

基于Java springboot+vue+redis前后端分离家具商城平台系统设计和实现

查看更多博主首页更多实战项目 >>>

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,

点击下方微信获取源码和技术资料

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

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

相关文章

《零基础》MySQL 连接的使用(二十)

在前几章节中&#xff0c;我们已经学会了如何在一张表中读取数据&#xff0c;这是相对简单的&#xff0c;但是在真正的应用中经常需要从多个数据表中读取数据。 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。 你可以在 SELECT, UPDATE 和 DELETE…

怎么设置internet才能下载JAVA_如何使用Java从Internet下载和保存文件?

我需要获取一个在线文件(例如http://www.example.com/information.asp )并将其保存到目录中。 我知道有几种逐行捕获和读取在线文件(URL)的方法&#xff0c;但是有没有一种方法可以使用Java下载和保存文件&#xff1f;#1楼import java.io.*;import java.net.*;public class fil…

热榜!基于jsp+mysql的JSP在线水果销售商城系统设计实现【建议收藏】

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 文末获取源码联系方式 &#x1f4dd; 研究意…

java log4j权限被否定_SLF4J简介与使用(整合log4j)

一、概念SLF4J的全称是Simple Logging Facade for Java&#xff0c;即简单日志门面。SLF4J并不是具体的日志框架&#xff0c;而是作为一个简单门面服务于各类日志框架&#xff0c;如java.util.logging, logback和log4j。SLF4J提供了统一的记录日志的接口&#xff0c;对不同日志…

《springcloud超级入门》微服务的概念和优缺点《一》

微服务是什么&#xff1f;它的优缺点有哪些&#xff1f; “微服务”一词来源于 Martin Fowler 的《Microservices》一文。微服务是一种架构风格&#xff0c;即将单体应用划分为小型的服务单元&#xff0c;微服务之间使用 HTTP 的 API 进行资源访问与操作。 在笔者看来&#xf…

安卓 php环境 app,安卓系统lighttpd-php-mysql本地环境

这是一个可在安卓手机上布置的服务器环境&#xff0c;功能组件包括&#xff1a;lighttpd、php和mysql&#xff0c;能成功运行DZ等php程序&#xff0c;安装和配置过程十分简单&#xff0c;也许现在该是讨论用什么手机做服务器更合适的时候了。演示图片为一成功运行的服务器环境探…

硬核!从0到1学习Spring Cloud微服务章节《建议收藏》

为什么要使用学习springcloud以及他的优势&#xff1f; Spring Cloud 来源于 Spring&#xff0c;质量、稳定性、持续性都可以得到保证。 spirng Cloud 天然支持 Spring Boot&#xff0c;更加便于业务落地。 Spring Cloud 是 Java 领域最适合做微服务的框架。相比于其它框架&…

《springcloud超级入门》Spring Cloud是什么?Spring Cloud版本介绍《二》

Spring cloud是一系列框架的有序集合。它利用 Spring Boot 的开发便利性&#xff0c;巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务注册、服务发现、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;这些都可以用 Spring Boot 的开发风格做到一键启动…

《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》

了解为什么需要微服务。最初的服务化解决方案是给相同服务提供一个统一的域名&#xff0c;然后服务调用者向这个域发送 HTTP 请求&#xff0c;由 Nginx 负责请求的分发和跳转。 这种架构存在很多问题&#xff1a;Nginx 作为中间层&#xff0c;在配置文件中耦合了服务调用的逻辑…

php完美导出word,PHP使用phpword生成word文档

使用phpword生成文档有两种方式直接使用代码编写word文档&#xff0c;用代码生成word&#xff0c;但是设置样式&#xff0c;格式&#xff0c;图片非常麻烦&#xff0c;不建议使用。如果客户或产品提供一份word的样式&#xff0c;我们也难以完全复原&#xff0c;调样式很头疼的。…

《springcloud超级入门》Spring Cloud开发环境的准备和Lombok安装步骤《四》

开发环境的准备主要涉及三个方面&#xff1a;JDK、Maven、Spring Tools 4 for Eclipse。 1. JDK JDK 的版本用 1.8 即可&#xff0c;环境变量大家自行去配置。配置好环境变量&#xff0c;在命令行中输入“java–version”能够显示出版本信息即可&#xff0c;如图 1 所示。 …

php 制作ppt,PPT制作三个基本要素是什么?

PPT制作三个基本要素是什么&#xff1f;1、一个PPT只为一类人服务&#xff0c;针对不同听众制作不同层次内容&#xff1b;2、PPT永远是为听者服务&#xff1b;3、PPT只讲一个重点&#xff0c;不要试图在某个PPT中既讲技术&#xff0c;又讲管理。PPT优势1.使用 Microsoft Office…

《springcloud超级入门》Spring Boot简介《五》

Spring Boot 是由 Pivotal 团队提供的全新框架&#xff0c;其设计目的是简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。 Spring Boot 致力于在蓬勃发展的快速应用开发领域&#xff08;rapid …

php代理m3u8,PHP实现m3u8并发下载

直接上代码//php下载m3u8文件$url $argv[1];if(!file_exists(./tmp/)) {if(!mkdir(./tmp/)) {die(请手动在当前目录创建tmp目录);}}$indexPage file_get_contents($url);preg_match_all(/.*.ts/, $indexPage, $matches);if(empty($matches)) {die(m3u8 文件格式错误);}go(fun…

《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》

目录 编写第一个 REST 接口 读取配置文件 profiles 多环境配置 热部署 actuator 监控 自定义 actuator 端点 统一异常处理 异步执行 随机端口 编译打包 在 Spring Tools 4 for Eclipse 中选择 File->New->Maven Project&#xff0c; 在 pom.xml 中添加 Spri…

《SpringCloud超级入门》Spring Boot Starter的介绍及使用《七》

目录 Spring Boot Starter项目创建 自动创建客户端 使用 Starter 使用注解开启 Starter 自动构建 使用配置开启 Starter 自动构建 配置 Starter 内容提示 Spring Boot 的便利性体现在&#xff0c;它简化了很多烦琐的配置&#xff0c;这对于开发人员来说是一个福音&#…

php 发送短信 sms,php 调用百度sms来发送短信的实现示例

BaiduSms百度云 sms php版本官方没有给出php版本的短信发送sdk, 在此借鉴 [ 点击这里 ]&#xff0c;并在此基础上将方法改成 单例模式 在原来的基础上更加容易调用1.打开 BaiduSms.php 修改 sms函数中 accessKey 、 secretAccessKey 这两个参数登录百度云账号&#xff0c;在右上…

《SpringCloud超级入门》Spring Cloud Eureka是什么?《八》

Spring cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分&#xff0c;基于 Netflix Eureka 做了二次封装&#xff0c;主要负责实现微服务架构中的服务治理功能。 Spring Cloud Eureka 是一个基于 REST 的服务&#xff0c;并且提供了基于 Java 的客户端组件&#xff0c…

php 常用编译参数,php编译参数,不用怕!!

很多初学者&#xff0c;在编译php的时候&#xff0c;容易被php的编译参数吓到&#xff01;例如&#xff1a;./configure \--prefix/usr/local/php \--with-config-file-path/usr/local/php/etc \--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-sha…

《SpringCloud超级入门》使用Eureka编写注册中心服务《九》

首先创建一个 Maven项目&#xff0c;取名为 eureka-server&#xff0c;在 pom.xml 中配置 Eureka 的依赖信息&#xff0c;代码如下所示。 <!-- Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot…