Java web实习 告

写在前面:HRMS人力资源管理系统源代码需要的可点击直接下载
目录
一、系统设计概述 1
1.1目的 1
1.2任务 1
1.3开发环境 2
1.4参考资料 2
二、系统需求分析 2
2.1管理员登录注册 2
2.2部门管理 2
2.3员工管理 2
2.4培训管理 3
2.5招聘管理 3
2.6奖惩管理 3
2.7薪资管理 3
2.8系统管理 3
三、系统设计的基本原理和采用的主要方法与技术 3
3.1总概 3
3.2系统的主要架构及开发模式 4
3.2.1基于B/S的体系结构 4
3.2.2基于MVC的应用开发模型 4
四、本人在此次实习负责的系统模块设计与实现 5
4.1系统建模 6
4.1.1面向对象建模 6
4.1.2数据概念模型 7
4.2系统模块的设计 7
4.2.1部门管理 7
4.2.2员工管理 7
4.2.3培训管理 8
4.2.4招聘管理 8
4.2.5奖惩管理 8
4.2.6薪资管理 8
4.2.7系统管理 8
4.3系统模块的实现 9
4.3.1部门管理 9
4.3.2员工管理 11
4.3.3培训管理 12
4.3.4招聘管理 14
4.3.5奖惩管理 14
4.3.6薪资管理 15
4.3.7系统管理 16
4.4数据库设计与实现 16
五、个人遇到的困难与获得的主要成果 22
5.1遇到的困难 22
5.2获得的成果 25
六、测试与运行记录 26
七、系统设计完成结果分析与个人小结 29
7.1结果分析 29
7.2个人小结 30
八、附录(软件配置、个人完成的程序模块和文档清单) 30
8.1软件配置 30
8.2个人完成的程序模块和文档清单 31

一、系统设计概述
1.1目的
人力资源管理在管理学中是一个非常重要的的领域,通过人力资源管理能够对企业员工进行有效的管理。它的作用已经大大超过了人事管理,正因为如此,这种新兴的管理模式越来越被人们所重视。有效的人力资源管理是 会各组织、各企业都需要的。将一个Web程序的人力资源管理系统,通过该系统对企业人力资源进行管理,使企业人力资源管理使用时代的发展要求,从而大大的提高企业的核心竞争力。
人力管理系统从科学的管理角度出发,实现以下系统目标:
(1)从企业的人力资源规划开始,记录包括员工的基本信息、教育培训经历、工作经历、薪资情况、部门管理、系统管理等功能。
(2)数据资源高度共享,人才信息全局掌握,人力资源管理统一调配,从而充分发挥企业整体的优势,以供决策。
(3)提供灵活的 表生成功能和分析功能,使得人力资源管理人员可以从繁琐的日常工作中解脱出来,将精力放到更富有挑战性和创造性的人力资源分析、规划、员工激励和战略等工作中去。
(4)准确及时的搜集各种人力资源信息和各种综合性的 表供企业决策人员参考,如年龄结构分析、年资分析、员工整体学历素质分析等,可以帮助企业对员工做出有针对性的管理。
1.2任务
在前期完成需求分析、数据建模、数据库设计等基础下,进行下一步的编码工作,使用Java web语言开发一个简单操作的人力资源管理系统,实现用户操作界面简洁美观,使用一定的开发框架,符合一定的开发流程,开发出来的web程序能够独立部署在浏览器上运行,并能够对数据库进行访问,实现增、删、改、查等操作。小组分为两人,一人负责前端的编码,一人负责后端的编码。
通过此次实习,能够培养我们综合运用已学知识,培养我们动手能力,培养良好的编程规范、编程方法,以便能较全面地理解、掌握和综合运行所学知识、提升自身编程能力,增强团队协作意识、了解软件开发的思考角度和主要流程。
分工安排 第一周 第二周 第三周 完成情况
罗猛 数据库的设计和页面响应的后端,以及一个简易的用户接口 撰写《概念数据模型》
《人力资源管理系统需求分析》
《物理数据模型(PDM)》
数据库设计及后端编码 测试数据库及用户数据 完成
丘佩茵 界面设计、前端用户界面设计,美工 《概要设计》、《详细设计》、《面向对象模型(类图)及其模型 告》、《数据库设计文档》
页面设计及美工 用户数据测试及页面调整 完成
小组分工、进度安排及完成情况
1.3开发环境
开发环境:Windows+Java(14.0.1)
开发工具:Eclipse(4.17.0)
开发服务器:Tomcat9.0
客户程序硬件要求:
具有Pentium III处理器且满足以下要求的计算机:
最低64MB内存、最小2.1GB硬盘、鼠标、键盘
1.4参考资料
人力资源管理系统需求分析;
人力资源管理系统概要设计;
人力资源管理系统详细设计;
人力资源管理系统数据库设计文档;
《Java web从入门到实战》
《软件工程》
二、系统需求分析
2.1管理员登录注册
登录:要求任何使用系统的管理员都应经过用户名、密码进行身份验证后,方可进入系统。如果管理员未通过验证则停留在登录界面,并给出相关提示。然后重新输入用户名和密码。

