👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
二手车交易管理系统拥有两种角色
管理员:车辆管理、用户管理、回复管理、类别管理、品牌管理、评估查询、售后查询、需求查询、询价查询、预约管理等
用户:注册登录、预约车辆、联系平台、发布买车需求、发布车辆出售信息、车辆询价、查看买车需求、分类查询等
1.1 背景描述
二手车交易管理系统是一个针对二手车交易市场进行管理的软件系统。这个系统旨在提高二手车交易的效率和安全性,同时降低交易成本。该系统主要包括车辆信息管理、交易流程管理、客户信息管理、支付管理等功能。车辆信息管理模块允许工作人员录入和更新车辆的基本信息,包括车辆的品牌、型号、年份、里程数、维修记录等。交易流程管理模块涵盖了二手车交易的全过程,包括车辆的检测、估价、拍卖、成交等环节。客户信息管理模块则记录了客户的姓名、联系方式、购车历史等信息。支付管理模块负责处理交易的支付事宜,包括在线支付、线下支付等。
2、项目技术
后端框架: Servlet、mvc模式
前端技术:jsp、css、JavaScript、JQuery
2.1 MVC模式
MVC(Model-View-Controller)模式是一种常用的软件设计模式,它把应用程序分为三个主要组成部分:模型(Model)、视图(View)和控制器(Controller),以实现应用程序的可维护性和可重用性。
2.2 mysql
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
3、开发环境
- JAVA版本:JDK1.8
- IDE类型:IDEA、Eclipse都可运行
- tomcat版本:Tomcat 7-10版本均可
- 数据库类型:MySql(5.x和8.x版本都可)
- maven项目:否
- 硬件环境:Windows 或者 Mac OS
4、功能截图+视频演示+文档目录
4.1 登录注册
4.2前端 模块
4.3 用户模块
4.4 管理员模块
5 、核心代码实现
package control;
import dao.CommDAO;
import dao.Query;
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import util.Info;
/**
* 前台、后台、登录。
* 和修改密码项
*/
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
}
}
6 、功能视频演示
二手车交易管理系统