目录
0、效果展示
1、概述
2、搭建环境
3、数据表
4、后端代码示例
5、前端代码示例
0、效果展示
1、概述
在系统中,要求对不同的用户设置不同的权限,系统针对不同权限下的用户授予其对数据库进行操作,并限制该用户对数据库作超越权限的操作。这样使整个系统既快速、高效的为用户提供信息服务,同时又保证了系统的安全性。例如:学生以普通学生身份登陆系统,仅对学生相关的个人信息、 有查询的权限,部分模块有修改权限,以班委和班导师登陆的用户,对学生相关信息有查询和修改的权限,但同样无权对管理信息进行操作。以管理员身份登陆的用户,具有对所有的信息的查看和修改功能。
以上是对班级管理系统的总体需求分析,下面本文将就客户对各个子系统的需求作出具体的需求分析。
1.用户管理:管理员能够修改用户的信息,包括用户名、密码、所属单位、职位名称及访问权限。
2.公告:任何人都可以使用通知系统发送通知,其中只有管理员不仅能发布特定班级能查看的通知还能够发布全校都可以查看的通知,而其他用户发布的通知只有其所在的单位内部有查看权限。
3.网上投票:任何人都可以使用投票系统发起投票,其中只有管理员不仅能发布特定班级能参与的投票还能够发布全校都可以参与的投票,而其他用户发布的通知只有其所在的单位内部有参与权限。班委、班导师可以删除属于本班的投票主题、管理员能删除所有的投票主题,而学生只能参与投票。
2、搭建环境
本文以实现一个线上班级管理系统为目标,从环境搭建到编码实现全过程讲述
我们使用javaweb、J2EE来构建班级管理系统,环境使用最新版jdk和tomcat,配合mysql数据库
开发工具使用idea(也可以使用eclipse),数据库管理工具使用Navicat Premium
开发框架使用JavaBean Servlet MVC结构;
没有使用SSH(Struts+Spring+Hibernate)或SSM(Spring+SpringMVC+MyBatis),这两个框架我们在别的项目中再介绍开发过程
3、数据表
T_ADMIN管理员表
字段名称 | 自动增长 | 字段大小 | 字段类型 | 默认值 | 允许空 | 说明 |
userId(*) | √ | 4 | int | - | × | - |
userName | - | 50 | varchar | - | √ | - |
userPw | - | 50 | varchar | - | √ | - |
role | - | 50 | varchar | - | √ | - |
T_BANJI班级表
字段名称 | 自动增长 | 字段大小 | 字段类型 | 默认值 | 允许空 | 说明 |
id(*) | √ | 4 | int | - | × | - |
name | - | 50 | varchar | - | √ | - |
T_STU学生信息表
字段名称 | 自动增长 | 字段大小 | 字段类型 | 默认值 | 允许空 | 说明 |
id(*) | √ | 4 | int | - | × | - |
xuehao | - | 50 | varchar | - | √ | - |
name1 | - | 50 | varchar | - | √ | - |
banji_id | - | 4 | int | - | √ | - |
sfhx | - | 4 | int | 0 | √ | - |
ps | - | 4 | int | 0 | √ | - |
4、后端代码示例
package com.action;
import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dao.DB;
import com.orm.TAdmin;
import com.orm.Tbanji;
import com.orm.Tzhuanye;
import com.service.liuService;
public class banji_servlet extends HttpServlet
{
public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException
{
String type=req.getParameter("type");
if(type.endsWith("banjiMana"))
{
banjiMana(req, res);
}
if(type.endsWith("banjiAdd"))
{
banjiAdd(req, res);
}
if(type.endsWith("banjiDel"))
{
banjiDel(req, res);
}
if(type.endsWith("banjiEdit"))
{
banjiEdit(req, res);
}
}
public void banjiAdd(HttpServletRequest req,HttpServletResponse res)
{
String name=req.getParameter("name");
//String zhuanye_id=req.getParameter("zhuanye_id");
String sql="insert into t_banji values(?)";
Object[] params={name};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "banji?type=banjiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void banjiDel(HttpServletRequest req,HttpServletResponse res)
{
String sql="delete t_banji where id="+Integer.parseInt(req.getParameter("id"));
Object[] params={};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "banji?type=banjiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void banjiMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
List banjiList=new ArrayList();
String sql="select * from t_banji";
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
Tbanji banji=new Tbanji();
banji.setId(rs.getInt("id"));
banji.setName(rs.getString("name"));
banjiList.add(banji);
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("banjiList", banjiList);
req.getRequestDispatcher("admin/banji/banjiMana.jsp").forward(req, res);
}
public void banjiEdit(HttpServletRequest req,HttpServletResponse res)
{
String name=req.getParameter("name");
//String zhuanye_id=req.getParameter("zhuanye_id");
String sql="update t_banji set name=? where id="+Integer.parseInt(req.getParameter("id"));
Object[] params={name};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "banji?type=banjiMana");
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()
{
}
}
5、前端代码示例
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page isELIgnored="false" %>
<%
String path = request.getContextPath();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3" />
<meta http-equiv="description" content="This is my page" />
<link rel="stylesheet" type="text/css" href="<%=path %>/css/base.css" />
<script language="javascript">
function banjiDel(id)
{
if(confirm('您确定删除吗?'))
{
window.location.href="<%=path %>/banji?type=banjiDel&id="+id;
}
}
function banjiAdd()
{
var url="<%=path %>/admin/banji/banjiAdd.jsp";
//var n="";
//var w="480px";
//var h="500px";
//var s="resizable:no;help:no;status:no;scroll:yes";
//window.location.href=url;
window.location.href=url;
}
</script>
</head>
<body leftmargin="2" topmargin="2" background='<%=path %>/img/allbg.gif'>
<table width='98%' border='0'style="margin-top:8px;margin-left: 5px;">
<tr>
<td>
<img src="images/new_2.png" value="添加" style="width: 40px;" onclick="banjiAdd()" />
</td>
</tr>
</table>
<table width="98%" border="0" cellpadding="2" cellspacing="1" bgcolor="#D1DDAA" align="center" style="margin-top:8px">
<tr align="center" bgcolor="#FAFAF1" height="22">
<td width="33%">名称</td>
<td width="33%">操作</td>
</tr>
<c:forEach items="${requestScope.banjiList}" var="banji">
<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td bgcolor="#FFFFFF" align="center">
${banji.name}
</td>
<td bgcolor="#FFFFFF" align="center">
<form action="<%=path %>/admin/banji/banjiEditPre.jsp" method="post" name="form1">
<input type="submit" value="编辑"/>
<input type="hidden" name="id" value="${banji.id}"/>
<img src="images/remove.png" value="删除" onclick="banjiDel(${banji.id})"/>
</form>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>