数据库设计
概要说明
系统数据库db_lxgl中含有7张数据表,学生信息表t_xuesheng、图书借阅表t_jieyue、宿舍钥匙表t_sushe、欠费信息表t_qianfei、确认信息表t_queren、人员信息表t_user、管理员信息表t_admin。
4.1.2 数据表的结构
(1)t_xuesheng(学生信息表)
学生信息表主要用于保存离校的学生信息,如学号、姓名、所在班级等
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
xuehao varchar 50 否 学号
loginpw varchar 50 否 登录密码
xingming varchar 50 否 姓名
xingbie varchar 50 否 性别
ruxue varchar 50 否 入学日期
shenfenzheng varchar 50 否 身份证号
yuanxi varchar 50 否 院系
lianxi varchar 50 否 联系电话
riqi varchar 50 否 添加日期
zt_jwc int 4 否 教务处离校状态
zt_fdy int 4 否 辅导员离校状态
zt_tsg int 4 否 图书馆离校状态
zt_sgc int 4 否 宿管处离校状态
zt_cwc int 4 否 财务处离校状态
zt_xbgs int 4 否 系办公室离校状态
zt_xuesheng int 4 否 学生离校状态
(2)t_jieyue(图书借阅表)
图书借阅表主要用于保存未归还的图书借阅信息,如学生信息、借书证号、图书名称、借书时间
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
xuesheng_id int 4 否 学生信息
zhenghao varchar 50 否 借书证号
mingcheng varchar 50 否 图书名称
shijian varchar 50 否 借阅时间
(3)t_sushe(宿舍钥匙表)
宿舍钥匙表主要用于保存未归还的宿舍钥匙信息,如学生信息、宿舍号、钥匙数量
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
xuesheng_id int 4 否 学生信息
sushe varchar 50 否 宿舍号
shuliang varchar 50 否 钥匙数量
(4)t_qianfei(欠费信息表)
欠费信息表主要用于保存学生的欠费信息,如欠费学生信息、欠费类型、金额、欠费时间等
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
xuesheng_id int 4 否 学生信息
leixiong varchar 50 否 欠费类型
jine varchar 50 否 欠费金额
shijian varchar 50 否 欠费时间
(5)t_user(人员信息表)
人员信息表主要用于保存各流程审批人员信息,如登录名、密码、人员角色等
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
loginname varchar 50 否 账号
loginpw varchar 50 否 密码
xingming varchar 50 否 姓名
zhiwu varchar 50 否 职务
(6)t_queren(确认信息表)
确认信息表主要用于保存各流程人员确认信息,包括学生信息、审批人信息等
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
xuesheng_id int 4 否 学生信息
user_id int 4 否 审批人
shijian varchar 50 否 确认时间
lx int 4 否 类型
(7)t_admin(管理员信息表)
管理员信息表主要用于保存管理员的基本信息
字段名 数据类型 长度 主键否 描述
id int 4 是 自动编号
userName varchar 50 否 登录账号
userPw varchar 50 否 登录密码
系统实现模块代码
登录功能实现
由于后台是维护整个系统的,所以必须先要登录系统,才能进入系统进行相关的管理操作。进入后台管理页面的程序窗口,要求用户输入正确的用户名、密码、人员身份,二者缺一不可,通过后台登录入口进入后台登录模块,后台登录模块主要用于验证管理员的身份和密码。
判断用户身份的相应代码:
public String login(String userName,String userPw,int userType)
{
String result="no";
System.out.println(userName+"..."+userPw+"...."+userType);
if(userType==0)//系统管理员登陆
{
String sql="select * from t_admin where userName=? and userPw=?";
Object[] params={userName,userPw};
DB mydb=new DB();
mydb.doPstm(sql, params);
try
{
ResultSet rs=mydb.getRs();
boolean mark=(rs==null||!rs.next()?false:true);
if(mark==false)
{
result="no";
}
else
{
result="yes";
TAdmin admin=new TAdmin();
admin.setUserId(rs.getInt("userId"));
admin.setUserName(rs.getString("userName"));
admin.setUserPw(rs.getString("userPw"));
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
}
rs.close();
}
catch (SQLException e)
{
System.out.println("登录失败!");
e.printStackTrace();
}
finally
{
mydb.closed();
}
}
else if(userType==7)//学生登陆
{
String sql="select * from t_xuesheng where xuehao=? and loginpw=?";
Object[] params={userName,userPw};
DB mydb=new DB();
mydb.doPstm(sql, params);
try
{
ResultSet rs=mydb.getRs();
boolean mark=(rs==null||!rs.next()?false:true);
if(mark==false)
{
result="no";
}
else
{
result="yes";
TXuesheng xuesheng=new TXuesheng();
xuesheng.setId(rs.getInt("id"));
xuesheng.setXuehao(rs.getString("xuehao"));
xuesheng.setLoginpw(rs.getString("loginpw"));
xuesheng.setXingming(rs.getString("xingming"));
xuesheng.setXingbie(rs.getString("xingbie"));
xuesheng.setRuxue(rs.getString("ruxue"));
xuesheng.setShenfenzheng(rs.getString("shenfenzheng"));
xuesheng.setYuanxi(rs.getString("yuanxi"));
xuesheng.setLianxi(rs.getString("lianxi"));
xuesheng.setRiqi(rs.getString("riqi"));
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
session.setAttribute("userType", 7);
session.setAttribute("user", xuesheng);
}
rs.close();
}
catch (SQLException e)
{
System.out.println("登录失败!");
e.printStackTrace();
}
finally
{
mydb.closed();
}
}
else
{
String sql="select * from t_user where loginname=? and loginpw=? and zhiwu=? and del='no'";
Object[] params={userName,userPw,userType};
DB mydb=new DB();
mydb.doPstm(sql, params);
try
{
ResultSet rs=mydb.getRs();
boolean mark=(rs==null||!rs.next()?false:true);
if(mark==false)
{
result="no";
}
else
{
result="yes";
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"));
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
session.setAttribute("userType", userType);
session.setAttribute("user", user);
}
rs.close();
}
catch (SQLException e)
{
System.out.println("登录失败!");
e.printStackTrace();
}
finally
{
mydb.closed();
}
}
return result;
}
管理员模块设计
人员信息管理
本模块实现对人员信息的管理操作,包括人员信息的添加、删除操作。
点击人员信息管理菜单,进入人员信息管理页面,该页面通过列表列出已添加的人员信息,包括名称。点击列表的删除按钮,实现人员信息的删除操作。
点击添加按钮,进入人员信息添加页面,输入符合条件的人员信息,完成人员的添加操作。
该模块的主要功能user_servlet类实现的,该类的主要功能是与数据库交互,查询或保存人员信息,并通过request跳转,打开相应的jsp页面。主要代码是:
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);
}
private String getZwmc(int zhiwu)
{
String result = "";
switch(zhiwu)
{
case 1:
result = "教务处";
break;
case 2:
result = "辅导员";
break;
case 3:
result = "图书馆";
break;
case 4:
result = "宿管处";
break;
case 5:
result = "财务处";
break;
case 6:
result = "系办公室";
break;
}
return result;
}
教务处模块设计
离校学生添加
本模块实现对离校学生信息的添加操作。
点击离校学生添加菜单,进入离校学生添加页面。离校学生添加通过excel方式添加,点击上传,将保存的离校学生上传到系统,点击提交按钮,实现离校学生的批量添加操作。
该模块的主要功能xuesheng_servlet类实现的,该类的主要功能是与数据库交互,保存学生信息,并通过request跳转,打开相应的jsp页面。主要代码是:
public void xueshengAdd(HttpServletRequest req,HttpServletResponse res)
{
String fujian = req.getParameter("fujian");
String strRealPath = this.getServletContext().getRealPath("/");
String uploadFile = strRealPath+"/"+fujian;
try{
DB mydb=new DB();
XlsTools tool = new XlsTools();
tool.read(uploadFile);
int rowCount = tool.getRowCount();
String[] ssTemp = null;
for(int i=1;i<rowCount;i++){
ssTemp = tool.readLine(i);
String xuehao = ssTemp[0];
String loginpw = "0";
String xingming = ssTemp[1];
String xingbie = ssTemp[2];
String ruxue = ssTemp[3];
String shenfenzheng = ssTemp[4];
String yuanxi = ssTemp[5];
String lianxi = ssTemp[6];
String riqi = DateUtils.formatDate2Str(new Date(), "yyyy-MM-dd");
String sql = "insert into t_xuesheng (xuehao,loginpw,xingming,xingbie,ruxue,shenfenzheng,yuanxi,lianxi," +
"riqi,zt_jwc,zt_fdy,zt_tsg,zt_sgc,zt_cwc,zt_xbgs,zt_xuesheng) values (?,?,?,?,?,?,?,?,?,0,0," +
"0,0,0,0,0)";
Object[] params={xuehao,loginpw,xingming,xingbie,shenfenzheng,ruxue,yuanxi,lianxi,riqi};
mydb.doPstm(sql, params);
mydb.closed();
}
}catch(Exception e)
{
e.printStackTrace();
}
req.setAttribute("message", "操作成功");
req.setAttribute("path", "jwc?type=xueshengList");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
离校学生确认
本模块实现对需要教务处离校确认的学生的确认操作。
点击离校学生确认菜单,进入离校学生确认管理页面,该页面通过列表列出已需要教务处确认的学生信息,包括学生姓名、入学日期、身份证号、所在院系等。点击离校确认按钮,实现教务处离校确认操作。
该模块的主要功能jwc_servlet类实现的,该类的主要功能是与数据库交互,查询或保存离校流程,并通过request跳转,打开相应的jsp页面。主要代码是:
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);
}
辅导员模块设计
离校学生确认
本模块实现对需要辅导员离校确认的学生的确认操作。
点击离校学生确认菜单,进入离校学生确认管理页面,该页面通过列表列出已需要辅导员确认的学生信息,包括学生姓名、入学日期、身份证号、所在院系等。点击离校确认按钮,实现辅导员离校确认操作。
该模块的主要功能fdy_servlet类实现的,该类的主要功能是与数据库交互,查询或保存离校流程,并通过request跳转,打开相应的jsp页面。主要代码是:
public void fdytj(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/fdy/fdytj.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_fdy=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_fdy=0";
GetListService gl = new GetListService();
req.setAttribute("xueshengList", gl.getXueshengList(sql));
req.getRequestDispatcher("admin/fdy/xueshengList.jsp").forward(req, res);
}
public void lxztList(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select * from t_xuesheng";
GetListService gl = new GetListService();
req.setAttribute("xueshengList", gl.getXueshengList(sql));
req.getRequestDispatcher("admin/fdy/lxztList.jsp").forward(req, res);
}
图书馆模块设计
图书借阅管理
本模块实现对图书借阅信息的管理操作,包括图书借阅信息的添加、删除操作。
点击图书借阅信息管理菜单,进入图书借阅信息管理页面,该页面通过列表列出已添加的图书借阅信息,包括借书证号、图书名称。
点击添加按钮,进入图书借阅信息添加页面,输入符合条件的图书借阅信息,完成图书借阅的添加操作。
该模块的主要功能tsg_servlet类实现的,该类的主要功能是与数据库交互,查询或保存图书借阅信息,并通过request跳转,打开相应的jsp页面。主要代码是:
public void jieyueAdd(HttpServletRequest req,HttpServletResponse res)
{
String xuesheng_id = req.getParameter("xuesheng_id");
String zhenghao = req.getParameter("zhenghao");
String mingcheng = req.getParameter("mingcheng");
String shijian = req.getParameter("shijian");
DB mydb=new DB();
String sql="insert into t_jieyue (xuesheng_id,zhenghao,mingcheng,shijian) " +
"values(?,?,?,?)";
Object[] params={xuesheng_id,zhenghao,mingcheng,shijian};
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "tsg?type=jieyue_tsg");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void jieyue_tsg(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select ta.*,tb.xuehao,tb.xingming from t_jieyue ta,t_xuesheng tb where ta.xuesheng_id=tb.id";
req.setAttribute("jieyueList", getJieyueList(sql));
req.getRequestDispatcher("admin/tsg/jieyueList.jsp").forward(req, res);
}
public void jieyue_xuesheng(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
TXuesheng logXs = (TXuesheng)req.getSession().getAttribute("user");
int xuesheng_id = logXs.getId();
String sql="select ta.*,tb.xuehao,tb.xingming from t_jieyue ta,t_xuesheng tb " +
"where ta.xuesheng_id=tb.id and tb.id="+xuesheng_id;
req.setAttribute("jieyueList", getJieyueList(sql));
req.getRequestDispatcher("admin/tsg/jieyueList.jsp").forward(req, res);
}
离校学生确认
本模块实现对需要图书馆离校确认的学生的确认操作。
点击离校学生确认菜单,进入离校学生确认管理页面,该页面通过列表列出已需要图书馆确认的学生信息,包括学生姓名、入学日期、身份证号、所在院系等。点击离校确认按钮,实现图书馆离校确认操作。
该模块的主要功能tsg_servlet类实现的,该类的主要功能是与数据库交互,查询或保存离校流程,并通过request跳转,打开相应的jsp页面。主要代码是:
public void xueshengList(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select * from t_xuesheng where zt_tsg=0";
GetListService gl = new GetListService();
req.setAttribute("xueshengList", gl.getXueshengList(sql));
req.getRequestDispatcher("admin/tsg/xueshengList.jsp").forward(req, res);
}
public void tsgtj(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_tsg=1 where id=?";
Object[] params1={xuesheng_id};
mydb.doPstm(sql, params1);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "tsg?type=tsgtj");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
图书馆模块设计
宿舍钥匙管理
本模块实现对宿舍钥匙信息的管理操作,包括宿舍钥匙信息的添加、删除操作。
点击宿舍钥匙信息管理菜单,进入宿舍钥匙信息管理页面,该页面通过列表列出已添加的宿舍钥匙信息,包括宿舍号、钥匙数量。
点击添加按钮,进入宿舍钥匙信息添加页面,输入符合条件的宿舍钥匙信息,完成宿舍钥匙的添加操作。
该模块的主要功能sgc_servlet类实现的,该类的主要功能是与数据库交互,查询或保存宿舍钥匙信息,并通过request跳转,打开相应的jsp页面。主要代码是:
public void susheAdd(HttpServletRequest req,HttpServletResponse res)
{
String xuesheng_id = req.getParameter("xuesheng_id");
String sushe = req.getParameter("sushe");
String shuliang = req.getParameter("shuliang");
DB mydb=new DB();
String sql="insert into t_sushe (xuesheng_id,sushe,shuliang) " +
"values(?,?,?)";
Object[] params={xuesheng_id,sushe,shuliang};
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "sgc?type=sushe_sgc");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void sushe_sgc(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select ta.*,tb.xuehao,tb.xingming from t_sushe ta,t_xuesheng tb where ta.xuesheng_id=tb.id";
req.setAttribute("susheList", getSusheList(sql));
req.getRequestDispatcher("admin/sgc/susheList.jsp").forward(req, res);
}
public void sushe_xuesheng(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
TXuesheng logXs = (TXuesheng)req.getSession().getAttribute("user");
int xuesheng_id = logXs.getId();
String sql="select ta.*,tb.xuehao,tb.xingming from t_sushe ta,t_xuesheng tb " +
"where ta.xuesheng_id=tb.id and tb.id="+xuesheng_id;
req.setAttribute("susheList", getSusheList(sql));
req.getRequestDispatcher("admin/sgc/susheList.jsp").forward(req, res);
}
离校学生确认
本模块实现对需要宿管处离校确认的学生的确认操作。
点击离校学生确认菜单,进入离校学生确认管理页面,该页面通过列表列出已需要宿管处确认的学生信息,包括学生姓名、入学日期、身份证号、所在院系等。点击离校确认按钮,实现宿管处离校确认操作。
该模块的主要功能tsg_servlet类实现的,该类的主要功能是与数据库交互,查询或保存离校流程,并通过request跳转,打开相应的jsp页面。主要代码是:
public void xueshengList(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select * from t_xuesheng where zt_sgc=0";
GetListService gl = new GetListService();
req.setAttribute("xueshengList", gl.getXueshengList(sql));
req.getRequestDispatcher("admin/sgc/xueshengList.jsp").forward(req, res);
}
public void sgctj(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/sgc/sgctj.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_sgc=1 where id=?";
Object[] params1={xuesheng_id};
mydb.doPstm(sql, params1);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "sgc?type=sgctj");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
财务处模块设计
欠费信息管理
本模块实现对学生欠费信息的管理操作,包括学生欠费信息的添加、删除操作。
点击学生欠费信息管理菜单,进入学生欠费信息管理页面,该页面通过列表列出已添加的学生欠费信息,包括欠费类型、金额。
点击添加按钮,进入学生欠费信息添加页面,输入符合条件的学生欠费信息,完成学生欠费信息的添加操作。
该模块的主要功能cwc_servlet类实现的,该类的主要功能是与数据库交互,查询或保存欠费信息信息,并通过request跳转,打开相应的jsp页面。主要代码是:
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);
}
public void qianfei_cwc(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String sql="select ta.*,tb.xuehao,tb.xingming from t_qianfei ta,t_xuesheng tb where ta.xuesheng_id=tb.id";
req.setAttribute("qianfeiList", getQianfeiList(sql));
req.getRequestDispatcher("admin/cwc/qianfeiList.jsp").forward(req, res);
}
public void qianfei_xuesheng(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
TXuesheng logXs = (TXuesheng)req.getSession().getAttribute("user");
int xuesheng_id = logXs.getId();
String sql="select ta.*,tb.xuehao,tb.xingming from t_qianfei ta,t_xuesheng tb " +
"where ta.xuesheng_id=tb.id and tb.id="+xuesheng_id;
req.setAttribute("qianfeiList", getQianfeiList(sql));
req.getRequestDispatcher("admin/cwc/qianfeiList.jsp").forward(req, res);
}
离校学生确认
本模块实现对需要财务处离校确认的学生的确认操作。
点击离校学生确认菜单,进入离校学生确认管理页面,该页面通过列表列出已需要财务处确认的学生信息,包括学生姓名、入学日期、身份证号、所在院系等。点击离校确认按钮,实现财务处离校确认操作。
该模块的主要功能cwc_servlet类实现的,该类的主要功能是与数据库交互,查询或保存离校流程,并通过request跳转,打开相应的jsp页面。主要代码是:
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);
}
退出后台管理
退出后台管理模块主要用于退出后台管理系统。当管理员退出后台管理系统之后,再单击【退出】按钮时,虽还在后台中,但已不能进行任何操作;单击其他功能模块时,将弹出后台登录窗口,要求用户输入正确的用户名、密码以及验证码。
系统测试
系统测试是系统开发过程的重要组成部分,是用来确认一个系统的品质或性能是否符合开发之前所提出的一些要求。系统测试就是在系统投入运行前,对系统需求分析、设计规格说明和编码的最终复审,是系统质量保证的关键步骤。系统测试是为了发现错误而执行程序的过程。
测试方法
测试的方法可分三种:传统的测试方法、功能验证、系统测试。
传统的测试方法包括某种形式的简单单元测试,通常由开发人员执行。设计这些测试需要了解系统的内部知识,并且这些测试几乎总是针对产品的非常小的、特定的部分。这些类型的测试非常适合与其他代码组件极少交互,甚至没有交互的简单部分。
功能验证也是一种测试过程,在这个过程中,对产品源代码了解有限的设计者进行测试以确认产品或服务的核心功能。设计这种测试是为了证明这个核心功能符合某个规范。举个例子,登录时输入的邮箱错误时是不是有提示?如果测试失败,通常就意味着检测到了系统的一个基本问题。这种测试也是适合简单的 Web 服务,使您可以检查服务是否能够正确执行它的各个功能。
系统测试通常是在功能验证阶段完成,验证了核心功能后进行。它倾向于把整个系统作为一个整体来查找问题。弄清Web服务作为系统的一部分怎样运作,以及Web服务相互之间如何交互。由于系统测试是在开发生命周期快结束时才进行,所以通常不能给它分配足够的时间来完成。系统测试阶段经常被忽略,并且一些通常都可以发现的、少见的错误都不能被检测到。即使发现了这种错误,这时也来不及确定错误的原因并设法修复它们了。因此,在查找代码错误时,必需把系统测试应用设计得尽可能高效。
系统测试结果
在系统开发完成后,对系统进行了测试,情况如下:
(1) 各功能模块都可以正常进行,基本实现了系统设计时的各项功能要求;
(2) 界面简洁,操作简单,系统使用方便;