sql_1">👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
二手车交易管理系统拥有两种角色
管理员:车辆管理、用户管理、回复管理、类别管理、品牌管理、评估查询、售后查询、需求查询、询价查询、预约管理等
用户:注册登录、预约车辆、联系平台、发布买车需求、发布车辆出售信息、车辆询价、查看买车需求、分类查询等
1.1 背景描述
二手车交易管理系统是一个针对二手车交易市场进行管理的软件系统。这个系统旨在提高二手车交易的效率和安全性,同时降低交易成本。该系统主要包括车辆信息管理、交易流程管理、客户信息管理、支付管理等功能。车辆信息管理模块允许工作人员录入和更新车辆的基本信息,包括车辆的品牌、型号、年份、里程数、维修记录等。交易流程管理模块涵盖了二手车交易的全过程,包括车辆的检测、估价、拍卖、成交等环节。客户信息管理模块则记录了客户的姓名、联系方式、购车历史等信息。支付管理模块负责处理交易的支付事宜,包括在线支付、线下支付等。
2、项目技术
后端框架: Servlet、mvc模式
前端技术:jsp、css、JavaScript、JQuery
2.1 MVC模式
MVC(Model-View-Controller)模式是一种常用的软件设计模式,它把应用程序分为三个主要组成部分:模型(Model)、视图(View)和控制器(Controller),以实现应用程序的可维护性和可重用性。
sql_18">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 blocke.printStackTrace();}}// 执行post 方法public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 设定编码为 utf-8response.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();// 设置sessionrequest.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.jspgor("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();// 设置sessionrequest.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.jspgor("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());// 判断当前权限pString 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 、功能视频演示
二手车交易管理系统