目录
0、效果展示
1、概述
本网页主要用HTM和JSP语言编写,利用JSP作为开发工具,主要实现了系统管理、装置管理、安全员管理、安全事故管理、安全法规管理、教育培训管理、危险源监控管理等功能。
炼油厂安全管理系统,管理员可以通过计算机来管理系统信息、装置信息、安全员信息、安全事故信息、安全法规信息、教育培训等、危险源监控管理等信息,以便更快捷的管理企业安全问题。
根据网页功能的要求,本网站分为以下几个功能,即划分如下图所示模块结构。
2、搭建环境
本文以实现一个化工企业安全生产管理系统为目标,从环境搭建到编码实现全过程讲述
我们使用javaweb、J2EE来构建化工企业安全生产管理系统,环境使用最新版jdk和tomcat,配合mysql数据库
开发工具使用idea(也可以使用eclipse),数据库管理工具使用Navicat Premium
开发框架使用JavaBean Servlet MVC结构;
没有使用SSH(Struts+Spring+Hibernate)或SSM(Spring+SpringMVC+MyBatis),这两个框架我们在别的项目中再介绍开发过程
在项目中会引入My97DatePicker作为前端日期时间选择工具,使用fckeditor作为富媒体编辑器(也可以使用百度的ueditor)
使用DWR(Direct Web Remoting)用于改善web页面与Java类交互,实现远程服务器端AJAX读取登录数据。
使用JSTL(Java server pages standarded tag library,即JSP标准标签库),此库是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。
3、数据表结构
表2 t_aqfg法规
字段名称 | 自动增长 | 字段大小 | 字段类型 | 默认值 | 允许空 | 说明 |
id | - | 4 | int | - | √ | 编号 |
shijian | - | 150 | varchar | - | √ | 日期 |
title | - | 536870910 | varchar | - | √ | 标题 |
jingshouren | - | 150 | varchar | - | √ | 发布人 |
beizhu | - | 536870910 | varchar | - | √ | 内容 |
del | - | 150 | varchar | - | √ | 是否删除 |
表3 t_aqpx培训
字段名称 | 自动增长 | 字段大小 | 字段类型 | 默认值 | 允许空 | 说明 |
|
id | - | 150 | varchar | - | √ | 编号 |
|
devices_id | - | 4 | int | - | √ | 装置ID |
|
shijian | - | 150 | varchar | - | √ | 日期 |
|
keshi | - | 8 | 双精度型(5) | - | √ | 课时 |
|
pxfs | - | 150 | varchar | - | √ | 培训方式 |
|
aqyname | - | 150 | varchar | - | √ | 安全员名称 |
|
beizhu | - | 150 | varchar | - | √ | 备注 |
|
del | - | 150 | varchar | - | √ | 是否删除 |
|
表4 t_aqyuan安全员
字段名称 | 自动增长 | 字段大小 | 字段类型 | 默认值 | 允许空 | 说明 |
id | - | 4 | int | - | √ | 编号 |
name | - | 150 | varchar | - | √ | 姓名 |
sex | - | 150 | varchar | - | √ | 性别 |
age | - | 150 | varchar | - | √ | 年龄 |
tel | - | 150 | varchar | - | √ | 电话 |
address | - | 150 | varchar | - | √ | 地址 |
zhiwei | - | 150 | varchar | - | √ | 职位 |
loginName | - | 150 | varchar | - | √ | 登录名 |
loginPw | - | 150 | varchar | - | √ | 密码 |
del | - | 150 | varchar | - | √ | 是否删除 |
4、后端代码示例
package com.action;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
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.aqyuan;
public class aqyuan_servlet extends HttpServlet
{
public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException
{
String type=req.getParameter("type");
if(type.endsWith("aqyuanAdd"))
{
aqyuanAdd(req, res);
}
if(type.endsWith("aqyuanEdit"))
{
aqyuanEdit(req, res);
}
if(type.endsWith("aqyuanMana"))
{
aqyuanMana(req, res);
}
if(type.endsWith("aqyuanDel"))
{
aqyuanDel(req, res);
}
if(type.endsWith("aqyuanQuanxian"))
{
aqyuanQuanxian(req, res);
}
}
public void aqyuanAdd(HttpServletRequest req,HttpServletResponse res)
{
String name=req.getParameter("name");
String sex=req.getParameter("sex");
String age=req.getParameter("age");
String tel=req.getParameter("tel");
String address=req.getParameter("address");
String zhiwei=req.getParameter("zhiwei");
String sql="insert into t_aqyuan (`name`, `sex`, `age`, `tel`, `address`, `zhiwei`, `quanxian`, `loginName`, `loginPw`, `del`) values(?,?,?,?,?,?,?,?,?,?)";
Object[] params={name,sex,age,tel,address,zhiwei,0,"","","no"};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "aqyuan?type=aqyuanMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void aqyuanEdit(HttpServletRequest req,HttpServletResponse res)
{
String name=req.getParameter("name");
String sex=req.getParameter("sex");
String age=req.getParameter("age");
String tel=req.getParameter("tel");
String address=req.getParameter("address");
String zhiwei=req.getParameter("zhiwei");
String sql="update t_aqyuan set name='"+name+"',sex='"+sex+"',age='"+age+"',tel='"+tel+"',address='"+address+"',zhiwei='"+zhiwei+"' 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", "aqyuan?type=aqyuanMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void aqyuanDel(HttpServletRequest req,HttpServletResponse res)
{
int id=Integer.parseInt(req.getParameter("id"));
String sql="update t_aqyuan set del=? where id=?";
Object[] params={"yes",id};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "aqyuan?type=aqyuanMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void aqyuanMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
String page1=req.getParameter("page");
if(page1==null){
page1="1";
}
//分页设置
int EVERYPAGENUM=10;//每页条数
int page=Integer.parseInt(page1); //传递过来的当前页
int cou = 1;//得到信息总数
int pagecount=1; //总页数
String sql1="select count(*) as cou from t_aqyuan where del='no'";
Object[] params1={};
DB mydb1=new DB();
try
{
mydb1.doPstm(sql1, params1);
ResultSet rs=mydb1.getRs();
while(rs.next())
{
cou= rs.getInt("cou");
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb1.closed();
if (cou % EVERYPAGENUM == 0) {
pagecount= cou / EVERYPAGENUM;
} else {
pagecount=cou / EVERYPAGENUM + 1;
}
req.setAttribute("EVERYPAGENUM", EVERYPAGENUM);
req.setAttribute("page", page);
req.setAttribute("cou", cou);
req.setAttribute("pagecount", pagecount);
List aqyuanList=new ArrayList();
String sql="select * from t_aqyuan where del='no'";
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
for (int i = 0; i < (page - 1) * EVERYPAGENUM; i++) {
rs.next();
}
for (int t = 0; t < EVERYPAGENUM; t++) {
if (rs.next()) {
aqyuan aqyuan=new aqyuan();
aqyuan.setId(rs.getInt("id"));
aqyuan.setName(rs.getString("name"));
aqyuan.setSex(rs.getString("sex"));
aqyuan.setAge(rs.getString("age"));
aqyuan.setTel(rs.getString("tel"));
aqyuan.setAddress(rs.getString("address"));
aqyuan.setZhiwei(rs.getString("zhiwei"));
aqyuan.setQuanxian(rs.getInt("quanxian"));
aqyuan.setLoginName(rs.getString("loginName"));
aqyuan.setLoginPw(rs.getString("loginPw"));
aqyuanList.add(aqyuan);
} else {
break; //减少空循环的时间
}
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("aqyuanList", aqyuanList);
req.getRequestDispatcher("admin/aqyuan/aqyuanMana.jsp").forward(req, res);
}
public void aqyuanQuanxian(HttpServletRequest req,HttpServletResponse res)
{
int id=Integer.parseInt(req.getParameter("id"));
int quanxian=Integer.parseInt(req.getParameter("quanxian"));
String loginName=req.getParameter("loginName");
String loginPw=req.getParameter("loginPw");
String sql="update t_aqyuan set quanxian=?,loginName=?,loginPw=? where id="+id;
Object[] params={quanxian,loginName,loginPw};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "aqyuan?type=aqyuanMana");
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>
<link rel="stylesheet" type="text/css" href="<%=path %>/css/base.css" />
<script language="javascript">
function aqyuanDel(id)
{
if(confirm('您确定删除吗?'))
{
window.location.href="<%=path %>/aqyuan?type=aqyuanDel&id="+id;
}
}
function aqyuanAdd()
{
var url="<%=path %>/admin/aqyuan/aqyuanAdd.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 %>/images/allbg.gif'>
<table width='98%' border='0'style="margin-top:8px;margin-left: 5px;">
<tr>
<td>
<input type="button" value="添加" style="width: 80px;" onclick="aqyuanAdd()" />
</td>
</tr>
</table>
<table width="98%" border="0" cellpadding="1" cellspacing="1" bgcolor="#D1DDAA" align="center" style="margin-top:8px">
<tr bgcolor="#E7E7E7">
<td height="14" colspan="6" class='title'>安全员管理 </td>
</tr>
<tr align="center" bgcolor="#FAFAF1" height="22">
<td width="10%">姓名</td>
<td width="3%">性别</td>
<td width="10%">年龄</td>
<td width="15%">联系电话</td>
<td width="10%">住址</td>
<td width="17%">选项</td>
</tr>
<c:forEach items="${requestScope.aqyuanList}" var="aqyuan">
<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
<td bgcolor="#FFFFFF" align="center">
${aqyuan.name}
</td>
<td bgcolor="#FFFFFF" align="center">
${aqyuan.sex}
</td>
<td bgcolor="#FFFFFF" align="center">
${aqyuan.age}
</td>
<td bgcolor="#FFFFFF" align="center">
${aqyuan.tel}
</td>
<td bgcolor="#FFFFFF" align="center">
${aqyuan.address}
</td>
<td bgcolor="#FFFFFF" align="center">
<form action="<%=path %>/admin/aqyuan/aqyuanEdit.jsp" name="" method="post">
<input type="button" value="删除" onclick="aqyuanDel(${aqyuan.id})"/>
<input type="hidden" name="id" value="${aqyuan.id}"/>
<input type="hidden" name="name" value="${aqyuan.name}"/>
<input type="hidden" name="sex" value="${aqyuan.sex}"/>
<input type="hidden" name="age" value="${aqyuan.age}"/>
<input type="hidden" name="tel" value="${aqyuan.tel}"/>
<input type="hidden" name="address" value="${aqyuan.address}"/>
<input type="submit" value="修改"/>
</form>
</td>
</tr>
</c:forEach>
</table>
<table width='98%' border='0'style="margin-top:8px;margin-left: 5px;">
<TR align="right">
<TD ><form action="" method="post" name="formpage">
<input type="hidden" name="pageCount" value="${requestScope.pagecount}" />
<!--//用于给上面javascript传值-->
<input type="hidden" name="page" value="${requestScope.page}" />
<!--//用于给上面javascript传值-->
<input type="hidden" name="jumpurl" value="<%=path%>/aqyuan?type=aqyuanMana&" />
<!--//用于给上面javascript传值-->
<a href="#" onClick="PageTop()"><strong>首页</strong></a>
<a href="#" onClick='PagePre()'><strong>上一页</strong></a>
共${requestScope.cou}条记录,
共计${requestScope.pagecount}页,
当前第${requestScope.page}页
<a href="#" onClick="PageNext()"><strong>下一页</strong></a>
<a href="#" onClick="PageLast()"><strong>尾页</strong></a> 第
<input name="busjump" type="text" size="3" value="${requestScope.page}" style=" width:15px"/>
页<a href="#" onClick="bjump()"><strong>跳转</strong></a>
</form>
<script type="text/javascript" src="<%=path%>/js/page.js"></script></TD>
</TR>
</table>
</body>
</html>