Java项目:75 springboot房产销售系统
作者主页:源码空间codegym
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文中获取源码
项目介绍
使用房产销售系统分为管理员和用户、销售经理三个角色的权限子模块。
管理员所能使用的功能主要有:首页、个人中心、用户管理、销售经理管理、房源信息管理、房源类型管理、房子户型管理、交易订单管理、预约看房管理、评价管理、我的收藏管理、系统管理等。
用户可以实现首页、个人中心、房源信息管理、交易订单管理、预约看房管理、评价管理、我的收藏管理等。
销售经理可以实现首页、个人中心、房源信息管理、交易订单管理、预约看房管理、评价管理等。
环境要求
1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7.x,8.X,9.x版本均可
4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;
5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目
6.数据库:MySql5.7/8.0等版本均可;
技术栈
运行环境:jdk8 + tomcat9 + mysql5.7 + windows10
服务端技术:SpringBoot + MyBatis + Vue + Bootstrap + jQuery
使用说明
1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;
运行指导
idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:
http://mtw.so/5MHvZq
源码地址:http://codegym.top
运行截图
文档截图

项目截图
前台




后台




代码
package com.lyyzoo.gpss.web;import com.lyyzoo.gpss.entity.system.User;
import com.lyyzoo.gpss.service.system.UserService;
import com.lyyzoo.gpss.util.VCodeGenerator;
import com.lyyzoo.util.Cryptos;
import com.lyyzoo.util.Strings;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.IOException;/*** <p>** @author bojiangzhou* @date 2017-03-29*/
@Controller
@RequestMapping("")
public class HomeController extends BaseController {@Autowiredprivate UserService userService;/*** 到首页/登录页面*/@RequestMapping(value = {"", "/", "/index", "/login"})public String index(){return "/index";}/*** 管理员主页*/@RequestMapping("/admin/home")public String toHome(){return "/home/home";}/*** 登录*/@RequestMapping(value = "/login", method = RequestMethod.POST)public String login(String account, String password, String vcode, HttpSession session){String redirect = REDIRECT("/login");//基本验证if(Strings.isNullOrEmpty(account)){session.setAttribute("errorMsg", "账号必须填写!");return redirect;}if(Strings.isNullOrEmpty(password)){session.setAttribute("errorMsg", "密码必须填写!");return redirect;}if(Strings.isNullOrEmpty(vcode)){session.setAttribute("errorMsg", "验证码必须填写!");return redirect;}//验证码String sessionVcode = (String) session.getAttribute("vcode");if(!vcode.equalsIgnoreCase(sessionVcode)){session.setAttribute("errorMsg", "验证码错误!");return redirect;}//验证用户名和密码password = Cryptos.encryptMd5(password);User loginUser = userService.login(account, password);if(loginUser == null){session.setAttribute("errorMsg", "账号或密码错误!");return redirect;}if(loginUser.getIsLocked() == User.IsLocked.YES){session.setAttribute("errorMsg", "账号已锁定,不能登录!");return redirect;}//保存到session的时候清除密码User currentUser = new User();BeanUtils.copyProperties(loginUser, currentUser);currentUser.setPassword(null);//登录成功session.setAttribute("currentUser", currentUser);return REDIRECT("/admin/home");}/*** 获取验证码*/@RequestMapping("/vcode")public void getVCode(HttpSession session, HttpServletResponse response) throws IOException {//创建验证码生成器对象VCodeGenerator vcGenerator = new VCodeGenerator();//生成验证码String vcode = vcGenerator.generatorVCode();//将验证码保存在session域中,以便判断验证码是否正确session.setAttribute("vcode", vcode);//生成验证码图片BufferedImage vImg = vcGenerator.generatorRotateVCodeImage(vcode, true);//输出图像ImageIO.write(vImg, "gif", response.getOutputStream());}/*** 退出系统*/@RequestMapping("/logoff")public String logoff(HttpSession session){session.invalidate();return REDIRECT("/");}@RequestMapping("/function")public String function(){return "/home/function";}@RequestMapping("/welcome")public String welcome(){return "/home/welcome";}/*** 错误页面* @param code* @return*/@RequestMapping("/error/{code}")public String error(@PathVariable String code) {return "/error/" + code;}}相关文章:
Java项目:75 springboot房产销售系统
作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 使用房产销售系统分为管理员和用户、销售经理三个角色的权限子模块。 管理员所能使用的功能主要有:首页、个人中心、用户管理、销…...
2.6 IDE(集成开发环境)是什么
IDE(集成开发环境)是什么 IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员开发的应用软件,是它们的一个总称。 通过前面章节的学习我们知道,运行 C 语言&…...
tomcat和web服务器是什么??
一、什么是服务器 1.服务器是计算机的一种,它比普通计算机运行更快、负载更高。服务器拥有独立IP地址,并且运行了服务器软件。 2.服务器由服务器软件和服务器硬件组成。服务器硬件就是拥有独立ip的计算机,服务器软件是一个被动的软件&#…...
鸿蒙Harmony跨模块交互
1. 模块分类介绍 鸿蒙系统的模块一共分为四种,包括HAP两种和共享包两种 HAP(Harmony Ability Package) Entry:项目的入口模块,每个项目都有且只有一个。feature:项目的功能模块,内部模式和En…...
由浅到深认识Java语言(30):集合
该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…...
Python学习笔记(二)
一:异常: 1.1:异常处理: 1.2:异常捕获: 1.3:异常传递: 二:模块: 2.1:模块的定义: 2.2:模块的导入: 2.3&…...
5.域控服务器都要备份哪些资料?如何备份DNS服务器?如何备份DHCP服务器?如何备份组策略?如何备份服务器状态的备份?
(2.1) NTD(域控数据库)备份 (2.2)DNS备份 (2.3)DHCP备份 (2.4)组策略备份 (2.5)CA证书备份 (2.6)系统状态备份 (2.1)…...
TCP与UDP:网络协议的技术原理与要点
文章目录 1. TCP(传输控制协议)1.1 面向连接1.1.1 三次握手1.1.2 为什么需要三次握手?1.1.3 四次挥手1.1.4 为什么需要四次挥手? 1.2 可靠性1.3 有序传输1.4 流量控制1.5 拥塞控制 2. UDP(用户数据报协议)2…...
vue-office/docx插件实现docx文件预览
1.下包 //预览docx文件 npm install vue-office/docx vue-demi//如果是vue2.6版本或以下还需要额外安装 vue/composition-api2.引入 <template><div>//在src填入文档地址<VueOfficeDocx srchttp://...../xx.docx style"width:80%" rendered"re…...
STM32—控制蜂鸣器(定时器)
目录 1 、 电路构成及原理图 2 、编写实现代码 main.c tim_irq.c 3、代码讲解 4、烧录到开发板调试、验证代码 5、检验效果 此笔记基于朗峰 STM32F103 系列全集成开发板的记录。 1 、 电路构成及原理图 定时器中断是利用定时器的计数功能(向上计数或向下计…...
【React】使用 JSX 为 JavaScript 添加标签
使用 JSX 为 JavaScript 添加标签实际上是将 JSX 语法与 JavaScript 代码结合使用,以描述用户界面。JSX 允许你在 JavaScript 中编写类似 HTML 的结构,并最终由 React 库将其转换为真正的 DOM 元素。以下是将标签引入 JavaScript 以及将 HTML 转化为 JSX…...
Docker构建多平台(x86,arm64)构架镜像
这里写自定义目录标题 背景配置buildx开启experimental重启检查 打包 背景 docker镜像需要支持不同平台架构 配置buildx 开启experimental vi /etc/docker/daemon.json {"experimental": true }或者 重启检查 # 验证buildx版本 docker buildx version# 重启do…...
python爬虫基础-----运算符(第三天)
🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…...
Itextpdf电子签章
印章 印章是我国特有的历史文化产物,古代主要用作身份凭证和行驶职权的工具。它的起源是由于社会生活的实际需要。早在商周时代,印章就已经产生。如今的印章已成为一种独特的,融实用性和艺术性为一体的艺术瑰宝。传统的印章容易被坏人、小人…...
两台电脑简单的通信过程详解(经过两个路由器,不同网段)
一、eNSP拓扑图 二、配置4台电脑的IP地址、子网掩码、网关地址。 三、配置路由器 注意拓扑图的接口与本博客是否相符,判断以下命令中的ip是否需要修改。 1.AR1-接口对应IP <Huawei>sys #进入系统视图 [Huawei]int g0/0/0 #进入0/0/0接口 [Huawei-GigabitE…...
Java基于微信小程序的助农扶贫系统的研究与实现
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#…...
RocketMq方便测试,提供一个controller的接口,支持拉取消息,查看消息内容
通过一个REST API接口动态地启动RocketMQ的消费者,并基于传入的参数(topicName,filterExpression,consumerGroupId)决定要监听哪些消息。在Spring Boot项目中,这通常不是推荐的做法,因为消息消费…...
win10 下Msys2编译FFmpeg的流程方法
安装Msys MSYS2官网 安装... 将\msys64\usr\bin加入环境变量 Mysy2中输入 pacman –Syu pacman –Su pacman -S git patch unzip pacman -S mingw-w64-x86_64-toolchain pacman -S mingw-w64-x86_64-yasm pacman -S mingw-w64-x86_64-SDL2 pacman -S mingw-w64-x86_6…...
用 Delphi 做 FTP 服务器以及如何配置防火墙
使用 Delphi 的 TIdFTPServer 这个控件,做一个 FTP 服务器很简单。可以直接拿官方提供的 FTP Server 的那个 Demo 程序来修改。 本文主要描述如何配置服务器端防火墙 网络环境: 1. 客户端在路由器后面,局域网; 2. 服务器端在路…...
《SQL必知必会第五版》第十四章(组合查询)挑战题
1. 编写 SQL 语句,将两个 SELECT 语句结合起来,以便从 OrderItems表中检索产品 ID(prod_id)和 quantity。其中,一个 SELECT 语句过滤数量为 100 的行,另一个 SELECT 语句过滤 ID 以 BNBG 开头的产品。按产品…...
C语言入门必看:2026年嵌入式开发选C还是C++?
一、在2026年的时候,进行编程选择语言可千万别胡乱去选!C语言、C语言、C#语言,它们有着相同源头却有着不同命运,选对了语言才是获得高薪的关键所在! 对于编程领域而言,C、C、C#此三门如同“同门兄弟”般的语…...
DeepSeekGEO生成式引擎优化技术方案
DeepSeekGEO生成式引擎优化技术方案技术支持:拓世网络技术开发工作室1 方案背景与技术范式转移随着生成式AI成为信息分发的主入口,用户获取信息的方式已从“搜索-点击”转变为“提问-答案”。据统计,超过60%的Z世代用户更倾向于通过AI助手获取…...
新手友好:借助快马AI零基础实现openclaw101官网登录功能入门教程
今天想和大家分享一个特别适合编程新手的实践项目——如何用最简单的方式实现一个网站登录功能。作为一个刚入门的前端学习者,我发现登录功能看似简单,其实包含了很多核心知识点。通过InsCode(快马)平台,我们可以轻松获得一个完整可运行的登录…...
倒反天罡了!Cursor自研模型反超Opus 4.6!价格脚踝斩,氛围编程沸腾了
因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享点击关注#互联网架构师公众号,领取架构师全套资料 都在这里0、2T架构师学习资料干货分上一篇:2T架构师学习资料干货分享大家好,我是互联网架构师ÿ…...
从‘迷失’到‘秒达’:我用PyCharm的‘符号搜索’和‘调用链查看’重构了老项目
从‘迷失’到‘秒达’:我用PyCharm的‘符号搜索’和‘调用链查看’重构了老项目 接手一个缺乏文档的遗留代码库,就像被扔进一座没有地图的迷宫。上周我面对的就是这样一个Python项目——3万行代码,零文档,函数命名随意得像临时起意…...
CryptoJS不同加密模式对比:AES-CBC vs GCM在前端安全中的选择指南
AES加密模式深度解析:CBC与GCM在前端安全中的实战抉择 前端开发者在处理用户敏感数据时,AES加密已成为标配技术方案。但在具体实施过程中,加密模式的选择往往成为决策难点——是选择经典的CBC模式,还是拥抱更现代的GCM模式&#x…...
TCT亚洲展|直击3D打印前沿盛宴,解锁增材制造新趋势
近日,2026 TCT亚洲展在上海国家会展中心圆满落幕,作为亚太地区规模最大、专业性最强的3D打印与增材制造行业盛会,本届展会汇聚全球550余家头部展商,集中呈现了从工业级设备、高性能材料到全场景应用方案的全产业链创新成果&#x…...
零基础入门gstack:借助快马AI生成你的第一个可运行React+TypeScript项目
作为一名刚接触前端开发的新手,第一次听说gstack(ViteReactTypeScript组合)时,我完全不知道从何入手。直到发现了InsCode(快马)平台,才真正体会到"零配置"开发是什么感觉。下面记录我的学习过程,…...
别再死记硬背了!用C++/Java手把手实现线索二叉树(附完整代码与避坑指南)
从零实现线索二叉树:C/Java双语言实战与陷阱全解析 第一次在面试白板上遇到线索二叉树的实现题时,我的手心全是汗。教科书上的递归图示看起来清晰,但真正要写出无bug的线索化代码时,那些ltag和rtag就像捉迷藏的孩子,总…...
群晖更换RAID类型无需重建服务,保持Volume磁盘盘符不变
我的环境:DSM型号:DS3617xs(黑群晖)系统版本:DSM 7.1.1-42962 Update 6硬盘数据库更新时间:2026-01-23更改前磁盘序号(btrfs):Raid1(volume1)&…...
