Barefoot
“班主任管理系统”是校园一个管理软件。通过这个软件在实际工作中可以起到对班级、学生个人、班主任工作进行定量的考核,方便班主任的管理班级的工作,方便学生处考核各个班级以及班主任的工作。
本系统采用JSP和J2EE技术,可以跨平台、跨网络、统一界面;通过高度模块化结构、合理的XML文件的数据格式,方便了系统的扩展和维护。
通过本系统,可以查询学生基本情况、查询并修改班级和学生的千分制、查询班主任日常事务并且可以动态定制任务、可以通过BBS进行家长、学生和老师之间的交流、还可以动态设置权限。
本系统的使用,可以大大提高班主任以及学生处的工作效率,可以增加家长、学生老师之间的沟通。
关键词:班级管理,千分制,Java,JSP
班主任管理系统总的目的在于方便班主任对班级的管理,同时也提高了学生处对各个班级的评比和对班主任事务的评估与考核,为领导提供辅助决策支持,提高决策的科学性。建立学校数据库,在日常工作中自动生成数据,简化上报过程,提高办事效率。
班主任管理系统是学校信息系统的一个子系统,相应的系统框架图见下图:
说明:班主任管理子系统和教务处、宿管科、学生处都有数据交互。
学生基本信息表单来自教务处中的数据库。大红鹰学院的教务系统是万方系统,它所使用的数据库是ORACLE的
积分考核管理、班主任日常事务管理、用户权限设置这一模块和学生处相连
班主任事务管理、积分考核管理与宿管科相连
班主任管理系统是一个非常实用的系统,在学院里面使用它的部门主要是:学生处、宿管科和班级学生、学生家长以及相应班主任。
学生处每天对各班进行各种检查,针对不同的情况对相应班级的千分制进行增减,每月对所有班级千分制排名,并且以此作为班主任当月工作考核内容之一。每月学生处根据本系统检查班主任日常事务,这也是班主任每月考核内容之一。
宿管科管理学生寝室住宿,有权对班级成员因住宿方面的情况进行个人方面千分制的增减。每次班主任下寝室,都由宿管科登记。
班级的普通学生可以查看自己的基本信息,查看自己班级以及本人的千分制情况,可以在留言板里发布信息;班委除了拥有班级普通学生的权限以外,还可以根据班级成员的具体情况对班级成员的千分制进行相应增扣,查看其他班级成员信息;班主任可以修改班级成员的千分制,对班主任日常事务管理这一块进行相应数据录入。
学生家长可以用自己子女的用户名、密码登入系统,并且可以在留言板留言。
班主任管理系统主要工作是方便班主任的日常工作,并且对班主任工作进行定性定量考核的考核,系统使用者有:
学生处管理者:对班级千分制进行查询、修改;对班主任工作进行查询
宿管科管理者:对班级成员千分制进行增扣的录入;对班主任下寝室时间与寝室号码的录入
班主任:对班级千分制和班级成员千分制的录入、查询、修改;对班级成员信息的查询;对班主任日常事务的相关录入;留言板上留言
班委:对班级成员千分制的录入;对班级千分制的查询;留言板上留言
普通学生、学生家长:对本人或子女千分制的查询,班级千分制的查询,留言板留言
班主任管理系统分为学生基本信息管理、积分考核管理、班主任日常事务管理、用户权限设置管理、登入登出管理和消息公布留言板六个模块。
学生基本信息管理:这个模块中的数据是教务处的方正教务系统中的数据,在我们这个班主任管理系统中没有修改权限,但是可以供班委、班主任、学生处查询
积分考核管理:这个模块是我们这个系统的一个重点模块,班主任定性定量考核班委、学生处考核班主任、班级优劣排名都是在这个模块进行
班主任日常事务管理:这个模块是考核班主任所有任务完成与否的一个模块,通过这个模块可以督促班主任和学生、学生家长之间的联系;班主任可以通过这个模块了解自己的工作进程;同时,这个模块也是学生处对班主任工作考核的依据之一。这个模块只能班主任和学生处可以看到
用户权限设置:可以设置用户的权限,分为:只读、增加和修改权限。只读权限权限最低,除了查看之外没有任何别的权限。增加权限可以输入数据,比如班级和个人千分制的输入,但是不能进行修改。修改权限权限最高,除了读写外,还可以修改数据
登入登出管理:形成一个日志文件,从该模块可以知道进入该模块的人和时间
消息公布留言板模块:这个模块实际上是一个班级的BBS,所有同学都可以在上面留言,留言上面的名字显示是登入班主任管理系统的名字,可以规范留言。班级有什么事情,及时在这里发布。学生有什么意见或建议,又不愿意和老师沟通的,可以在这里发表。同时,学生家长也可以通过这个模块知道班级或学校动态,并且可以发表言论。这个模块是学生、家长和老师的一个沟通平台
班主任管理系统的实现是在我们毕业实践小组的共同努力下完成的,我所作的工作是:
管理及协助小组成员如期的完成实践项目。为此在首先的几天中完成了人员的分工调度,并对整个系统做初步的分析,以搭建出初步的框架,好为以后的项目规划奠定一定的基础。
为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,因此我编写了一份项目计划书,把对于在项目生命周期内的工作任务范围、各项工作的任务分解等内容做出的安排以书面的方式,作为项目团队成员以及项目干系人之间的共识与约定,项目生命周期内的所有项目活动的行动基础,项目团队开展和检查项目工作的依据。
在下一个阶段中主要将实训的项目详细的从整体到部分,从横面到切面详细的通过OO思想分析了一下,编写出了项目详细设计书,以将各个模块的需求及如何实现手段及方法作出了详细的设计说明。
与此同时数据库设计方面及界面设计方面的工作也随之同步进行。
相应的登录界面图见下图:
登录功能应用是表现:一个用户通过浏览器访问一个页面。Web应用展现一个登陆页面要求用户输入有效的验证信息。用户输入了用户名和密码。此时我们假设用户提供的身份验证信息是正确的,经过了验证过程,Web应用允许用户浏览他有权访问的区域。用户想退出时,点击退出按钮,Web应用要求用户确认他是否则真的需要退出,如果用户确定退出,Session结束,Web应用重新定位到登陆页面。用户可以放心的离开而不用担心他的信息会泄露。如下是相关演示业务逻辑代码:
//...
String action = request.getParameter("action");
// 登陆
if (action.equals("login")) {
logIn(request, response);
}
// 登出
if (action.equals("logout")) {
logOut(request, response);
}
private void logIn(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
String type = getString(request.getParameter("type"));
String username = getString(request.getParameter("username"));
String password = getString(request.getParameter("password"));
session.setAttribute("name", rs1.getString(1));//存放用户姓名
session.setAttribute("class", rs1.getString(2));//存放用户所属班级
session.setAttribute("type", rs1.getString(3));//存放用户类型
}
private void logOut(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
session = request.getSession();
session.invalidate();
response.sendRedirect("Templates/index.jsp");
}
//...
通过示例程序,阐述了在一个Web应用中实现这一功能。
用户登录是分类型登录的,不同的用户类型拥有不同的权限,对系统有不同的操作结果。
具体权限如下:
验证模块 | 控制模块 | 调用模块 | 插入模块 | |
---|---|---|---|---|
用户登录 | √ | |||
日志管理 | √ | √ | ||
事物管理 | √ | |||
权限管理 | √ | |||
学生信息查询 | √ | |||
学生信息添加 | √ | √ | ||
学生信息修改 | √ | |||
学生信息删除 | √ | |||
数据修改子模块 | 数据删除子模块 | 数据查询子模块 | 数据反馈模块 | |
用户登录 | ||||
日志管理 | √ | √ | ||
事物管理 | √ | √ | ||
权限管理 | √ | √ | ||
学生信息查询 | √ | √ | ||
学生信息添加 | √ | |||
学生信息修改 | √ | |||
学生信息删除 | √ | √ |
若非认证用户以非法用户名登录不同类别用户,则生成相应错误信息, 相应的错误信息图见下图:
登入系统过程后所产生的系统显示也有所不同,按照默认系统登入类别分为:教师,班委,学生3种类型。相应的登陆信息图如下:
安全认证机制普遍采用的方法是从form中获得用户输入的认证信息,然后到LDAP (lightweight directory access protocol)或关系数据库的安全域中进行认证。如果用户提供的认证信息是有效的,登陆动作往HttpSession对象中注入某个对象。HttpSession存在着注入的对象则表示用户已经登陆。
演示相关代码如下:
//...
private void logIn(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
...
HttpSession session = request.getSession();//创建SESSION对象
String type = getString(request.getParameter("type"));
String username = getString(request.getParameter("username"));
String password = getString(request.getParameter("password"));
JFBean jf = new JFBean();
//桥接
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException en) {
en.printStackTrace();
}
try {
con = DriverManager.getConnection("jdbc:odbc:bysj", "sa", "");
sql = con.createStatement();
// 教师登陆
if (type.equals("teacher")) {
...
session.setAttribute("islog", "yes");
ResultSet rs1 = sql.executeQuery(condition1);
rs1.next();
session.setAttribute("name", rs1.getString(1));
session.setAttribute("class", rs1.getString(2));
session.setAttribute("type", rs1.getString(3));
response.sendRedirect("Templates/index.jsp");
} else {
session.setAttribute("error", "用户名或密码错误,请重新输入!");
response.sendRedirect("Templates/index.jsp");
}
}
// 学生登陆
if (type.equals("student")) {
...
session.setAttribute("islog", "yes");
ResultSet rs1 = sql.executeQuery(condition1);
rs1.next();
session.setAttribute("name", rs1.getString(1));
session.setAttribute("class", rs1.getString(2));
session.setAttribute("type", rs1.getString(3));
response.sendRedirect("Templates/index.jsp");
} else {
session.setAttribute("error", "用户名或密码错误,请重新输入!");
response.sendRedirect("Templates/index.jsp");
}
}
// 班委登陆
if (type.equals("monitor")) {
...
session.setAttribute("islog", "yes");
ResultSet rs1 = sql.executeQuery(condition1);
rs1.next();
session.setAttribute("name", rs1.getString(1));
session.setAttribute("class", rs1.getString(2));
session.setAttribute("type", rs1.getString(3));
response.sendRedirect("Templates/index.jsp");
} else {
session.setAttribute("error", "用户名或密码错误,请重新输入!");
response.sendRedirect("Templates/index.jsp");
}
}
//...
退出动作就包含了简单的删除用户名以及对用户的HttpSession对象调用invalidate()方法。清单2是从servlet中节选的一段代码以此阐述退出动作:
Listing 2
//...
session = request.getSession();
session.invalidate();
response.sendRedirect("Templates/index.jsp");
//...
相应的日志管理界面图见下图:
系统会保存每个用户的登录记录,这些信息包括这个用户的名字、登录起始结束时间以及从何处登录入系统的等等。它们被保存到数据库文件的表中。
Rzjl表中保存了所有的登录、退出信息,包括登录时间和类型,这个文件一般只有login程序使用,通过用户的UID,来在日志文件中查找相应记录,然后报告其最后一次登出时间和终端tty。然后, login程序就使用新的记录更新这个文件。因此随着系统正常运行时间的增加,它的大小也会越来越大,增加的速度依赖于系统用户登录次数。因此可以利用这个日志用来查看用户的登录记录。
相关代码如下:
//存入日志
String logid = getString(request.getParameter("username"));// 登入ID
String logname = (String) session.getAttribute("name");// 登入姓名
Date time = new Date();
time.getTime();
String logtime = time.toString().substring(4, 20);// 登入时间
String condition2 = "insert into rzgl (rid,rname,intime) values ('"+ logid+ "'"+","+ "'"+ logname+ "'"+ ","+ "'" + logtime + "')";
jf.execUpdate(condition2);
//…
相应的留言板界面图见下图:
留言板是一种电子便签管理系统,用CGI或其它脚本语言编写的网络应用程序。在网络用户交流中有很大的作用,别人可以将他的资料和要求等保留在一个页面上,以供其他人观看。留言板可以提供完备的信息发布功能,有助于客户收集网站的反馈信息,是客户通过网络收集信息的有力工具。
相关代码演示:
//...
public class servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
String action = request.getParameter("action");
// 留言
if (action.equals("message")) {
message(request, response);
}
private void message(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
JFBean jf = new JFBean();
String s1 = (String) session.getAttribute("name");// 留言人名字
String s2 = getString(request.getParameter("textarea"));// 留言内容
Date date = new Date();
date.getTime();
String a = date.toString();
String s3 = a.substring(4, 20);// 留言时间
String s = "'" + s3 + "'" + "," + "'" + s2 + "'" + "," + "'" + s1 + "'";
String condition = "insert into lyb (ltime,lcontent,lid) values " + "("
+ s + ")";
try {
jf.execUpdate(condition);
} catch (Exception e) {
e.printStackTrace();
}
response.sendRedirect("Templates/message.jsp");
}
1 林上杰.林康司.JSP 2.0技术手册.电子工业出版社
2 飞思科技产品研发.JSP 应用开发详解(第二版).电子工业出版社
3 Marty Hall,Larry Brown.Servlet与JSP核心编程(第2版).清华大学出版社
4 耿祥义.张跃平.JSP实用教程.清华大学出版社
keyboard_arrow_left上一篇 : 基于JAVA EE和SQL Server 2005的停车场管理系统 基于Qt实现的P2P聊天程序 : 下一篇keyboard_arrow_right