鉴于大家对JSP,NET,JAVA类别十分关注,我们编辑小组在此为大家搜集整理了“JSP办公自动化管理系统|OA系统|在线办公网站的设计与实现”一文,供大家参考学习
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
【摘要】 办公自动化系统的开发,使得上网查收发邮件、收发文件、查看公司公文公告变得极为方便,因为系统提供了所有办公所需要的基本功能。并且简单易操作,无论单位内部有多少个部门,总部外有多少个分支机构,通过本系统可以实现无地域办公,操作简单,稳定安全,可以称为网络办公理念的一次变革。 【关键词】 JSP+JavaBean+Servlet
1 系统分析 1.1 需求分析 通过相关调查,要求网站具有以下功能; q 员工通过前台发布和查看公告、公文信息。 q 设置员工信息的添加、浏览、查找功能。 q 通过前台可以查看部门和职位信息。 q 通过前台实现收发信息的功能 q 查看优秀员工信息和提交提优秀员工姓名。 q 通过后台对部门信息、职位信息进行管理。 q 管理公告信息,查看公文内容。 q 设置后台员工信息的管理模块。 q 通过后台管理员工前台登录账号 q 通过后台实现对短信信息进行查看、删除等管理。 q 通过后台实现查看、删除在线员工信息功能。 q 后台对员工在职状态信息进行管理。 1.2 可行性分析 通过办公自动化管理系统对企业日常办公进行管理,满足了企业日常办公管理各方面的的需求,实现了企业员工之间消息的发送与接收功能,大大的方便了企业内部人员沟通。网站提供的前后台的公告与公文信息的管理方便员工及时的了解公司的动态。其他功能模块的设置使企业的日常管理步入了科学系统管理的轨道上。 2 总体设计 2.1 项目规划 办公自动化管理系统是一个功能完备的网站,由前台管理和后台管理两大部分组成。 q 前台管理模块 前台管理模块要求实现:公告管理、公文管理、员工管理、部门信息、收发信息和优秀员工管理6部分。 q 后台管理模块 后台管理模块要求实现:部门管理、职位管理、公告管理、公文管理、员工管理、账号管理、短信息管理、在线管理和员工状态管理9部分。 2.2 系统功能结构图 办公自动化管理系统前台功能结构如图1所示。 图1 办公自动化管理系统前台功能结构图 办公自动化管理系统后台功能结构如图2所示。 图2 办公自动化管理系统后台功能结构图 3 系统设计 3.1 设计目标 本系统是根据企业日常办公的需求进行开发设计的,主要实现如下目标: q 实现前台的公告、公文管理。 q 实现前台员工信息管理功能。 q 通过前台查看职位信息、部门信息。 q 实现优秀员工信息的查看与提名功能。 q 实现前台员工之间的短消息的发送与接收。 q 通过后台查看与删除公告信息、查看公文信息的功能。 q 后台管理员对员工信息、职位信息与部门信息的管理。 q 后台管理员对短消息的查看与删除功能。 q 后台管理员管理员工状态信息。 q 后台实现对在线信息的查看与删除功能。 q 后台管理员工登录账号信息。 q 设置前后台的系统退出功能。 6.2 公文管理控制层的设计 1.发送公文 公文管理控制层的主要任务是,根据客户端提出的请求在数据库中实现对公告的增、删、查的操作,并且完成附件的上传功能。公告的正文内容保存在数据库中,附件保存在服务器中。发送公文时,单击公文管理中发送公文的按钮,直接访问了Servlet(com/bumf/Send.java)。该Servlet用来判断准备发送公文的用户在数据库中是否有临时公文。如果没有则生成一个临时文件并保存在数据库中;如果有则将临时文件的内容保存在Collection对象中,并将Collection对象通过“名-值”的形式保存在request范围内,转发给send.jsp来显示。具体代码如下: /*************************************com.bumf.Send.java****************************************/ package com.bumf; import oa.data.Bumf; import oa.sys.*; import oa.sys.Time; import java.io.*; import java.sql.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; /** **************************************************** *类名称: Send<br> *类功能:公文发送(附件)<br> **************************************************** */ public class Send extends HttpServlet{ private int sign;// 1代表公文已经发送,0代表未发送(也就是用户点击了暂时保存按钮) private int examine;//1代表处理完成,0代表还未处理(也就是用户点击了以后处理) private int id;//发送人id private int accepter;//接受者编号 private int sendter;//发送者编号 private int bumfid;//公文编号 private String axffix;//附件全名 private String content;//公文内容 private String title;//公文标题 private String time;//发送时间 private String sqls;//保存SQL语句 private String sqli;//保存SQL语句 private String submit; private String bumf; private HttpSession session=null; private ResultSet rs=null; private Statement stmt=null; public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ request.setCharacterEncoding("gb2312"); response.setContentType("text/html; charset=gb2312"); PrintWriter out=response.getWriter(); session=request.getSession(); Str str=new Str(); Db db=new Db(); Time times=new Time(); Collection coll=new ArrayList(); try{ id=Integer.parseInt((String)session.getAttribute("id"));//获取发送人id,即登陆员工的id号 }catch(Exception e){ e.printStackTrace(); } //查看发送人是否有临时公文 sqls="SELECT * FROM bumf WHERE sendter="+id+" AND sign="+0; out.print(sqls+"<br>"); try{ stmt=db.getStmtread(); rs=stmt.executeQuery(sqls); //如果没有生成一个临时文件 if(!rs.next()){ db.close(); sqli="INSERT INTO bumf(sendter,accepter,title,time,content,affix,examine,sign)" +" VALUES("+id+","+id+",'''',''"+times.getYMDHMS()+"'','' '','''',1,0)"; stmt=db.getStmt(); stmt.executeUpdate(sqli); } db.close(); //调出临时文件 stmt=db.getStmtread(); rs=stmt.executeQuery(sqls); if(rs.next()){ bumfid=rs.getInt(1); sendter=rs.getInt(2); accepter=rs.getInt(3); title=rs.getString(4); time=rs.getString(5); content=rs.getString(6); axffix=rs.getString(7); examine=rs.getInt(8); sign=rs.getInt(9); content=str.outStr(content); axffix=str.outStr(axffix); Bumf bumf=new Bumf(); bumf.setId(bumfid); bumf.setSendter(sendter); bumf.setAccepter(accepter); bumf.setTitle(title); bumf.setTime(time); bumf.setContent(content); bumf.setExamine(examine); bumf.setSign(sign); bumf.setAffix(axffix); coll.add(bumf); } request.setAttribute("msg",coll); coll=(Collection)request.getAttribute("msg"); if(coll!=null){ Iterator it=coll.iterator(); if(it.hasNext()){ Bumf bumf=(Bumf)it.next(); out.print(bumf.getId()); } } }catch(Exception e){ e.printStackTrace(); out.print(e); }finally{ db.close(); RequestDispatcher dispatcher=request.getRequestDispatcher("send.jsp"); dispatcher.forward(request,response); } } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ doPost(request,response); } } 2.接收公文 当一方用户发送给另一方发送公文后,另一方用户就可以接收到发送给自己的公文。待办公文的数量在接收公文的页面上显示,用户处理完一个公文后该公文则被标记成已办公文,同时下一个未办公文公显示出来,如果用户只是打开接收公文页面没有处理公文,那么此公文仍是未办公文。已办公文只有管理员才能查看其标题列表和附件名称,对于这项功能的实现流程与发送公文类似,在此只给出关键部分代码: /****************************************com.bumf.Accept.java************************************/ Collection coll=new ArrayList(); //获取发送人id try{ id=Integer.parseInt((String)session.getAttribute("id")); }catch(Exception e){ // e.printStackTrace(); request.setAttribute("msg","您的网页已过期请重新登录"); id=0; } //查看接受人是否有新的公文 count=db.getRowCount("bumf WHERE accepter="+id+" AND sign="+1+" AND examine="+0); if(count>0){ request.setAttribute("count",new Integer(count).toString()); } sqls="SELECT * FROM bumf WHERE accepter="+id+" AND sign="+1+" AND examine="+0+" ORDER BY bumfid"; try{ stmt=db.getStmtread(); rs=stmt.executeQuery(sqls); if(rs.next()){ bumfid=rs.getInt(1); sendter=rs.getInt(2); accepter=rs.getInt(3); title=rs.getString(4); time=rs.getString(5); content=rs.getString(6); axffix=rs.getString(7); examine=rs.getInt(8); sign=rs.getInt(9); content=str.outStr(content); axffix=str.outStr(axffix); Bumf bumf=new Bumf(); bumf.setId(bumfid); bumf.setSendter(sendter); bumf.setAccepter(accepter); bumf.setTitle(title); bumf.setTime(time); bumf.setContent(content); bumf.setExamine(examine); bumf.setSign(sign); bumf.setAffix(axffix); coll.add(bumf); } request.setAttribute("msg",coll); }catch(Exception e){ e.printStackTrace(); }finally{ db.close(); RequestDispatcher dispatcher=request.getRequestDispatcher("accept.jsp"); dispatcher.forward(request,response); } 本系统的其它功能,与公告管理、公文管理类似。这里只是讲述一下JSP+JavaBean+Servlet的工作流程。 附录A 参考文献 1.JSP数据库系统开发完全手册 人民邮电出版社 2006年3月 2.Delphi数据库系统开发完全手册 人民邮电出版社 2006年3月 3.Visual Basic数据库系统开发完全手册 人民邮电出版社 2006年3月 4.Visual C++数据库系统开发完全手册 人民邮电出版社 2006年3月 5.JSP 信息系统开发实例精选 机械工业出版社王国辉、牛强、李南南等 2005年7月 6.Visual Basic信息系统开发实例精选机械工业出版社宋坤、赵智勇、刘强等 2005年7月 7.SQL Server数据库开发实例解析 机械工业出版社 宋昆、李严等 2006年1月 8.Access数据库开发实例解析 机械工业出版社 李俊民、高春燕等 2006年1月 9.Visual Basic精彩编程200例机械工业出版社 赛奎春、高春艳等 2003年1月 10.ASP数据库开发实例解析机械工业出版社李严、于亚芳、王国辉 2004年12月 11.Delphi工程应用与项目实践机械工业出版社宋坤、赵智勇等 2005年1月 12.Visual Basic工程应用与项目实践机械工业出版社 高春艳、李俊民等 2005年1月 13.Visual C++工程应用与项目实践机械工业出版社 张雨、阮伟良等 5005年1月 14.JSP工程应用与项目实践机械工业出版社陈威、白伟明、李楠 2005年2月 15.ASP工程应用与项目实践机械工业出版社王国辉、牛强、李南南 2005年4月 16.Visual Basic 信息系统开发实例精选 机械工业出版社 高春艳、李俊民、张耀庭等 2005年7月 17.ASP 信息系统开发实例精选 机械工业出版社王国辉、牛强、李南南等 2005年7月 18.Delphi 信息系统开发实例精选机械工业出版社宋坤、赵智勇、刘强等 2005年7月 19.Visual foxpro数据库开发关键技术与实例应用人民邮电出版社周桓、张雨、王国辉 2004年5月 20.PoweBuilder数据库开发关键技术与实例应用人民邮电出版社刘志铭张振坤冯文萃 2004年5月 21.Delphi数据库开发关键技术与实例应用人民邮电出版社 赛奎春陈紫鸿宋昆 2004年5月
|
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |