校车管理系统【JSP + Servlet + HTML + CSS + JavaScript + Bootstrap + Jquery】

一、任务需求

1.本系统的用户分为两类,普通用户和管理员。其中管理员可以对校车,学院,司机,用户进行增删改查的操作;普通用户只可以查看学院,车辆,司机的信息。
2.设置四个表用户,学院,车辆,司机 用户属性:用户名,密码,权限级别 学院属性:学员编号,学院名称 车辆属性:车辆编号,发车时间,所属学院编号 司机属性:工号,姓名,性别,年龄,所在车辆编号
3.四个表的信息都可以增删改查

二、系统处理流程

在这里插入图片描述

三、系统实现

1.登录注册

登录:
在这里插入图片描述

注册:
在这里插入图片描述

2.管理员

1.用户
在这里插入图片描述管理员可以直接增删用户
在这里插入图片描述

2.学院
在这里插入图片描述
3.车辆
在这里插入图片描述4.司机
在这里插入图片描述

3.普通用户

在这里插入图片描述
只可以查看数据
在这里插入图片描述

4.增

在这里插入图片描述

5.删

在这里插入图片描述

6.改

在这里插入图片描述

四、重要代码

连接数据库函数

package utils;

import java.sql.DriverManager;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;

public class DBUtils {

    /**
     * 获取数据库连接
     * @return Connection对象
     */
    public static Connection getConnection(){
		//jdbc驱动
		String driver="com.mysql.jdbc.Driver";
		String url="jdbc:mysql://localhost:3306/studentinfomanagement?&useSSL=false&serverTimezone=UTC";
		String user="root";
		String password="123456";
		Connection con = null;
    	try {
    		Class.forName(driver);
			con = (Connection) DriverManager.getConnection(url, user, password);
    	} catch (ClassNotFoundException | SQLException e) {
    		e.printStackTrace();
    	}
    	return con;
    }

    /**
     * 关闭数据库连接
     * @param con Connection对象
     */
    public static void closeConnection(Connection con) {
		//判断conn是否为空
    	if(con != null){
    		try {
				con.close();//关闭数据库连接
			} catch (SQLException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
    	}
	}
}

登录servlet

package service;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.UserDao;
import model.User;

public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String level = null;
		//实例化UserDao对象
		UserDao userDao = new UserDao();
		User user = userDao.login(username, password);
		//判断是否登录成功
		if(user != null){//成功
			level = user.getLevel();
			if(level.equals("用户")){
				request.getSession().setAttribute("user", user);//将用户对象放到session中
				//转发到user.jsp中
				request.getRequestDispatcher("user.jsp").forward(request, response);
			}
			else{
				request.getSession().setAttribute("admin", user);//将管理员对象放到session中
				//转发到admin.jsp中
				request.getRequestDispatcher("admin.jsp").forward(request, response);
			}	
		}else {//失败
			request.setAttribute("info"," 错误:用户名或密码错误!");
			request.getRequestDispatcher("message.jsp").forward(request, response);
		}
	}

}

注册servlet

package service;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.UserDao;
import model.User;

public class RegisterServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String level = request.getParameter("level");
		//实例化UserDao对象
		UserDao userDao = new UserDao();
		User user = userDao.register(username, password,level);
		//判断是否注册成功
		if(user != null){//成功
			if (level.equals("用户")) {
				request.getSession().setAttribute("user", user);//将用户对象放到session中
				//转发到user.jsp中
				request.getRequestDispatcher("user.jsp").forward(request, response);
			}else{
				request.getSession().setAttribute("admin", user);//将管理员对象放到session中
				//转发到user.jsp中
				request.getRequestDispatcher("admin.jsp").forward(request, response);
			}
		}else {//失败
			request.setAttribute("info"," 错误:已存在该用户,不能重复注册!");
			request.getRequestDispatcher("message.jsp").forward(request, response);
		}
	}

}

司机增删改查

/*-------------------------------- 司机-----------------------------------*/
	// 查询所有司机
	protected void query_all_student(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		ArrayList<Student> results = new StudentDao().query_all_student();
		PrintWriter out = response.getWriter();
		// 输出结果
		if (results != null) {
			out.write("<div class='all'>");
			out.write("<div><span>工号</span><span>姓名</span><span>性别</span><span>年龄</span><span>所在车辆编号</span></div>");
			for (Student i : results) {
				out.write("<div>");
				out.write("<span>" + i.getSno() + "</span>");
				out.write("<span>" + i.getSname() + "</span>");
				out.write("<span>" + i.getSsex() + "</span>");
				out.write("<span>" + i.getSage() + "</span>");
				out.write("<span>" + i.getClno() + "</span>");
				out.write("</div>");
			}
			out.write("</div>");
		}
		out.flush();
		out.close();
	}
	// 插入司机
	protected void insert_student(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		String sno = request.getParameter("sno");
		String sname = request.getParameter("sname");
		String ssex = request.getParameter("ssex");
		int sage = Integer.parseInt(request.getParameter("sage"));
		String clno = request.getParameter("clno");
		int flag = new StudentDao().insert_student(sno, sname, ssex, sage, clno);
		String info = null;
		PrintWriter out = response.getWriter();
		if (flag == 1) {
			info = "司机"+sname+"插入成功!";
		} else {
			info = "错误:司机插入失败!";
		}
		out.write("<div class='error'>");
		out.write("<div>" + info + "</div>");
		out.write("</div>");
		out.flush();
		out.close();
	}
	// 删除司机
	protected void delete_student(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		String sno = request.getParameter("sno");
		int flag = new StudentDao().delete_student(sno);
		String info = null;
		PrintWriter out = response.getWriter();
		if (flag == 1) {
			info = "成功删除" + sno + "号司机!";
		} else {
			info = "错误:删除司机失败!";
		}
		out.write("<div class='error'>");
		out.write("<div>" + info + "</div>");
		out.write("</div>");
		out.flush();
		out.close();
	}
	// 修改司机信息
	protected void alter_student(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		String sno = request.getParameter("sno");
		String after_sno = request.getParameter("after_sno");
		String after_sname = request.getParameter("after_sname");
		String after_ssex = request.getParameter("after_ssex");
		int after_sage = Integer.parseInt(request.getParameter("after_sage"));
		String after_clno = request.getParameter("after_clno");
		int flag = new StudentDao().alter_class(sno, after_sno, after_sname, after_ssex, after_sage, after_clno);
		String info = null;
		PrintWriter out = response.getWriter();
		if (flag == 1) {
			info = "司机"+sno+"信息修改成功!";
		} else {
			info = "错误:修改司机信息失败!";
		}
		out.write("<div class='error'>");
		out.write("<div>" + info + "</div>");
		out.write("</div>");
		out.flush();
		out.close();
	}
车辆管理系统主要负责各种车辆的常规信息管理工作。 系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、 耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等 信息。 每台车辆当月总费用=油价*耗油量/公里+基本维护费用。 基本维护费用:客车:2000 元/月,小轿车:1000 元/月,卡车:1500 元/月 功能要求: (1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再 添加新的数据。 (2)查询车辆:可按照三种方式来查询物品,分别为: 按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”; 按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”; 按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”; (3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删 除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。 (6)统计信息 输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。 (7)车辆信息存盘:将当前程序中的车辆信息存入文件中。 (8)读出车辆信息:从文件中将车辆信息读入程序。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值