一、源码特点
java servlet软件缺陷库管理系统是一套完善的java web信息管理系统 系统采用serlvet+dao+bean(mvc模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
java serlvet 软件缺陷库系统1
二、功能介绍
(1)菜单管理:对菜单信息进行添加、删除、修改和查看
(2)角色管理:对角色信息进行添加、删除、修改和查看
(3)菜单角色管理:对菜单角色信息进行添加、删除、修改和查看
(4)用户管理:对用户信息进行添加、删除、修改和查看
(5)属性管理:对属性信息进行添加、删除、修改和查看
(6)缺陷管理:对缺陷信息进行添加、删除、修改和查看
(7)流程节点管理:对流程节点信息进行添加、删除、修改和查看
(8)审批管理:对审批信息进行删除、修改和查看 通过流程配置进行审批
数据库设计
(1)菜单信息表如表5.1所示:
表5.1 菜单信息表
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
1 |
cdid |
INTEGER |
11 |
是 |
菜单编号 |
2 |
cdmc |
VARCHAR |
40 |
否 |
菜单名称 |
3 |
xh |
VARCHAR |
40 |
否 |
序号 |
4 |
lx |
VARCHAR |
40 |
否 |
类型 |
5 |
lj |
VARCHAR |
40 |
否 |
链接 |
6 |
f |
VARCHAR |
40 |
否 |
父 |
(2)角色如表5.2所示:
表5.2 角色表
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
1 |
jsid |
INTEGER |
11 |
是 |
角色编号 |
2 |
jsmc |
VARCHAR |
40 |
否 |
角色名称 |
3 |
js |
VARCHAR |
40 |
否 |
介绍 |
(3)菜单角色表如表5.3所示:
表5.3 菜单角色表
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
1 |
cdjsid |
INTEGER |
11 |
是 |
菜单角色编号 |
2 |
cd |
VARCHAR |
40 |
否 |
菜单 |
3 |
js |
VARCHAR |
40 |
否 |
角色 |
(4)用户管理表如表5.4所示:
表5.4 用户管理信息表
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
1 |
yhid |
INTEGER |
11 |
是 |
用户编号 |
2 |
yhm |
VARCHAR |
40 |
否 |
用户名 |
3 |
mm |
VARCHAR |
40 |
否 |
密码 |
4 |
xm |
VARCHAR |
40 |
否 |
姓名 |
5 |
lxdh |
VARCHAR |
40 |
否 |
联系电话 |
6 |
lxdz |
VARCHAR |
40 |
否 |
联系地址 |
7 |
js |
VARCHAR |
40 |
否 |
角色 |
(5)属性管理详情表如表5.5所示:
表5.5 属性管理详情表
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
1 |
sxid |
INTEGER |
11 |
是 |
属性编号 |
2 |
sxmc |
VARCHAR |
40 |
否 |
属性名称 |
3 |
sxz |
VARCHAR |
40 |
否 |
属性值 |
4 |
bj |
VARCHAR |
40 |
否 |
标记 |
(6)缺陷表如表5.6所示:
表5.缺陷表
序号 |
字段名称 |
数据类型 |
长度 |
主键 |
描述 |
1 |
qxid |
INTEGER |
11 |
是 |
缺陷编号 |
2 |
qxzt |
VARCHAR |
40 |
否 |
缺陷主题 |
3 |
ssxt |
VARCHAR |
40 |
否 |
所属系统 |
4 |
zxt |
VARCHAR |
40 |
否 |
子系统 |
5 |
ssxq |
VARCHAR |
40 |
否 |
所属需求 |
6 |
cshj |
VARCHAR |
40 |
否 |
测试环境 |
7 |
yxj |
VARCHAR |
40 |
否 |
优先级 |
8 |
yzdj |
VARCHAR |
40 |
否 |
严重等级 |
9 |
qxyy |
VARCHAR |
40 |
否 |
缺陷原因 |
10 |
yh |
VARCHAR |
40 |
否 |
用户 |
11 |
sj |
VARCHAR |
40 |
否 |
时间 |
12 |
zt |
VARCHAR |
40 |
否 |
状态 |
13 |
fj |
VARCHAR |
40 |
否 |
附件 |
14 |
ms |
VARCHAR |
40 |
否 |
描述 |
15 |
qxzht |
VARCHAR |
40 |
否 |
缺陷状态 |
ER图设计
代码实现
private void insertM(HttpServletRequest request, HttpServletResponse response){//缺陷添加
quexianDao dao=new quexianDao();
quexian quexian=new quexian();
quexian.setQxid((String)request.getParameter("keyid"));
quexian.setQxzt((String)request.getParameter("qxzt"));
quexian.setSsxt((String)request.getParameter("ssxt"));
quexian.setZxt((String)request.getParameter("zxt"));
quexian.setSsxq((String)request.getParameter("ssxq"));
quexian.setCshj((String)request.getParameter("cshj"));
quexian.setYxj((String)request.getParameter("yxj"));
quexian.setYzdj((String)request.getParameter("yzdj"));
quexian.setQxyy((String)request.getParameter("qxyy"));
quexian.setYh((String)request.getParameter("yh"));
quexian.setSj((String)request.getParameter("sj"));
quexian.setZt((String)request.getParameter("zt"));
quexian.setFj((String)request.getParameter("fj"));
quexian.setMs((String)request.getParameter("ms"));
quexian.setQxzht((String)request.getParameter("qxzht"));
response.setCharacterEncoding("gb2312");
try {
dao.insert(quexian);
request.setAttribute("flag", "操作成功");
request.getRequestDispatcher("quexian/quexianadd.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void ListM(HttpServletRequest request, HttpServletResponse response){//缺陷信息列表
ResultSet rs=null;
quexianDao dao = new quexianDao();
String str=(String)request.getParameter("Page");
String sql="";
response.setCharacterEncoding("gb2312");
try{
if(str==null){
str="0";
}
String qxzt=(String)request.getParameter("qxzt");
if(qxzt!=null&&!qxzt.equals("")){ //如果缺陷主题不为空 拼接sql语句
sql+=" and qxzt like '%"+qxzt+"%'";//拼接sql语句
}
String ssxt=(String)request.getParameter("ssxt");
if(ssxt!=null&&!ssxt.equals("")){ //如果所属系统不为空 拼接sql语句
sql+=" and ssxt='"+ssxt+"'";//拼接sql语句
}
String zxt=(String)request.getParameter("zxt");
if(zxt!=null&&!zxt.equals("")){ //如果子系统不为空 拼接sql语句
sql+=" and zxt='"+zxt+"'";//拼接sql语句
}
String ssxq=(String)request.getParameter("ssxq");
if(ssxq!=null&&!ssxq.equals("")){ //如果所属需求不为空 拼接sql语句
sql+=" and ssxq='"+ssxq+"'";//拼接sql语句
}
String cshj=(String)request.getParameter("cshj");
if(cshj!=null&&!cshj.equals("")){ //如果测试环境不为空 拼接sql语句
sql+=" and cshj='"+cshj+"'";//拼接sql语句
}
String yxj=(String)request.getParameter("yxj");
if(yxj!=null&&!yxj.equals("")){ //如果优先级不为空 拼接sql语句
sql+=" and yxj='"+yxj+"'";//拼接sql语句
}
String yzdj=(String)request.getParameter("yzdj");
if(yzdj!=null&&!yzdj.equals("")){ //如果严重等级不为空 拼接sql语句
sql+=" and yzdj='"+yzdj+"'";//拼接sql语句
}
String qxyy=(String)request.getParameter("qxyy");
if(qxyy!=null&&!qxyy.equals("")){ //如果缺陷原因不为空 拼接sql语句
sql+=" and qxyy='"+qxyy+"'";//拼接sql语句
}
if(request.getSession().getAttribute("yhm")!=null){ //如果用户不为空 拼接sql语句
sql+=" and yh='"+request.getSession().getAttribute("yhm").toString()+"'";//拼接sql语句
}
String sj=(String)request.getParameter("sj");
if(sj!=null&&!sj.equals("")){ //如果时间不为空 拼接sql语句
sql+=" and sj='"+sj+"'";//拼接sql语句
}
String zt=(String)request.getParameter("zt");
if(zt!=null&&!zt.equals("")){ //如果状态不为空 拼接sql语句
sql+=" and zt='"+zt+"'";//拼接sql语句
}
String fj=(String)request.getParameter("fj");
if(fj!=null&&!fj.equals("")){ //如果附件不为空 拼接sql语句
sql+=" and fj='"+fj+"'";//拼接sql语句
}
String ms=(String)request.getParameter("ms");
if(ms!=null&&!ms.equals("")){ //如果描述不为空 拼接sql语句
sql+=" and ms='"+ms+"'";//拼接sql语句
}
String qxzht=(String)request.getParameter("qxzht");
if(qxzht!=null&&!qxzht.equals("")){ //如果缺陷状态不为空 拼接sql语句
sql+=" and qxzht='"+qxzht+"'";//拼接sql语句
}
rs=dao.qlist(sql);
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("quexian/quexianlist.jsp?Page="+str).forward(request, response);
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void PListM(HttpServletRequest request, HttpServletResponse response){//测试信息列表
ResultSet rs=null;
quexianDao dao = new quexianDao();
System.out.println("alist");
String sql="";
response.setCharacterEncoding("gb2312");
try{
rs=dao.qlist(sql);
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("quexian/quexianplist.jsp").forward(request, response);
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
private void modifyIndex(HttpServletRequest request, HttpServletResponse response){//缺陷修改首页
ResultSet rs=null;
response.setCharacterEncoding("gb2312");
quexianDao dao = new quexianDao();
String keyid=(String)request.getParameter("keyid");
String sql="";
if(keyid!=null&&!keyid.equals("")){
sql+=" and qxid='"+keyid+"'";
}
try{
rs=dao.qlist(sql);
PrintWriter out = response.getWriter();
request.setAttribute("rs", rs);
request.getRequestDispatcher("quexian/quexianmodify.jsp").forward(request, response);
//response.sendRedirect("quexian/quexianmodify.jsp");
}catch(Exception e){
e.toString();
e.printStackTrace();
}
}
三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件DBO.java
2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
3、数据库文件名是jsprjqx.sql ,系统名称rjqx
4、系统首页地址:http://127.0.0.1:8080/rjqx/login.jsp
四 系统实现