基于SSM的“学生网上请假系统 ”的设计与实现(源码+数据库+文档)
-
开发语言:Java
-
数据库:MySQL
-
技术:SSM
-
工具:IDEA/Ecilpse、Navicat、Maven
系统展示
系统功能结构图
主页界面
登录界面
班级信息添加界面
院系信息添加界面
用户权限添加页面
学生请假管理界面
摘要
本学生网上请假系统是针对目前学生网上请假系统的实际需求,从实际工作出发,对过去的学生网上请假系统存在的问题进行分析,结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用目前最流行的ssm框架和eclipse编辑器、mysql数据库设计并实现的 。本学生网上请假系统主要包括登录模块、基础信息模块、班级信息管理模块、用户权限管理模块、和退出模块等多个模块。它帮助学生网上请假系统实现了信息化、网络化,通过测试,实现了系统设计目标,相比传统的管理模式,本系统合理的利用了网络数据资源,有效的减少了学生网上请假系统的经济投入,大大提高了学生网上请假系统的效率。
开发背景
上个世纪末期,网络技术逐渐开始流行起来,互联网发展进入了起步阶段。到了新世纪初期,信息化技术开始逐渐发展,计算机应用技术逐渐体现出优势来。接着,大量的电脑进入了千家万户,更是诞生了大量的管理平台。信息化时代逐渐来临,互联网成为时代下媒体关注的核心内容。学生网上请假系统随着互联网的潮流,给相关机构和管理员提供了高效的服务。以往的模式长期来看,管理十分不便利,存在误差,查询难的现象,一旦数据过多,人工管理方式就很难维持。随着信息技术的应用拓展,逐渐引用了信息化技术管理,逐渐取代了人工管理模式,采用计算机系统来管理学生网上请假系统,带来的好处是查询便利,信息准确率高,节省了资源,提高了工作的效率。本次系统开发,主要以学生网上请假系统为对象,根据需求来完成功能设计[1][2]。
开发意义
在当下社会,人们越来越注重网络的发展,自动化管理技术和信息化管理技术逐渐被人们所使用。在以往的手工管理模式中已经越来越能体现出问题和不足,如管理效率低下,信息处理速度慢,劳动强度大,信息的准确率低。因此如何改变这一现状,从根本上帮助实验室提升他们在设备方面的效率,真正的解放劳动力,相关信息处理过程中的正确率以及速度就成为关键。现代经济发展速度非常快,市场更是变化无常,可以说当前学生网上请假系统在这种条件下生存就不得不面临诸多威胁,同时也必须做到相关系统的完善和升级。那么学生网上请假系统,就需要一个可靠的系统管理软件来管理以及对管理员使用的安排管理,因此开发出一个优秀并且可靠的系统就十分必要了[3][4]。
研究内容
1.不同管理员的登录问题:根据管理员的类别(超级管理员、普通用户)实现管理员操作权限的区分并显示不同的操作界面。
2.数据库的连接问题:数据库连接为系统中的关键技术。
3.数据的一致性和安全问题:本系统必须保证数据的一致性和安全,才能实现有效的管理。不能让没有权限的管理员对数据进行操作并且定期对数据库进行备份。
4.界面开发:系统界面的设计很重要,要使界面具有亲和力。
5.分析信息化现状;
6.研究学生网上请假系统的现状及存在的问题;
7.研究系统平台的总体架构、总体设计、数据库设计、数据库安全设计及功能设计;
8.研究平台各个子系统的功能及实现的方法、信息技术的融合、信息安全技术的维护;
9.进行学生网上请假系统的功能设计。
部分源码
@Controller
public class XiguanliyuanController {
@Resource
private XiguanliyuanServer xiguanliyuanService;
@RequestMapping("addXiguanliyuan.do")
public String addXiguanliyuan(HttpServletRequest request,Xiguanliyuan xiguanliyuan,HttpSession session) throws SQLException{
Timestamp time=new Timestamp(System.currentTimeMillis());
xiguanliyuan.setAddtime(time.toString().substring(0, 19));
xiguanliyuanService.add(xiguanliyuan);
session.setAttribute("backxx", "添加成功");
session.setAttribute("backurl", request.getHeader("Referer"));
//session.setAttribute("backurl", "xiguanliyuanList.do");
return "redirect:postback.jsp";
//return "redirect:xiguanliyuanList.do";
}
// 处理编辑
@RequestMapping("doUpdateXiguanliyuan.do")
public String doUpdateXiguanliyuan(int id,ModelMap map,Xiguanliyuan xiguanliyuan){
xiguanliyuan=xiguanliyuanService.getById(id);
map.put("xiguanliyuan", xiguanliyuan);
return "xiguanliyuan_updt";
}
@RequestMapping("doUpdateXiguanliyuan2.do")
public String doUpdateXiguanliyuan2(ModelMap map,Xiguanliyuan xiguanliyuan,HttpServletRequest request){
xiguanliyuan=xiguanliyuanService.getById(Integer.parseInt((String)request.getSession().getAttribute("uid")));
map.put("xiguanliyuan", xiguanliyuan);
return "xiguanliyuan_updt2";
}
@RequestMapping("updateXiguanliyuan2.do")
public String updateXiguanliyuan2(int id,ModelMap map,Xiguanliyuan xiguanliyuan){
xiguanliyuanService.update(xiguanliyuan);
return "redirect:doUpdateXiguanliyuan2.do";
}
// 后台详细
@RequestMapping("xiguanliyuanDetail.do")
public String xiguanliyuanDetail(int id,ModelMap map,Xiguanliyuan xiguanliyuan){
xiguanliyuan=xiguanliyuanService.getById(id);
map.put("xiguanliyuan", xiguanliyuan);
return "xiguanliyuan_detail";
}
// 前台详细
@RequestMapping("xglyDetail.do")
public String xglyDetail(int id,ModelMap map,Xiguanliyuan xiguanliyuan){
xiguanliyuan=xiguanliyuanService.getById(id);
map.put("xiguanliyuan", xiguanliyuan);
return "xiguanliyuandetail";
}
//
@RequestMapping("updateXiguanliyuan.do")
public String updateXiguanliyuan(int id,ModelMap map,Xiguanliyuan xiguanliyuan,HttpServletRequest request,HttpSession session){
xiguanliyuanService.update(xiguanliyuan);
session.setAttribute("backxx", "修改成功");
session.setAttribute("backurl", request.getHeader("Referer"));
return "redirect:postback.jsp";
//String url = request.getHeader("Referer");
//return "redirect:"+url;
//return "redirect:xiguanliyuanList.do";
}
// 分页查询
@RequestMapping("xiguanliyuanList.do")
public String xiguanliyuanList(@RequestParam(value="page",required=false)String page,
ModelMap map,HttpSession session,Xiguanliyuan xiguanliyuan, String yonghuming, String mima, String xingming, String xingbie, String zhicheng, String yuanxi, String lianxidianhua, String beizhu){
if(page==null||page.equals("")){
page="1";
}
PageBean pageBean=new PageBean(Integer.parseInt(page), 15);
Map<String, Object> pmap=new HashMap<String,Object>();
pmap.put("pageno", pageBean.getStart());
pmap.put("pageSize", 15);
if(yonghuming==null||yonghuming.equals("")){pmap.put("yonghuming", null);}else{pmap.put("yonghuming", yonghuming);}
if(mima==null||mima.equals("")){pmap.put("mima", null);}else{pmap.put("mima", mima);}
if(xingming==null||xingming.equals("")){pmap.put("xingming", null);}else{pmap.put("xingming", xingming);}
if(xingbie==null||xingbie.equals("")){pmap.put("xingbie", null);}else{pmap.put("xingbie", xingbie);}
if(zhicheng==null||zhicheng.equals("")){pmap.put("zhicheng", null);}else{pmap.put("zhicheng", zhicheng);}
if(yuanxi==null||yuanxi.equals("")){pmap.put("yuanxi", null);}else{pmap.put("yuanxi", yuanxi);}
if(lianxidianhua==null||lianxidianhua.equals("")){pmap.put("lianxidianhua", null);}else{pmap.put("lianxidianhua", lianxidianhua);}
if(beizhu==null||beizhu.equals("")){pmap.put("beizhu", null);}else{pmap.put("beizhu", beizhu);}
int total=xiguanliyuanService.getCount(pmap);
pageBean.setTotal(total);
List<Xiguanliyuan> list=xiguanliyuanService.getByPage(pmap);
map.put("page", pageBean);
map.put("list", list);
session.setAttribute("p", 1);
return "xiguanliyuan_list";
}
@RequestMapping("xglyList.do")
public String xglyList(@RequestParam(value="page",required=false)String page,
ModelMap map,HttpSession session,Xiguanliyuan xiguanliyuan, String yonghuming, String mima, String xingming, String xingbie, String zhicheng, String yuanxi, String lianxidianhua, String beizhu){
if(page==null||page.equals("")){
page="1";
}
PageBean pageBean=new PageBean(Integer.parseInt(page), 15);
Map<String, Object> pmap=new HashMap<String,Object>();
pmap.put("pageno", pageBean.getStart());
pmap.put("pageSize", 15);
if(yonghuming==null||yonghuming.equals("")){pmap.put("yonghuming", null);}else{pmap.put("yonghuming", yonghuming);}
if(mima==null||mima.equals("")){pmap.put("mima", null);}else{pmap.put("mima", mima);}
if(xingming==null||xingming.equals("")){pmap.put("xingming", null);}else{pmap.put("xingming", xingming);}
if(xingbie==null||xingbie.equals("")){pmap.put("xingbie", null);}else{pmap.put("xingbie", xingbie);}
if(zhicheng==null||zhicheng.equals("")){pmap.put("zhicheng", null);}else{pmap.put("zhicheng", zhicheng);}
if(yuanxi==null||yuanxi.equals("")){pmap.put("yuanxi", null);}else{pmap.put("yuanxi", yuanxi);}
if(lianxidianhua==null||lianxidianhua.equals("")){pmap.put("lianxidianhua", null);}else{pmap.put("lianxidianhua", lianxidianhua);}
if(beizhu==null||beizhu.equals("")){pmap.put("beizhu", null);}else{pmap.put("beizhu", beizhu);}
int total=xiguanliyuanService.getCount(pmap);
pageBean.setTotal(total);
List<Xiguanliyuan> list=xiguanliyuanService.getByPage(pmap);
map.put("page", pageBean);
map.put("list", list);
session.setAttribute("p", 1);
return "xiguanliyuanlist";
}
@RequestMapping("deleteXiguanliyuan.do")
public String deleteXiguanliyuan(int id,HttpServletRequest request){
xiguanliyuanService.delete(id);
String url = request.getHeader("Referer");
return "redirect:"+url;
//return "redirect:xiguanliyuanList.do";
}
@RequestMapping("quchongXiguanliyuan.do")
public void quchongXiguanliyuan(Xiguanliyuan xiguanliyuan,HttpServletResponse response){
Map<String,Object> map=new HashMap<String,Object>();
map.put("yonghuming", xiguanliyuan.getYonghuming());
System.out.println("yonghuming==="+xiguanliyuan.getYonghuming());
System.out.println("yonghuming222==="+xiguanliyuanService.quchongXiguanliyuan(map));
JSONObject obj=new JSONObject();
if(xiguanliyuanService.quchongXiguanliyuan(map)!=null){
obj.put("info", "ng");
}else{
obj.put("info", "用户名可以用!");
}
response.setContentType("text/html;charset=utf-8");
PrintWriter out=null;
try {
out=response.getWriter();
out.print(obj);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}finally{
out.close();
}
}
}
结论
经过几个月的努力还坚持,学生网上请假系统终于完成了,程序功能模块能按照需求来运行,能实现多管理员的迸发使用,但是系统由于设计经验以及专业知识的局限性,在本系统的开发过程中,在一些功能方面和业务逻辑方面做得不是很完善,系统还存在一些缺陷。界面的设计从布局到外观,受限于自身的设计功底较低,没能达到自己所要设计的界面要求,另一方面,系统存在一些没有考虑的问题和模块。
在学习的过程中首次进行独立设计工作,编码过程出现了许多问题和困难,原以为正确无误的程序运行过程中不会遇到问题,但是在运行过程中也总会出现各种各样的问题,在调试过程中找不出运行出错的原因。而这些基本问题却都是一些简单的问题,例如标点符号应该是英文状态下的,却因为不好的编程习惯造成了一些中文的符号输入,经过仔细观察和老师的帮组下,还是将问题解决了。