企业信息管理系统概述
一、企业信息管理需求分析 1、登录页面模块
登录页面模块功能如下:
对登录页面进行设置,要求输入用户名和密码正确之后才可登录系统。
若尚未注册,则点击注册新用户(注:当用户名已存在时不能重复注册)。
2、首页面模块
首页面模块功能如下:
插入相应的图片,显示首页面的信息。
3、通讯工具模块
通讯工具模块功能如下:
1)、通讯录管理:修改联系人、删除联系人、新增联系人、
2)、短消息管理:发送消息、设置消息已读、删除消息、首页(前一页、后一页、尾页)的设置
4、个人管理模块
个人管理模块功能如下:
1)日程安排:修改日程安排、删除日程安排、新增日程安排、首页(前一页、后一页尾页)的设置
2)工作记录:修改工作记录、删除工作记录、新增工作记录、首页(前一页、后一页尾页)的设置
5、企业管理模块
企业管理模块功能如下:
1)公司公告:修改公司公告、删除公司公告、新增公司公告、首页(前一页、后一页尾页)的设置
2)工作会议::修改工作会议、删除工作会议、新增工作会议、首页(前一页、后一页尾页)的设置
6、退出模块
退出模块功能如下:
点击退出之后,系统直接跳转到登录页面,若要重新登录,则进入登录
页面输入信息之后即可登录。
二、企业信息管理系统功能结构图:
.下载可编辑.
. . . .
企业信息管理系统 登录页面首页面通讯工具个人管理企业管理退出 三、建立数据库
1、users(id,name,password,email)
列名 id name password email 数据类型 int nvarchar(50) nvarchar(50) nvarchar(50) 是否允许为空 否 是 是 是 2、address
列名 id username name sex mobile .下载可编辑.
通讯录管理短消息管理日程安排工作记录公司公告工作会议
数据类型 int varchar varchar varchar int 是否允许为空 否 否 否 否 是 . . . .
email qq company address postcode
varchar int varchar varchar int 是 是 否 否 否 3、sms
列名 id username sender message sendtime isread 数据类型 int varchar varchar varchar datetime varchar 是否允许为空 否 否 否 否 否 是 4、schedule
列名 id username year month day .下载可编辑.
数据类型 int varchar datetime datetime datetime 是否允许为空 否 否 否 否 否 . . . .
plans varchar 否 5、worklog
列名 id username year month day title description logtime 数据类型 int varchar datetime datetime datetime varchar varchar datetime 是否允许为空 否 否 否 否 否 否 是 是 6、notice
列名 id sender title [content] sendtime 数据类型 int varchar varchar varchar datetime 是否允许为空 否 否 否 否 否 7 、meeting
列名 id sendtime .下载可编辑.
数据类型 int datetime 是否允许为空 否 否 . . . .
endtime address title [content]
datetime varchar varchar varchar 否 否 否 否 静态页面设计
一、功能描述
1、登录页面模块:对登录页面进行设置,要求输入用户名和密码正确之后
才可登录系统。若尚未注册,则点击注册新用户,注册新用户时进入register.jsp页面。
2、注册模块:当用户名已存在时不能重复注册,当重复注册时,系统将会
给出提示“该用户名已经存在”。注册时,必须要输入密码。 3、首页面模块:插入相应的图片,显示首页面的信息。
4、通讯工具模块
1)、通讯录管理:修改联系人、删除联系人、新增联系人
2)、短消息管理:发送消息、设置消息已读、删除消息、首页(前一页、后一页、尾页)的设置
5、个人管理模块
1)日程安排:修改日程安排、删除日程安排、新增日程安排、首页(前一页、后一页尾页)的设置
2)工作记录:修改工作记录、删除工作记录、新增工作记录、首页(前一页、后一页尾页)的设置
6、企业管理模块
1)公司公告:修改公司公告、删除公司公告、新增公司公告、首页(前一页、后一页尾页)的设置
2)工作会议::修改工作会议、删除工作会议、新增工作会议、首页(前一页、后一页尾页)的设置
7、退出模块
点击退出之后,系统直接跳转到登录页面,若要重新登录,则进入登录
页面输入信息之后即可登录。
.下载可编辑.
. . . .
二、静态页面设计的截图 1. 登录页面——login.jsp
(1)插入一个表格(一行一列)设置表格的背景图片为指定图片; (2)插入一个表单,定义相应的按钮和输入框(用户名,密码,登录);
2、注册页面——register.jsp
(1)通过点击登录页面的“注册新用户”进入到注册页面;
(2)插入一个表单,定义相应的按钮和输入框(用户名,密码,确认密码,Email,提交注册按钮);
.下载可编辑.
. . . .
3、top.jsp
4、menu.jsp
(1)插入一个表格,设置表格的背景颜色为#EEEEEE (2)设置相应行的信息
5、foot.jsp
6、首页面——welcome.jsp
.下载可编辑.
. . . .
(1)整个页面分为几个模块:最上面的用top.jsp来实现,左边的菜单栏用menu.jsp来实现,下面的用foot.jsp来实现。
(2)欢迎的页面放在一个表格当中,对应的图片则通过放在行里来实现效果。
7、通讯录管理页面——address.jsp
(1)通过点击菜单栏上的“通讯录管理”来链接到通讯录管理的页面;
(2)整个的定义一个表格,将联系人的信息放在行和列,记录的页数则是在表单中插入表格来实现的。
(3)通过使用select实现下拉菜单;
.下载可编辑.
. . . .
8、新增联系人页面——address_add.jsp
(1)通过点击菜单栏上的“新增联系人”来链接到新增联系人的页面;
(2)插入一个表单,定义相应的按钮和输入框(姓名,性别,手机,Email,QQ号码,工作单位,地址,邮编,和提交按钮);
*以下页面类似
9、修改联系人页面——address_edit.jsp
.下载可编辑.
. . . .
登录模块
一、 新建一个包取名为dbo:
(1)、新建类DBOperation,用来和数据库创建连接 (2)、定义一个查询方法:public boolean query(String sql){} (3)、定义一个更新方法:public boolean update(String sql){} (4)、进行测试; 二、新建一个包取名为entity
(1)、新建一个实体类User.java;
(2)、定义相应的属性变量,产生get()和set()方法; 三、新建一个包取名为dao;新建一个类UserDAO.java; a、跟数据库创建连接:dbo.createConn()
b、准备SQL语句:
String
sql=\"select
*
from
users
where
username='\"+username+\"'and
password='\"+password+\"'\";
C、执行SQL语句:dbo.query(sql)
d、关闭连接:dbo.closeRs(); dbo.closeStat(); dbo.closeConn();
四、新建一个包取名为Servlet; (1)、新建一个类LoginServlet.java;
public class LoginServlet extends HttpServlet {}
(2)、添加doGet()和doPost()方法; (3)、创建会话:
HttpSession session=request.getSession();
.下载可编辑.
. . . .
session.setAttribute(\"username\", username);
五、在登录页面(login)中写脚本,设置用户名和密码不为空;
六、配置XML文件;
.下载可编辑.
. . . .
注册模块
一、 menu中获取当前使用的用户名
<%=session.getAttribute(\"username\")%>(注:表达式没有分号)
二、退出模块:
1、退出是指把当会话结束,即将页面注销掉; 2、在servlet里创建一个类LogoutServlet.java;
产生doGet()方法,如果用户名不为空则注销会话session.invalidate();否则将页面重定向到登录界面response.sendRedirect(\"login.jsp\"); 3、更改XML中的配置文件;
.下载可编辑.
. . . .
三、注册模块:
1、在dao里新建UserDAO,定义几个方法:
(1)、判断是否数据库中是否存在该用户:
public boolean isExist(String username) {}
a、跟数据库创建连接:
dbo.createConn()
b、准备SQL语句:
String sql = \"select * from users where username='\"+username+\"'\";
d、执行SQL语句:dbo.query(sql)
e、关闭连接:dbo.closeRs(); dbo.closeStat(); dbo.closeConn(); (2)、向数据库中添加用户: public boolean add(User user) {}
a、跟数据库创建连接:dbo.createConn() b
、
准
备
SQL
语
句
String
sql
=
\"insert
into
users(username,password,email)values('\"+user.getUsername()+\"','\"+user.getPassword()+\"','\"+user.getEmail()+\"')\";
c、执行SQL语句:dbo.query(sql)
d、关闭连接:dbo.closeStat(); dbo.closeConn();
2、采用Ajax对页面进行局部刷新(编写一个
.下载可编辑.
AjaxServlet);然后在登
. . . .
录页面(register.jsp)加脚本;
(1)、创建一个对象XMLHttpRequest;
(2)、发送请求函数,用open方法打开需要访问的URL;
(3)、指定要处理的东西,调用函数处理信息(function的作用:获取返回的信息);
(4)、更改XML中的配置文件;
3、在servlet里新建RegisterServlet.java,doPost();
更改XML中的配置文件;
.下载可编辑.
添加doGet()和. . . .
4、在register页面的form里添加action、method和onsubmit action=\"RegisterServlet\" method=\"post\" onsubmit=\"return validRegister(this);\" 5、修改login.jsp页面:
四、欢迎模块: 设置不能直接通过输入网址进入首页面; <% if(session.getAttribute(\"username\")==null){ response.sendRedirect(\"login.jsp\"); return; } %> 通讯录管理 一、定义一个实体类:Address.java; 定义相应的变量 (id,username,name,sex,mobile,email,qq,company,address,postcode),产生对应的get()和set()方法; 二、通讯录整个页面的显示; 1、在DAO中新建一个AdreessDAO.java类; (1)、定义一个方法用来 从数据库中查找出该用户所对应的所 .下载可编辑. . . . . 有联系人的信息; public List (3)、准备查询语句; String sql = \"select * from address where username='\" + username+ \"'\"; (4)、用循环语句进行查询; if (dbo.createConn()) { String sql = \"select * from address where username='\" + username+ \"'\"; if (dbo.query(sql)) { while (dbo.next()) { address = new Address(); try { address.setId(dbo.getRs().getInt(\"id\")); address.setUsername(username); address.setSex(dbo.getRs().getString(\"sex\")); address.setAddress(dbo.getRs().getString(\"address\")); address.setQq(dbo.getRs().getString(\"qq\")); address.setMobile(dbo.getRs().getString(\"mobile\")); address.setName(dbo.getRs().getString(\"name\")); address.setCompany(dbo.getRs().getString(\"company\")); address.setEmail(dbo.getRs().getString(\"email\")); .下载可编辑. . . . . address.setPostcode(dbo.getRs().getString(\"postcode\")); } } list.add(address); } catch (SQLException e) { } e.printStackTrace(); 2、在sevlet中新建AddressServlet.java; (1)、定义doGet()和doPost()方法; (2)、创建会话:HttpSession session=request.getSession(); (3)、如果用户名为空这页面转入登录界面(login.jsp); if(username==null){ } response.sendRedirect(\"login.jsp\"); return; (4)、否则页面转入通讯录管理的界面; (5)、当点击新增联系人时,页面跳转到新增联系人的页面 (address_add.jsp),执行添加的方法,然后将信息插入到数据库中; else if(\"add\".equals(method)){ topage=\"address_add.jsp\"; }else if(\"insert\".equals(method)){ .下载可编辑. .下载可编辑. . . . . String name=request.getParameter(\"name\"); String sex=request.getParameter(\"sex\"); String mobile=request.getParameter(\"mobile\"); String email=request.getParameter(\"email\"); String qq=request.getParameter(\"qq\"); String address=request.getParameter(\"address\"); String company=request.getParameter(\"company\"); String postcode=request.getParameter(\"postcode\"); Address addr=new Address(); addr.setUsername(username); addr.setName(name); addr.setSex(sex); addr.setEmail(email); addr.setMobile(mobile); addr.setQq(qq); addr.setAddress(address); addr.setCompany(company); addr.setPostcode(postcode); dao.add(addr); List } . . . . (6)、删除操作; else if(\"delete\".equals(method)){ } int id=Integer.parseInt(request.getParameter(\"id\")); dao.delete(id); List (7)、修改操作; else if(\"edit\".equals(method)){ int id=Integer.parseInt(request.getParameter(\"id\")); List }else if(\"update\".equals(method)){ int id=Integer.parseInt(request.getParameter(\"id\")); String name=request.getParameter(\"name\"); String sex=request.getParameter(\"sex\"); String mobile=request.getParameter(\"mobile\"); String email=request.getParameter(\"email\"); String qq=request.getParameter(\"qq\"); String address=request.getParameter(\"address\"); .下载可编辑. . . . . } String company=request.getParameter(\"company\"); String postcode=request.getParameter(\"postcode\"); Address addr=new Address(); addr.setId(id); addr.setName(name); addr.setSex(sex); addr.setEmail(email); addr.setMobile(mobile); addr.setQq(qq); addr.setAddress(address); addr.setCompany(company); addr.setPostcode(postcode); dao.update(addr); List 三、修改address.jsp页面中的内容; (1)、从数据库中获取对应联系人的信息; <% List list=(List Iterator .下载可编辑. . . . . Address address=null; int i=1; while(it.hasNext()){ address=it.next(); %> bgcolor=\"eeeeee\" <%} %> > <% i++;} %> (2)、导入相应的包; <%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"GB18030\"%> <%@ page import=\"entity.*\"%> <%@ page import=\"dao.*\"%> .下载可编辑. . . . . (3)、对页面的操作栏里的修改和删除进行设置; 五、部署XML文件; 六、测试运行; 实现分页设置 一、 定义一个实体类:Page.java; 定义相应的变量(pageSize, pageNo,totalPages,firstPageNo,previousPageNo,nexPageNo,lastPageNo,totalRecords,list),产生对应的 get()和set()方法; 二、 在AddressDAO中添加相应的方法和属性; (1)、在AdderssDAO中增加一个变量page和其对应的set和get方法 private Page public Page return page; .下载可编辑. . . . . } public void setPage(Page this.page = page; (2)、定义一个方法用于分页; public List ArrayList DBOperation db = new DBOperation(); if(db.createConn()){ String sql=\"select count(*) as totalRecords from address where username='\"+username+\"'\"; db.query(sql); if(db.next()) try { totalRecords=db.getRs().getInt(\"totalRecords\"); } catch (SQLException e) { } e.printStackTrace(); .下载可编辑. . . . . } db.closeRs(); db.closeStat(); db.closeConn(); page.setTotalRecords(totalRecords); int totalPages=totalRecords%pageSize==0?totalRecords/pageSize:totalRecords/pageSize+1; page.setTotalPages(totalPages); page.setLastPageNo(totalPages); page.setPreviousPageNo(pageNo<=1?1:pageNo-1); page.setNextPageNo(pageNo>=totalPages?totalPages:pageNo+1); String sql1=\"select top \"+pageSize*pageNo +\" id from address where username='\"+username+\"' order by id\"; String sql2=\"select top \"+pageSize*(pageNo-1) +\" id from address where username='\"+username+\"' order by id\"; String sql3=\"select * from address where id not in(\"+sql2+\") and id in(\"+sql1+\") order by id\"; Address address=null; if(db.createConn()){ db.query(sql3); while(db.next()){ .下载可编辑. . . . . } } } address=new Address(); try { address.setId(db.getRs().getInt(\"id\")); address.setUsername(db.getRs().getString(\"username\")); address.setSex(db.getRs().getString(\"sex\")); address.setName(db.getRs().getString(\"name\")); address.setMobile(db.getRs().getString(\"mobile\")); address.setEmail(db.getRs().getString(\"email\")); address.setQq(db.getRs().getString(\"qq\")); address.setCompany(db.getRs().getString(\"company\")); address.setAddress(db.getRs().getString(\"address\")); address.setPostcode(db.getRs().getString(\"postcode\")); list.add(address); } catch (SQLException e) { } e.printStackTrace(); db.closeRs(); db.closeStat(); db.closeConn(); page.setList(list); return list; .下载可编辑. . . . . } 三、 对AddressServlet进行修改,通过Servlet处理查询请求; else{ AddressDAO dao=new AddressDAO(); String pageSize=request.getParameter(\"pageSize\"); if(pageSize==null||pageSize.equals(\"\")){ } String pageNo=request.getParameter(\"pageNo\"); if(pageNo==null||pageNo.equals(\"\")){ } request.setAttribute(\"pageSize\", pageSize); request.setAttribute(\"pageNo\", pageNo); pageNo=\"1\"; pageSize=\"5\"; if(\"list\".equals(method)){ List Integer.parseInt(pageNo)); } Page request.setAttribute(\"pagebean\", pagebean); 四、 修改address.jsp页面; (1)、实现首页、前一页、后一页、尾页的超链接操作; .下载可编辑. . . . . (2)、分页的表单设计:<%=address.getName() %> <%=address.getSex() %> <%=address.getMobile() %> <%=address.getEmail() %> <%=address.getQq() %> <%=address.getCompany() %> <%=address.getAddress() %> <%=address.getPostcode() %> \">修改 \">删除