修改密码:任何用户都可以,并且仅能修改自己的密码。修改密码时,必须要求用户输入原密码、新密码和确认新密码进行验证,验证通过后方能修改密码。

注册:管理员新注册账 时,在注册界面输入个人信息,系统以及输入两次密码,提交注册请求后,系统检验后台数据库是否存在该用户,检验没有相同用户后方可注册成功,即刻返回登录界面。
2.2部门管理
对各部门的基本信息进行管理,让管理者对各部门情况一目了然。且可以查询各部门所有员工,主要信息包括:部门编 、部门名称、部门负责人、总人数。
可进行的操作:对部门信息查询后,可以进行修改,可添加删除部门。
2.3员工管理
对各部门员工的基本信息进行管理记录,让管理者对各部门员工情况一目了然。且可以查询各部门所有员工,主要信息包括:员工编 、员工姓名、员工性别、员工年龄、所属部门、所任职位、薪酬情况。
可进行的操作:对员工信息查询后,可以进行修改,可添加删除员工信息。
2.4培训管理
对各公司培训计划的基本信息进行管理记录。且可以查询所有培训计划,培训主要信息包括:培训信息编 培训时间 培训地点 培训内容 参与人数
可进行的操作:对培训计划信息查询后,可以进行修改,可添加删除培训信息。
2.5招聘管理
对应聘者的情况进行管理,记录主要包括:应聘信息编 应聘人姓名 应聘人性别 应聘人年龄 应聘岗位 期望薪酬。
可进行的操作:对应聘者信息查询后,可以进行删除信息。
下载功能:管理员可以查看下载所有应聘者上传到系统的简历。
2.6奖惩管理
根据员工日常情况记录的奖惩情况,主要记录奖惩信息编 奖惩对象姓名 奖惩性质 奖惩内容等内容。
可进行的操作:对应聘者信息查询后,可以进行添加删除信息。
2.7薪资管理
对员工薪酬的情况进行管理记录,主要包括:薪酬信息编 员工姓名 员工薪酬。
可进行的操作:对薪酬信息查询后,可以进行添加删除信息。
2.8系统管理
管理记录管理员登录界面的信息,以及每次各个管理员的登录情况。包括管理员编 管理员昵称 账 密码 管理员邮箱 管理员真实姓名 管理员身份证 上次登录时间。
管理员可以查看登录情况信息以及删除记录。
三、系统设计的基本原理和采用的主要方法与技术
3.1总概
系统设计是指对需设计的系统进行调查分析、筹划研究、评价实施、运行改善等,直到完成一个能协调工作的实际系统的过程。
系统设计采用总分结构,将系统分解为若干个小系统,并确定各个子系统的目标、功能及相互关系,对子系统进行技术设计和评价,最后对系统进行总体技术设计和评价。后端采用spring MVC模式,前端采用bootstrap、react框架技术。
3.2系统的主要架构及开发模式
系统的建设关键在于其所使用的结构,而人力资源管理系统这种基于web的系统,传统的C/S架构已经不能满足大量用户的访问和操作,B/S基于浏览器的架构则是目前 络系统应用的主流,它将大量的数据处理同坐交给服务器端来处理,客户端只用通过普通的IE浏览器即可访问系统,方便快捷而且利于系统的更新和维护,Java语言在该方面更是得天独厚,j2ee规范的出现则使系统的开发更加规范,层次更加清楚,更利于对复杂事务的处理,而且在安全性方面也做得很好。基于MVC的开发流程则使开发过程更加清晰明了,利于做一些复杂的逻辑实现,从而节省了开发周期和开发成本。
3.2.1基于B/S的体系结构
在B/S体系结构系统中,用户通过浏览器向分布在 络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态 页生成等做工全部用web server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由web服务器单独组成一层来担负其任务,这样客户机的压力减轻了,把负荷分配给了web服务器。这种三层体系结构如图所示。

