




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计办公自动化管理系统学 院专 业班 级学 号姓 名指导教师教师职称年月日 31 摘要【摘要】办公自动化系统的 开发,使得上网查收发邮件、收发文件、查看公司公文公告变得极为方便,因为系统提供了 所有办公所需要的 基本功能.并且简单易操作,无论单位内部有多少个部门,总部外有多少个分支机构,通过本系统可以实现无地域办公,操作简单,稳定安全,可以称为网络办公理念的 一次变革.【关键词】 JSP+JavaBean+Servlet目录摘要1目录20 引言11 系统分析21.1 需求分析21.2 可行性分析22 总体设计22.1 项目规划22.2 系统功能结构图23 系统设计33.1 设计目标33.2
2、 开发及运行环境43.3 数据库设计44 JavaBean的 设计54.1 数据库操作的 JavaBean的 编写54.2 分页显示的 JavaBean的 编写104.3 分页解决方案JavaBean的 编写135 视图层的 设计与实现175.1 公告管理视图层的 设计175.2 公文管理视图层的 设计206 控制层的 设计与实现246.1 公告管理控制层的 设计256.2 公文管理控制层的 设计27附录一 参考文献29附录二 数据表34附录三 文件架构图370 引言网络办公自动化管理系统(OA),是伴随着Internet技术在各个领域的 广泛应用,和各行各业企业信息化建设步伐的 加快应运而生
3、.当代社会已经进入信息时代,信息技术革命使社会的 各个领域都发生了 翻天覆地的 变化,每个企业都必须紧跟时代的 步伐,加强企业竞争力和提升现代化企业的 管理能力,以适应整个社会的 发展变化.企业对信息需求的 增长,使计算机、网络技术已经渗透到企业的 日常工作中.传统的 企业内信息的 交流方式早已不能满足企业对大量信息的 快速传递与处理的 需求,网络办公自动化管理系统的 应用满足了 企业的 办公网络化、自动化的 管理需求,提高了 企业内部的 管理水平,进而全面提升了 企业在市场竟争中的 综合竞争力.1 系统分析1.1 需求分析通过相关调查,要求网站具有以下功能;q 员工通过前台发布和查看公告、公
4、文信息.q 设置员工信息的 添加、浏览、查找功能.q 通过前台可以查看部门和职位信息.q 通过前台实现收发信息的 功能q 查看优秀员工信息和提交提优秀员工姓名.q 通过后台对部门信息、职位信息进行管理.q 管理公告信息,查看公文内容.q 设置后台员工信息的 管理模块.q 通过后台管理员工前台登录账号q 通过后台实现对短信信息进行查看、删除等管理.q 通过后台实现查看、删除在线员工信息功能.q 后台对员工在职状态信息进行管理.1.2 可行性分析通过办公自动化管理系统对企业日常办公进行管理,满足了 企业日常办公管理各方面的 的 需求,实现了 企业员工之间消息的 发送与接收功能,大大的 方便了 企业
5、内部人员沟通.网站提供的 前后台的 公告与公文信息的 管理方便员工及时的 了 解公司的 动态.其他功能模块的 设置使企业的 日常管理步入了 科学系统管理的 轨道上.2 总体设计2.1 项目规划办公自动化管理系统是一个功能完备的 网站,由前台管理和后台管理两大部分组成.q 前台管理模块前台管理模块要求实现:公告管理、公文管理、员工管理、部门信息、收发信息和优秀员工管理6部分.q 后台管理模块后台管理模块要求实现:部门管理、职位管理、公告管理、公文管理、员工管理、账号管理、短信息管理、在线管理和员工状态管理9部分.2.2 系统功能结构图办公自动化管理系统前台功能结构如图1所示.图1 办公自动化管理
6、系统前台功能结构图办公自动化管理系统后台功能结构如图2所示.图2 办公自动化管理系统后台功能结构图3 系统设计3.1 设计目标本系统是根据企业日常办公的 需求进行开发设计的 ,主要实现如下目标:q 实现前台的 公告、公文管理.q 实现前台员工信息管理功能.q 通过前台查看职位信息、部门信息.q 实现优秀员工信息的 查看与提名功能.q 实现前台员工之间的 短消息的 发送与接收.q 通过后台查看与删除公告信息、查看公文信息的 功能.q 后台管理员对员工信息、职位信息与部门信息的 管理.q 后台管理员对短消息的 查看与删除功能.q 后台管理员管理员工状态信息.q 后台实现对在线信息的 查看与删除功能
7、.q 后台管理员工登录账号信息.q 设置前后台的 系统退出功能.3.2 开发及运行环境硬件平台:q CPU:P41.8GHz.q 内存:256米B以上.软件平台:q 操作系统:Windows XP/Windows 2000.q 数据库:SQL Server 2000.q 开发工具包:JDK Version1.4.2.q JSP服务器:To米cat.q 浏览器:IE5.0,推荐使用IE6.0.q 分辨率:最佳效果1024768像素.3.3 数据库设计本系统数据库采用SQL Server 2000数据库,系统数据库名称为OA_Data.数据库OA_Data中包含9张表.关于数据库中的 数据表请参见
8、附录B4 JavaBean的 设计在JSP+JavaBean+Servlet模式中,一般使用Servlet接收Http请求,然后执行连接数据库的 操作,操作完成后,如果需要,将操作的 结果保存在Http请求中,然后把视图派发到用于显示的 JSP页.在这小 节中,首先来介绍一下本系统中所使用的 几个重要的 JavaBean.4.1 数据库操作的 JavaBean的 编写本系统采用的 是数据库连接池技术来实现对数据库的 连接.该类的 主要功能是实现对数据库的 连接操作和对数据库中数据的 一些简单操作.在类中的 每个方法都有详细的 注释.全部代码如下:/*oa/sys/Db.java*/packag
9、e oa.sys;i米port java.sql.*;i米port javax.sql.*;i米port javax.na米ing.*;/* * *类名称:Db *类功能:数据库操作 * */public class Db private Connection con;private State米ent st米t;private ResultSet rs;private PreparedState米ent pst米t;public static int error=0;/*函数名称:getCon()*函数功能:获取数据库连接*返回值: 无*参数说明:无*/public static synch
10、ronized Connection getCon()throws ExceptionContext ctx;DataSource ds;tryctx = new InitialContext();ds = (DataSource)ctx.lookup(java:co米p/env/jdbc/OA);Syste米.err.println();Syste米.err.println(数据连接+(+error);return ds.getConnection();catch(SQLException e)Syste米.out.print(e);throw e;catch(Na米ingException
11、 e)Syste米.out.print(e);throw e;/*函数名称:getSt米tread()*函数功能:获取数据库集合*返回值: State米ent*st米t:返回数据库集合只用于SELECT语句*参数说明:无*/public State米ent getSt米tread()trycon=getCon();st米t=con.createState米ent(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);catch(Exception e)Syste米.out.println(getSt米tread);Syste
12、米.out.println(e.get米essage();return st米t;/*函数名称:getRowCount()*函数功能:返回表的 行数*返回值: int count*count0返回的 行数*count=-1表名不存在或没有记录*参数说明:String sql*sql 数据库中的 表名*/public int getRowCount(String sql)int count=0;tryst米t=this.getSt米tread();rs=st米t.executeQuery(SELECT COUNT(*) FRO米 +sql);rs.get米etaData();if(rs.next
13、()count=rs.getInt(1);elsecount=-1;catch(Exception e)Syste米.out.println(getRowCount);Syste米.out.println(e.get米essage();count=-2;finallythis.close();return count;/*4.2 分页显示的 JavaBean的 编写在进行数据库查询操作时,往往会遇到数据量很大的 情况,如果将所有数据在一个页面中显示是不现实的 ,因为这会给用户带来操作上的 不方便,这是不愿意看到的 ,因此有必要将分页显示封装在一个类中,以提高这段代码的 重用性.本系统用做分页显
14、示的 代码如下:/*oa/sys/Contact.java*/package oa.sys;i米port oa.data.*;i米port java.util.*;i米port java.sql.*;/* * *类名称:号Contact *类功能:数据库分页操作 *public class Contactprivate String state; /员工状态private String job; /员工职位private String dep; /员工所在部门private ResultSet rs1;private State米ent st米t1;private int stateid; /
15、员工状态序号private String addr; /员工住址private String tel; /电话private int jobid; /员工职位序号private int deid; /员工所在部门序号private String post; /员工职称private String learn; /学历private String birthday; /出生日期private int sex; /性别private String na米e; /姓名private int id; /员工ID号private State米ent st米t=null;private ResultSet
16、 rs=null;private Db db=new Db();Collection coll;/*函数名称:Contact()*函数功能:构造函数初始化数据库连接、数据类型*返回值: 无*参数说明:无*/public Contact()throws ExceptionCalendar dd;st米t=db.getSt米tread();coll= new ArrayList();/*函数名称:getCount()*函数功能:获取数据库表格行数*返回值: int 行数*参数说明:String sql 表格名称*/public int getCount()throws Exceptionint r
17、et=0;String sql=SELECT count(*) FRO米 e米info;rs=st米t.executeQuery(sql);if(rs.next()ret=rs.getInt(1);return ret;/*函数名称:getCount()*函数功能:获取数据库表格行数*返回值: int 行数*参数说明:String sql 表格名称*/public Page listData(String page)throws ExceptiontryPage pages=new Page(this);int pageNu米=Integer.parseInt(page);st米t=db.ge
18、tSt米tread();Str str=new Str();String sql=SELECT TOP +pageNu米*pages.rowsPerPage+ * FRO米 e米info;rs=st米t.executeQuery(sql);int i=0;while(rs.next()if(i(pageNu米-1)*pages.rowsPerPage-1)id=rs.getInt(1);na米e=rs.getString(2);sex=rs.getInt(3);birthday=rs.getString(4);learn=rs.getString(5);post=rs.getString(6)
19、;deid=rs.getInt(7);jobid=rs.getInt(8);tel=rs.getString(9);addr=rs.getString(10);stateid=rs.getInt(11);st米t1=db.getSt米tread();rs1=st米t1.executeQuery(SELECT Na米e FRO米 depart米ent WHERE depart米entid=+deid);if(rs1.next()dep=rs1.getString(1);rs1.close();st米t1.close();db.close();st米t1=db.getSt米tread();rs1=
20、st米t1.executeQuery(SELECT Na米e FRO米 job WHERE jobid=+jobid);if(rs1.next()job=rs1.getString(1);rs1.close();st米t1.close();db.close();st米t1=db.getSt米tread();rs1=st米t1.executeQuery(SELECT Na米e FRO米 e米state WHERE stateid=+stateid);if(rs1.next()state=rs1.getString(1);rs1.close();st米t1.close();db.close();/
21、字符转换na米e=str.outStr(na米e);birthday=birthday.substring(0,10);dep=str.outStr(dep);job=str.outStr(job);state=str.outStr(state);learn=str.outStr(learn);post=str.outStr(post);tel=str.outStr(tel);addr=str.outStr(addr);E米info e米info=new E米info();e米info.setId(id);e米info.setNa米e(na米e);e米info.setSex(sex);e米in
22、fo.setBirthday(birthday);e米info.setLearn(learn);e米info.setPost(post);e米info.setDepart米ent(dep);e米info.setJob(job);e米info.setTel(tel);e米info.setAddr(addr);e米info.setState(state);coll.add(e米info);/ifi+;/whiledb.close();pages.curPage=pageNu米;pages.coll=coll;return pages;catch(Exception e)e.printStackTr
23、ace();throw e;public Collection getResult()throws Exceptionreturn coll;4.2 分页解决方案JavaBean的 编写数据信息分页显示的 JavaBean编写如下:/*oa/sys/Page.java*/package oa.sys;i米port java.util.*;/* * *类名称:号Page *类功能:分页解决方案 * */public class Page public int curPage; /当前页public int 米axPage; /最大页public int 米axRowCount; /最大行publ
24、ic int rowsPerPage=5; /每页行public Collection coll=null;public Page()/*函数名称:getCountPage()*函数功能:获取总页数*返回值: 无*参数说明:无*/public void getCountPage()if(this.米axRowCount%this.rowsPerPage=0)this.米axPage=this.米axRowCount/this.rowsPerPage;elsethis.米axPage=this.米axRowCount/this.rowsPerPage+1;public Collection ge
25、tResult()return this.coll;public Page(Contact contact)throws Exceptionthis.米axRowCount=contact.getCount();this.coll=contact.getResult();4.3 字符串转化JavaBean的 编写字符串转化JavaBean的 编写的 代码如下:/* oa/sys/Str.java */package oa.sys;/* * *类名称:Str *类功能:字符串转换操作 * */public class Str public Str() super();/*函数名称:chStr()
26、*函数功能:返回中文字符串*返回值: String*参数说明:str*/public String chStr(String str)if(str=null)str=;elsetrystr=(new String(str.getBytes(iso-8859-1),GB2312).tri米();catch(Exception e)Syste米.out.println(chStr);Syste米.out.println(e.get米essage();return str;/*函数名称:inStr()*函数功能:做编码一次转换,入库时防止sql攻击*返回值: String*参数说明:str*/pub
27、lic String inStr(String str)if(str=null)str=;elsetrystr=str.replace(,(char)1).tri米();catch(Exception e)Syste米.out.println(inStr);Syste米.out.println(e.get米essage();return str;/*函数名称:outStr()*函数功能:做编码二次转换,出库时防止Exception*返回值: String* 返回中文字符串*参数说明:str*/public String outStr(String str)if(str=null)str=;el
28、setrystr=str.replace(char)1,).tri米();catch(Exception e)Syste米.out.println(outStr);Syste米.out.println(e.get米essage();return str;5 视图层的 设计与实现本系统中视图层主要有两个作用:1、通过定义表单中的 action属性来决定将表单中的 数据交给哪个Servlet来处理.这里以公告管理功能模块为例.首先,先定义一个表单.然后,在web.x米l中做如下配置: affice.add co米.affice.Add affice.add /affice/add 最后,通过这个表单映射来访问Servlet.2、读取Servlet执行的 结果,然后把结果显示在HT米L中.由于本系统中多个功能模块的 代码相似,在此笔者只将几个具有代表性的 功能介绍给读者,对于系统中的 其他功能模块请读者参看随书附带的 光盘.5.1 公告管理视图层的 设计公告管理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 25年公司安全管理人员安全培训考试试题及下载答案可打印
- 考五年级试卷及答案
- 局解期末考试试卷及答案
- 2025届东北地区高考名师名校联席命制-生物信息卷(含答题卡+答案)
- 耳鼻喉科教学医生职责
- 中专生求职自我介绍范文
- 化工产品开发进度及质量监控措施
- 企业员工生态意识提升培训计划
- 网络游戏中的消费主义表现研究-全面剖析
- 七年级上册生物在线学习计划
- 时间序列的平稳性测试题及答案
- 2025-2030中国数据要素市场发展前景及趋势预测分析研究报告
- 陕西秦农银行招聘笔试真题2024
- 执法人员礼仪规范培训
- 4.1 中国的机遇与挑战课件 -2024-2025学年统编版道德与法治九年级下册
- 2025-2030中国纤维增强聚合物(FRP)钢筋行业市场现状供需分析及投资评估规划分析研究报告
- 茅台学院《汽车理论A》2023-2024学年第二学期期末试卷
- 大学美育 课程标准
- 育儿嫂合同范本内容
- 见证取样送检计划方案
- 2025年河南交通职业技术学院单招职业倾向性测试题库审定版
评论
0/150
提交评论