基于JSP+Servlet的毕业生离校管理系统

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

需求分析

使用JSP+Servlet+Mysql技术设计一个毕业生离校管理系统, 整个系统采用BS架构, 为高校方便进行毕业生离校流程进行统一的离校流程, 极大的减少了大量学生同时离校的过程中杂乱的情况, 整个系统分为学生, 教务处, 辅导员, 图书馆, 宿管, 财务处, 系办公室, 管理员登等角色, 不同的角色拥有不同的功能

实现功能

该项目是一个基于JSP+Servlet+Mysql实现的毕业生离校管理系统, 用于统一离校流程, 提升学校管理效率,主要分为如下模块
系统的登录注册模块, 注意只能注册学生账号
学生角色: 可以查看未归还图书信息, 未归还宿舍信息, 欠费信息, 手动发起离线申请
教务处角色: 可以添加离校信息 并确认某人离校
辅导员角色: 辅导员可以登录系统查看离校本人并进行确认离校。
图书馆人员角色: 登录系统添加未归还的图书信息。
宿管处角色: 添加未归还钥匙信息并确认离校状态

财务处角色: 添加欠费信息并确认离校状态

运行环境

jdk1.8,tomcat8.5,mysql5.7,Eclispse/IDEA/MyEclipse

项目技术

jsp, servlet, jquery

技术原理

项目是一个基于JSP+Mysql实现的毕业生离校管理系统, 采用比较传统的javaweb模式进行开发, 除了使用dwr并没有使用任何其他大型框架, 但是本项目的servlet+jsp也是构造了一个符合mvc设计模式及的封装代码, 另外此项目自带一篇毕业论文, 项目可以直接用于毕业设计中

注意事项

系统采用jsp+servlet+mysql编写, eclipse导入项目的时候properties的编码需要调整为utf8
mysql的编码utf8, 需要在dbinfo.properties中修改数据连接与密码

本项目自带一篇参考论文

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中dbinfo.properties配置文件中的数据库配置改为自己的配置

3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

4. 运行项目,输入localhost:8080/xxx 登录

测试账号

管理员账号:a 密码:a
教务处账号:jwc  密码:0
辅导员账号:fdy  密码:0
图书馆账号:tsg  密码:0
宿管处账号:sgc  密码:0
财务处账号:cwc  密码:0

系办公室账号:xbgs 密码:0

运行截图

相关代码

用户servlet

public class user_servlet extends HttpServlet
{
	public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException 
	{
        String type=req.getParameter("type");
		
		if(type.endsWith("userAdd"))
		{
			userAdd(req, res);
		}
		if(type.endsWith("userMana"))
		{
			userMana(req, res);
		}
		if(type.endsWith("userDel"))
		{
			userDel(req, res);
		}
		if(type.endsWith("userReg"))
		{
			userReg(req, res);
		}
	}
	