分析用例,从用例中寻找对象和类。例如,通过分析人力资源管理子系统,可以发现已下实体类:管理员、部门信息、员工信息、培训信息、奖惩信息等等。类是对象的抽象的描述,它包括属性的描述和行为的描述两个方面。类中的关系是关联,泛化实现,依赖四种关系。其中类与类主要的关系是关联,泛化。
然后画下如下类图:

4.3.5奖惩管理

    下载:
    1.先读取服务器路径下的文件(也就是需要下载的文件)需要知道
    –文件路径+文件名 ,采用输入流fileInputStream将文件读取到buffer中
    2.创建输出流 OutputStream,将buffer的数据写到输出流
    –输出流需要 –输出路径+文件名
    file2 =e:/download/filetest/file7.txt
    OutputStream os = new FileOutputStream(file2);
    3.如果不指定具体的输出路径,直接采用response创建输出流,默认下载到浏览器对应路径下
    OutputStream os = response.getOutputStream();
    4.文件上传到相对路径
    // 文件上传后的路径,相对路径
    String filePath1 = request.getSession().getServletContext().getRealPath(“”);
    —上传成功后文件存放的路径为–WebContentupload
    // 绝对路径
    // String filePath1=“C://Users//Andrew//Desktop//fileTest//”;
    5.从相对路径下进行文件下载
    String realPath = request.getServletContext().getRealPath( “”);
    –可知相对路径是相对的

    上传成功后进行下载操作时无法正常在页面显示出来,查看upload文件夹,发现里面已经存在上传成功后的文件,又检查了一遍路径问题,也始终没有发现有任何问题,在 上查找也没有解决的办法,最后就去请教了同学,对比了他的代码与文件夹后,发现我少了一个与UploadServlet同名的文件夹,而这个文件夹始终为空,上传与下载并没有经过这个文件夹,而加上这个文件夹居然就可以正常把上传目录里面的内容正常显示出来,这让我百思不得其解,谜一样的操作。

    上传与下载时经常碰到遇到某个资源不可用的错误:
    最后发现是没有配置web.xml文件,配置如下后又可以正常进行操作。

    UploadServlet
    upload.UploadServlet

    UploadServlet
    /upload

    ListFileServlet
    upload.ListFileServlet

    ListFileServlet
    /listFile

    DownloadServlet
    upload.DownloadServlet

    DownloadServlet
    /download

    4.SQLException
    java.sql.SQLException是处理JDBC时常见的exception对象,用来表示JDBC操作过程中发生的具体错误 。
    一般的SQLException都是因为操作数据库时出错,比如Sql语句写错,或者数据库中的表或数据出错 。
    5.ClassNotFoundException
    可能原因:db.properties文件路径不正确;驱动类名写错;没有导入驱动jar包
    6. 404错误
    产生的原因:Web服务器(容器)根据请求地址找不到对应资源。
    Eg:
    (1)服务器没有启动成功
    (2)地址错误(拼写不正确,字母大小写错误)
    (3)web.xml文件中的两个不一致
    (4)工程没有部署成功
    (5)Web应用程序部署结构没有遵守Servlet规范
    (6)超链接中的href属性值有误
    (7)表单中的action属性值有误
    404错误的解决方法
    (1)重启服务器
    (2)按照http://ip:port/appName/ url-pattern规则检查请求地址,区分大小写
    (3)检查 web.xml文件中的和节点中的两个是否一致
    (4)只有部署以后的工程才能访问
    (5)检查工程结构是否符合规范
    (6)检查超链接指定资源格式
    (7)检查表单中action数据提交路径
    7.500错误
    产生的原因:程序在运行过程出错(源代码错误)
    Eg:
    (1)Servlet类没有继承HttpServlet或实现Servlet接口
    (2)web.xml文件中的写错
    (3)service方法中的代码运行时抛出异常
    500错误的解决方法
    (1)检查 servlet-class 中的包名、类名是否正确
    (2)检查Servlet类是否继承HttpServlet或实现Servlet
    (3)检查Servlet的service方法中的代码是否运行出错
    5.2获得的成果
    遇到问题无疑是令人烦躁的,好不容易把代码编写出来,满怀期待的运行,结果不是出来这个错误就是那个错误,这种打击真是磨灭掉耐心的好法子,但是又没有办法,自己的锅总得自己想法子解决,只能耐着性子,一遍一遍去看代码,寻找bug,去 上搜一下有没有相似的案例错误,别人是怎么解决的,跟自己的错误有没有相似的地方,如果说编程是建立起一座大楼的过程,而解决bug则是建立层与层之间的楼梯,当把自己的错误解决后,那种愉悦感以及自我满足感总是让心情喜悦,这种自我满足感加深了自我价值的认同感,体现了自身的知识水平以及抗压能力,增强了对专业的喜爱与知识水平的完善。
    在刚开始时,感觉很困难,不知道从哪里下手,但在队友的鼓励下,多实践,多摸索,不要怕错误。一点点的,慢慢走上了正轨。在上课时不仅要认真听老师讲课,最重要的还是要动手实践,老师在演示demo时,一定要自己也做一遍。有时候,看老师在演示程序时,没有遇到错误,但是自己在运行程序时就会各种各样的错误,这时候,一定要自己去独立解决,先确认自己的代码有没有出现缺少某些符 或者标点而产生错误,然后确认自己操作步骤是否和老师上课时教授的步骤一致。在确定问题并不是出在这两个方面时,我们就可以去求助 络, 络上会有很多经验贴来帮助我们去解决在操作过程中遇到的问题。在解决这些问题的过程中,我们就加深了对于这些知识点的印象,既解决了问题,又学到了知识。
    六、测试与运行记录

    1. 没有进行一套比较完整规范的测试过程
    2. 数据库设计过于简单,数据容易产生冗余
    3. 管理员与管理员之间并没有相互分开,可以查看彼此的信息
    4. 用户信息没有处理就直接放进数据库内,如果是大型的项目,数据比较困难查找
    5. 站架构没有完全按照MVC模式进行设计,后期维护会比较困难
    6. 项目经验不足,架构方面不够严谨
      7.2个人小结
      如果说平时积累的各个知识点是一粒粒宝贵的珍珠的话,那么项目经历则是将这些珍珠串联起来的一根红线。“纸上得来终觉浅,绝知此事要躬行”。软件工程是一门实践性、综合性非常强的专业,如果没有参加过完整的实际项目,就很难从根本上理解书本上所学的理论知识,就难以真正领会到软件工程的思想精髓。同时,在做项目时还有勤于思考,无论作为主持者还是作为一个普通的组员,都应该去潜心思考为什么要这样设计、这样设计的优点是什么、有哪些不足,经常做换位思考,会自觉地提高自己的系统分析和设计能力,积累丰富的项目经验。
      此次实习虽然只有三周,但在这三周里收获颇多。通过实习,不但加深了我对一些理论知识的理解,不仅使我在理论上对Java web有了全新的认识,在实践能力上也得到了提高,真正做到了学以致用,更学到了很多做人的道理,对我来说受益匪浅。
      除此之外,我知道了什么是团队,怎么和团队分工合作;同时我还学会了如何更好地与别人沟通,如何更好地陈诉自己的观点,如何说服别人认同自己的观点。这也是一次理论与实际相结合的实习,这次实习对于以后学习、工作也是受益匪浅的,在短短的三周中相信这些宝贵的经验会成为我今后成功的重要基石;这对于我的学业,乃至我以后人生的影响无疑是及其深远的。
      通过这几周的实习与学习,也清楚了目前自己的不足,那就是缺乏相应的只是与经验,对所学的专业不能够很好地运用于实践操作。正所谓“百闻不如一见”,经过这次自身的切身实践,我才深切地理解了“走出课堂,投身实践”的必要性。平时我们只能在课堂上与老师一起纸上谈兵,思维的认识基本上只是局限于课本的范围之内,也许就是这个原因就导致我们对专业知识认识的片面性,使得我们只知所以然,而不知其之所以然,限制了我们专业知识水平的提高。
      而经过这次实习,让我明白了如果是一个完整的项目开发,必须由团队来分工合作,否则,即费力又费时还做不好这项目。因此不管在工作还是在生活中要和师长、同学保持良好的关系是很重要的。做事首先要学做人,要明白做人的道理,如何与人相处是现代 会的做人的一个最基本的问题。
      总之,这次实习为我提供了不同的学习方法和学习体会,从书本中面对现实,为我将来走上 会打下了扎实的基础。作为在校计算机专业的学生,现在我能做的就是吸取知识,提高自身的综合素质,提高自己的职业技能,自己有了能力,到时候才会是“车到山前必有路”。
      八、附录(软件配置、个人完成的程序模块和文档清单)
      8.1软件配置
      开发工具:Eclipse(4.17.0)
      开发服务器:Tomcat9.0
      开发所需要的包:
      Java web实习 告
      8.2个人完成的程序模块和文档清单
      罗猛:
      8.2.1controller
      (1)Department_delete_control.java
      (2)Department_insert_control.java
      (3)Department_update_control.java
      (4)Login_control.java
      (5)Register_control.java
      (6)Rewarandpunishment_delete_control.java
      (7)Rewardandpunishment_insert_control.java
      (8)Salary_insert_control.java
      (9)Salary_update_control.java
      (10)Staff_delete_control.java
      (11)Staff_insert_control.java
      (12)Staff_update_control.java
      (13)System_delete_control.java
      (14)Training_delete_control.java
      (15)Training_insert_control.java
      (16)Training_update_control.java
      (17)user_control.java
      8.2.2hnust.cwz.javabeans
      (1)BusinessBean.java
      (2)DBAccessBean.java
      8.2.3servlet
      (1)DBUtil.java
      (2)PictureCheckCode.java
      (3)Signin_admin.java
      8.2.4upload
      (1)DownloadServlet.java
      (2)ListFileServlet.java
      (3)UploadServlet.java
      8.2.5SQL数据库
      (1)department.sql
      (2)employment.sql
      (3)rewardandpunishment.sql
      (4)salary.sql
      (5)staff.sql
      (6)training.sql
      (7)user.sql
      丘佩茵:

    8.2.6文档清单
    罗猛:
    《程序代码和数据库》
    《概念数据模型》
    《人力资源管理系统需求分析》
    《物理数据模型(PDM)》
    丘佩茵:
    《人力资源管理系统概要设计》
    《人力资源管理系统面向对象建模》
    《人力资源管理系统详细设计》
    《数据库设计文档》

    文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92065 人正在系统学习中

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月16日
下一篇 2021年1月16日

相关推荐