基于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 {
	@Autowired
	private 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 session
        ShiroUtils.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+Jiayan
			subject.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前后端分离家具商城平台系统设计和实现

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

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

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

### 回答1: SSM是指以Spring + Spring MVC + MyBatis为基础的Java Web开发框架。它是目前Java Web开发中比较流行的框架之一,可以实现高效、简洁的开发,同时SpringMyBatis也拥有许多成熟的插件和解决方案,可以帮助我们更快速地完成项目开发。 ### 回答2: SSM是指Spring+SpringMVC+MyBatis三者的集成,是一种轻量级的JavaEE框架,可快速地构建Web应用程序。其特点是分层清晰、灵活性高、封装性好、易于维护和升级、具有良好的可扩展性和开放性。 其中,JSP和MySQL是SSM框架中所涉及的两个技术,SpringMyBatis分别负责控制层和数据层的功能实现JSPJava Server Pages的缩写, 是一种基于JavaEE平台的服务器端网页开发技术,具有简单、灵活等特点,常用于生成动态网页。它可以和各种Web服务器和数据库进行配合使用。在SSM框架中,JSP主要负责视图层的开发,即前端页面的渲染和展示。 MySQL是一种流行的开源关系型数据库系统,常用于Web应用和其他大规模数据存储的系统中。在SSM框架中,MySQL是数据持久层的核心,MyBatis则是将Java代码和数据库之间的交互进行封装,使开发者能够通过简单的配置来进行数据库操作。 Spring是一种企业级Java应用程序开发框架,提供了丰富的功能和插件支持,可以通过各种方式将各种Java组件装配为一个整体。在SSM框架中,Spring主要负责控制层的实现,即业务逻辑的控制和调度。 MyBatis是一种优秀的Java持久层框架,可以将Java对象映射为数据库表的记录,将SQL语句进行封装,减少代码量,提高代码可读性。在SSM框架中,MyBatis则负责与数据库进行交互,并实现数据持久化。 综合而言,SSM框架基于JSP、MySQL、SpringMyBatis,提供了一种高效、灵活、易于维护和扩展的JavaEE Web应用程序开发框架,已广泛应用于各种Web应用程序的开发中。 ### 回答3: SSM 是指 Spring + SpringMVC + MyBatis 的组合,这是一种极为流行的 Java Web 开发框架。Spring 是一个开源的轻量级框架,它实现了一个容器,可以管理应用中的所有类对象及其依赖关系。SpringMVC 是 Spring 框架的一个 Web 框架,主要有模型、视图和控制器三个组成部分,用于处理 Web 请求和响应。MyBatis 是一个优秀的持久层框架,可以将 SQL 语句和 Java 代码完全分离,从而使程序易于维护。 JSPJava Server Pages 的缩写,是一种能够创建动态 Web 页面的技术。它可以作为前端页面展示应用程序的内容,也可以与服务器端代码结合使用,处理 Web 请求和做出响应。MySQL 是一种关系型数据库管理系统,提供了高效的数据存储和查询,可以用来存储应用程序中的数据。 基于 SSM 框架的 Web 项目通常会将业务和数据库分离,使用 MyBatis 进行数据持久化。可以使用 Spring 提供的 IoC 和 AOP 功能实现对业务逻辑和数据访问的管理和控制。同时,SpringMVC 的的模型 级别控制器可以实现 Web 请求的分发和响应,JSP 可以负责展示 Web 页面。MySQL 作为 SSM 框架的常用数据库,它的使用可以由 MyBatis 的 DAO 模式进行操作,而 JSP 就可以前端展示数据了。 使用 SSM 框架的优势在于它们的组合能够大幅度提高 Web 项目开发的效率和扩展性。Spring 框架的IoC和 AOP 可以将业务逻辑和数据访问相关的代码分离出来,更加易于维护和扩展。MyBatis 的 SQL 映射文件对于 SQL 与 Java 之间的解耦以及防止 SQL 注入攻击都发挥了很大的作用,而 SpringMVC 分离了模型和视图,提高了代码的可读性和可维护性,JSP 作为前端页面展示数据,更加方便实现分离式开发和多人协作。通过使用这些框架的组合,我们可以更加容易地实现一个完整的 Web 应用程序,具有良好的工程实践和可维护性。
评论 345
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java李杨勇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值