	public void userAdd(HttpServletRequest req,HttpServletResponse res)
	{
		String loginname=req.getParameter("loginname");
		String loginpw=req.getParameter("loginpw");
		String name=req.getParameter("xingming");
		String xingbie=req.getParameter("xingbie");
		String zhiwu=req.getParameter("zhiwu");
		String del="no";
		
		String sql="insert into t_user (loginname,loginpw,xingming,xingbie,zhiwu,del) " +
				   "values(?,?,?,?,?,?)";
		Object[] params={loginname,loginpw,name,xingbie,zhiwu,del};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "user?type=userMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}
	
	public void userDel(HttpServletRequest req,HttpServletResponse res)
	{
		String id=req.getParameter("id");
		String sql="update t_user set del='yes' where id=?";
		Object[] params={id};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "user?type=userMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}

	public void userMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
	{
		List userList=new ArrayList();
		String sql="select * from t_user where del='no'";
		Object[] params={};
		DB mydb=new DB();
		try
		{
			mydb.doPstm(sql, params);
			ResultSet rs=mydb.getRs();
			while(rs.next())
			{
				TUser user=new TUser();
				
				user.setId(rs.getInt("id"));
				user.setLoginname(rs.getString("loginname"));
				user.setLoginpw(rs.getString("loginpw"));
				user.setXingming(rs.getString("xingming"));
				user.setXingbie(rs.getString("xingbie"));
				user.setZwmc(getZwmc(rs.getInt("zhiwu")));
				
				userList.add(user);
		    }
			rs.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		mydb.closed();
		
		req.setAttribute("userList", userList);
		req.getRequestDispatcher("admin/user/userMana.jsp").forward(req, res);
	}

	/**
	 * 学生注册
	 * @param req
	 * @param res
	 */
	public void userReg(HttpServletRequest req,HttpServletResponse res)
	{
		String xuehao=req.getParameter("xuehao");
		String loginpw=req.getParameter("loginpw");
		String name=req.getParameter("xingming");
		String xingbie=req.getParameter("xingbie");
		String lianxi=req.getParameter("lianxi");
		String shenfenzheng=req.getParameter("shenfenzheng");
		String ruxue=req.getParameter("ruxue");
		String yuanxi=req.getParameter("yuanxi");
		String riqi = new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString();

		String sql="insert into t_xuesheng (xuehao,loginpw,xingming,xingbie,lianxi,shenfenzheng,ruxue,yuanxi,riqi,zt_jwc,zt_fdy,zt_tsg,zt_sgc,zt_cwc,zt_xbgs,zt_xuesheng) " +
				"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
		Object[] params={xuehao,loginpw,name,xingbie,lianxi,shenfenzheng,ruxue,yuanxi,riqi,0,0,0,0,0,0,0};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();

		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "login.jsp");

		String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}

教务处servlet

public class jwc_servlet extends HttpServlet
{
	public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException 
	{
        String type=req.getParameter("type");
		
        if(type.endsWith("xueshengList"))
        {
        	xueshengList(req, res);
        }
        if(type.endsWith("lxqr"))
        {
        	lxqr(req, res);
        }
        if(type.endsWith("jwctj"))
        {
        	jwctj(req, res);
        }        
	}
	
	public void xueshengList(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
	{
		String sql="select * from t_xuesheng where zt_jwc=0";
		
		GetListService gl = new GetListService();

		req.setAttribute("xueshengList", gl.getXueshengList(sql));
		req.getRequestDispatcher("admin/jwc/xueshengList.jsp").forward(req, res);
	} 	
	
	public void jwctj(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
	{
		TUser user = (TUser)req.getSession().getAttribute("user");
		String sql="select * from t_queren where user_id="+user.getId();
		
		GetListService gl = new GetListService();

		req.setAttribute("querenList", gl.getQuerenList(sql));
		req.getRequestDispatcher("admin/jwc/jwctj.jsp").forward(req, res);
	} 	
	
	public void lxqr(HttpServletRequest req,HttpServletResponse res)
	{
		TUser user = (TUser)req.getSession().getAttribute("user");
		int userType = (Integer)req.getSession().getAttribute("userType");
		String xuesheng_id = req.getParameter("xuesheng_id");
		String shijian = DateUtils.formatDate2Str(new Date(), "yyyy-MM-dd");
		
		DB mydb=new DB();
		
		String sql="insert into t_queren (xuesheng_id,user_id,shijian,lx) " +
				   "values(?,?,?,?)";
		Object[] params={xuesheng_id,user.getId(),shijian,userType};
		mydb.doPstm(sql, params);
		
		sql = "update t_xuesheng set zt_jwc=1 where id=?";
		Object[] params1={xuesheng_id};
		mydb.doPstm(sql, params1);
		
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "jwc?type=jwctj");
		
		String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
		
	}		
	public void dispatch(String targetURI,HttpServletRequest request,HttpServletResponse response) 
	{
		RequestDispatcher dispatch = getServletContext().getRequestDispatcher(targetURI);
		try 
		{
		    dispatch.forward(request, response);
		    return;
		} 
		catch (ServletException e) 
		{
			e.printStackTrace();
		} 
		catch (IOException e) 
		{
			
		    e.printStackTrace();
		}
	}
	public void init(ServletConfig config) throws ServletException 
	{
		super.init(config);
	}
	
	public void destroy() 
	{
		
	}
}

财务处servlet

public class cwc_servlet extends HttpServlet
{
	public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException 
	{
        String type=req.getParameter("type");
		
        if(type.endsWith("xueshengList"))
        {
        	xueshengList(req, res);
        }
        if(type.endsWith("lxqr"))
        {
        	lxqr(req, res);
        }
        if(type.endsWith("cwctj"))
        {
        	cwctj(req, res);
        }   
        
        if(type.endsWith("qianfeiAdd"))
        {
        	qianfeiAdd(req, res);
        }
        if(type.endsWith("qianfei_cwc"))
        {
        	qianfei_cwc(req, res);
        }
        if(type.endsWith("qianfei_xuesheng"))
        {
        	qianfei_xuesheng(req, res);
        }        
	}
	
	public void cwctj(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
	{
		TUser user = (TUser)req.getSession().getAttribute("user");
		String sql="select * from t_queren where user_id="+user.getId();
		
		GetListService gl = new GetListService();

		req.setAttribute("querenList", gl.getQuerenList(sql));
		req.getRequestDispatcher("admin/tsg/tsgtj.jsp").forward(req, res);
	} 	
	
	public void lxqr(HttpServletRequest req,HttpServletResponse res)
	{
		TUser user = (TUser)req.getSession().getAttribute("user");
		int userType = (Integer)req.getSession().getAttribute("userType");
		String xuesheng_id = req.getParameter("xuesheng_id");
		String shijian = DateUtils.formatDate2Str(new Date(), "yyyy-MM-dd");
		
		DB mydb=new DB();
		
		String sql="insert into t_queren (xuesheng_id,user_id,shijian,lx) " +
				   "values(?,?,?,?)";
		Object[] params={xuesheng_id,user.getId(),shijian,userType};
		mydb.doPstm(sql, params);
		
		sql = "update t_xuesheng set zt_cwc=1 where id=?";
		Object[] params1={xuesheng_id};
		mydb.doPstm(sql, params1);
		
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "cwc?type=cwctj");
		
		String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
		
	}	
	
	public void xueshengList(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
	{
		String sql="select * from t_xuesheng where zt_cwc=0";
		
		GetListService gl = new GetListService();

		req.setAttribute("xueshengList", gl.getXueshengList(sql));
		req.getRequestDispatcher("admin/cwc/xueshengList.jsp").forward(req, res);
	} 
	
	public void qianfeiAdd(HttpServletRequest req,HttpServletResponse res)
	{
		String xuesheng_id = req.getParameter("xuesheng_id");
		String leixing = req.getParameter("leixing");
		String jine = req.getParameter("jine");
		String shijian = req.getParameter("shijian");
		
		DB mydb=new DB();
		
		String sql="insert into t_qianfei (xuesheng_id,leixing,jine,shijian) " +
				   "values(?,?,?,?)";
		Object[] params={xuesheng_id,leixing,jine,shijian};
		mydb.doPstm(sql, params);
		
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "cwc?type=qianfei_cwc");
		
		String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
		
	}

如果也想学习本系统,下面领取。回复:008JSP 

本系统采用了BS架构模式开发,利用JSP编程,MVC结构以及mysql数据库实现,是一款典型的后台管理系统。 该系统主要是针对于毕业生离校的信息进行管理,毕业生离校是一个繁琐的工作,牵扯到很多部门,所以该系统对毕业生离校各种流程进行了一个统一的管理,系统各个功能如下所示: 它可以分为四个大块功能,分别为:大学生离校的申请与批准,图书借阅查询和未归还图书的查询、宿舍钥匙信息的管理、学校欠费信息管理。 下面是每个功能模块的详细介绍: 学生离校申请:学生登陆系统后,可以对离校信息进行申请,如果批准,方可办理其他手续。 图书借阅查询:学生可以通过该模块进行图书借阅信息的查询,看看是否有未归还的图书。 宿舍钥匙查询:宿舍钥匙信息的查询,可以对学生宿舍钥匙归还信息进行查看 管理。 欠费信息查询:学生登陆后可以对自己的欠费信息进行查询查看。 教务处: 它可以分为两个大块功能,分别为:离校学生信息的添加和离校学生申请的确认: 离校学生添加模块:教务处人员可以在线登记离校学生的基本信息。并能通过固定的模板利用导入excel方式批量导入离校学生的信息。 离校学生确认模块:教务处的工作人员,对学生离校信息进行确认操作,通过确认操作的学生,才有资格进入下一个环节。 辅导员: 辅导员可以查看离校的情况,也可以对离校学生信息进行确认: 离校情况查看模块:辅导员登录系统后,可以进入系统查看学生的离校信息。 离校学生确认模块:对申请离校的学生进行确认,可以确认离校学生。 图书馆: 图书馆管理员可以进入系统,确定是否有学生有未归还的图书,确定完毕后进行毕业生离校确认,具体功能如下: 图书借阅管理模块:图书馆管理人员进入系统后,查看借阅信息,确认是否有未归还的图书信息。 离校学生确认模块:图书馆工作人员对归还图书的学生进行离校确认。 宿管处: 学生通过了以上管理人员的审核后,进入宿管处的审核: 宿舍钥匙管理模块:宿管处人员查看学生钥匙的归还信息情况,对归还钥匙的学生进行登记。 离校学生确认模块:宿管处人员对归还钥匙的学生,进行离校确认审核,该学生进入下一环节的审核。 财务处: 财务处人员登录系统,查询学生欠费信息和对离校学生信息进行确定: 欠费信息管理模块:财务人员在线登记学生的欠费信息,并能对欠费信息进行管理。 离校学生确认模块:对未欠费的学生信息进行审核确认。 系部办公室: 通过以上种种步骤后,最后系部办公室确认学生的离校情况: 离校情况查看模块:系办公室工作人员,对学生离校情况进行确认,并对离校学生信息进行导出。 离校学生确认模块:系办公室人员通过该模块查询需要系办公室确认的离校学生,并进行离校确认。 管理员: 人员信息管理模块:完成所有参与审批工作人员的登记管理。
本系统采用了BS架构模式开发,利用JSP编程,MVC结构以及mysql数据库实现,是一款典型的后台管理系统。 该系统主要是针对于毕业生离校的信息进行管理,毕业生离校是一个繁琐的工作,牵扯到很多部门,所以该系统对毕业生离校各种流程进行了一个统一的管理,系统各个功能如下所示: 它可以分为四个大块功能,分别为:大学生离校的申请与批准,图书借阅查询和未归还图书的查询、宿舍钥匙信息的管理、学校欠费信息管理。 下面是每个功能模块的详细介绍: 学生离校申请:学生登陆系统后,可以对离校信息进行申请,如果批准,方可办理其他手续。 图书借阅查询:学生可以通过该模块进行图书借阅信息的查询,看看是否有未归还的图书。 宿舍钥匙查询:宿舍钥匙信息的查询,可以对学生宿舍钥匙归还信息进行查看管理。 欠费信息查询:学生登陆后可以对自己的欠费信息进行查询查看。 教务处: 它可以分为两个大块功能,分别为:离校学生信息的添加和离校学生申请的确认: 离校学生添加模块:教务处人员可以在线登记离校学生的基本信息。并能通过固定的模板利用导入excel方式批量导入离校学生的信息。 离校学生确认模块:教务处的工作人员,对学生离校信息进行确认操作,通过确认操作的学生,才有资格进入下一个环节。 辅导员: 辅导员可以查看离校的情况,也可以对离校学生信息进行确认: 离校情况查看模块:辅导员登录系统后,可以进入系统查看学生的离校信息。 离校学生确认模块:对申请离校的学生进行确认,可以确认离校学生。 图书馆: 图书馆管理员可以进入系统,确定是否有学生有未归还的图书,确定完毕后进行毕业生离校确认,具体功能如下: 图书借阅管理模块:图书馆管理人员进入系统后,查看借阅信息,确认是否有未归还的图书信息。 离校学生确认模块:图书馆工作人员对归还图书的学生进行离校确认。 宿管处: 学生通过了以上管理人员的审核后,进入宿管处的审核: 宿舍钥匙管理模块:宿管处人员查看学生钥匙的归还信息情况,对归还钥匙的学生进行登记。 离校学生确认模块:宿管处人员对归还钥匙的学生,进行离校确认审核,该学生进入下一环节的审核。 财务处: 财务处人员登录系统,查询学生欠费信息和对离校学生信息进行确定: 欠费信息管理模块:财务人员在线登记学生的欠费信息,并能对欠费信息进行管理。 离校学生确认模块:对未欠费的学生信息进行审核确认。 系部办公室: 通过以上种种步骤后,最后系部办公室确认学生的离校情况: 离校情况查看模块:系办公室工作人员,对学生离校情况进行确认,并对离校学生信息进行导出。 离校学生确认模块:系办公室人员通过该模块查询需要系办公室确认的离校学生,并进行离校确认。 管理员: 人员信息管理模块:完成所有参与审批工作人员的登记管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜未央5788

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

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

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

打赏作者

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

抵扣说明:

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

余额充值