




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Struts2+Hibernate+SpringJavaEE企业级项目开发单元六考勤管理—任务1实施签到、签退设计Struts2+Hibernate+SpringJavaEE11任务介绍2实施步骤3任务小结4拓展任务目录页第1页任务1实施
签到、签退设计1任务介绍2实施步骤3任务小结4拓展任务目录页第1页任务1实过渡页第2页过渡页任务介绍过渡页第2页过渡页任务介绍3任务1实施签到、签退设计任务介绍本任务以签到子模块为例,说明签到签退的设计开发过程,主要包括:记录员工的签到及签退时间为了防止别人代替签到,系统在用户签到签退的同时记录用户的信息、用户机器的信息并保存到考勤日志表中。签到与签退功能执行方式是一致的主要区别是记录的时间不同签到模块应用SSH框架开发分为6个步骤:DAO层、Service层、视图层、Action控制层、Struts2配置、Spring配置。第3页任务1实施签到、签退设计任务介绍本任务以签到子模块为例,4任务1实施签到、签退设计任务介绍签到的运行过程:用户登录后选择考勤管理签到页面,输入考勤信息,点击考勤按钮完成考勤,考勤的同时记录用户姓名、IP地址、考勤时间、考勤标志等信息并保存到考勤日志表中;考勤日志管理应用SpringAOP的Advice技术实现,日志管理业务植入到考勤签到模块中,用户点击考勤后,日志管理业务启动,获取用户考勤信息后,保存考勤日志信息到日志表中。第4页任务1实施签到、签退设计任务介绍签到的运行过程:第4页5过渡页第5页过渡页实施步骤过渡页第5页过渡页实施步骤6任务1实施签到、签退设计实施步骤第6页1DAO层数据访问层负责与持久化对象交互,封装了数据的增、删、查、改的操作。应用SSH框架,分为六个步骤业务逻辑层做相应的业务逻辑处理和事务控制2Service层3视图层JSP图形界面负责UI。任务1实施签到、签退设计实施步骤第6页1DAO层数据访问7任务1实施签到、签退设计实施步骤第7页4Action控制层Action层接收前台信息并调用相关Service并返回结果。应用SSH框架,分为六个步骤配置业务控制类及物理视图对应关系。5Struts配置文件6Spring配置文件管理各层之间不同的类。任务1实施签到、签退设计实施步骤第7页4Action控制8任务1实施签到、签退设计实施步骤第8页1DAO层设计与实现(1)ICheckDAO.java定义了增加签到记录方法。功能描述publicinterfaceICheckDAO{//增加签到记录publicvoidaddCheck(Checkcheck);}(2)ICheckLogDAO.java定义了增加签到考勤记录方法。publicinterfaceICheckLog{
//增加签到日志记录
publicvoidaddCheckLog(CheckLogcheckLog);}任务1实施签到、签退设计实施步骤第8页1DAO层设计与实9任务1实施签到、签退设计实施步骤第9页1DAO层设计与实现(3)CheckDAO.java实现了ICheckDAO接口的类。功能描述publicclassCheckDAOimplementsICheckDAO{privateSessionFactorysessionFactory;//增加签到记录publicvoidaddCheck(Checkcheck){ Sessionsession=sessionFactory.openSession(); session.save(check); }
……
//set/getSessionFactory()方法}任务1实施签到、签退设计实施步骤第9页1DAO层设计与实10任务1实施签到、签退设计实施步骤第10页1DAO层设计与实现(4)CheckLogDAO.java实现ICheckLog、AfterReturningAdvice接口:考勤日志管理应用AfterAdvice实现,用户签到时调用签到方法,签到方法执行后afterReturning()方法被调用;afterReturning()执行过程:获取保存在会话中的IP地址、签到信息,调用addCheckLog()保存到日志表中。功能描述publicclassCheckLogDAOimplementsAfterReturningAdvice,ICheckLog{ privateSessionFactorysessionFactory;
……//set/getSessionFactory()方法 publicCheckLogDAO(){ } publicvoidafterReturning(Objectarg0,Methodmethod,Object[]arg2,Objectarg3)throwsThrowable{ Stringip=(String)ServletActionContext.getRequest().getSession().getAttribute("ip");Checkcheck=(Check)ServletActionContext.getRequest().getSession().getAttribute("check");CheckLogcheckLog=newCheckLog();checkLog.setCheckIp(ip);checkLog.setCheckTag(check.getCheckTag());checkLog.setCheckTime(check.getCheckTime());checkLog.setUserId(check.getUserId());this.addCheckLog(checkLog); }
//增加考勤日志记录 publicvoidaddCheckLog(CheckLogcheckLog){ Sessionsession=sessionFactory.openSession(); System.out.println("session="+session); Transactiontx=session.beginTransaction(); session.save(checkLog); txmit(); }}任务1实施签到、签退设计实施步骤第10页1DAO层设计与11任务1实施签到、签退设计实施步骤第11页2Service层设计与实现(1)ICheckService.java定义了增加签到记录方法。功能描述publicinterfaceICheckService{publicvoidaddCheck(Checkcheck);//增加签到记录}
(2)CheckService.java实现了ICheckService接口。publicclassCheckServiceimplementsICheckService{ privateICheckDAOcheckProxy;
……//set/getCheckProxy()方法publicvoidaddCheck(Checkcheck){//添加考勤记录 checkProxy.addCheck(check); }}任务1实施签到、签退设计实施步骤第11页2Service12任务1实施签到、签退设计实施步骤第12页3视图层JSP(1)check.jsp视图层包括用户考勤界面、考勤结果页面。功能描述<h3>签到</h3><s:formaction="checkManager!addCheck.action"theme="simple"><s:submitvalue="签到"/><p>备注:<s:textarealabel="签到描述"cols="30"rows="5"name="checkDesc"/></s:form>任务1实施签到、签退设计实施步骤第12页3视图层JSP(13任务1实施签到、签退设计实施步骤第13页4Action控制层(1)CheckAction.java类中addCheck()获取用户输入的考勤信息,获取会话中用户登录信息,保存签到信息,返回签到成功页面。功能描述publicclassCheckAction{ privateStringcheckDesc; privateICheckServicecheckService;
……//一组set/get属性方法
publicStringexecute(){ return"success"; }
//添加考勤记录 publicStringaddCheck(){ HttpServletRequestrequest=ServletActionContext.getRequest(); Stringip=this.getRemortIP(request);//获取IP地址 HttpSessionsession=request.getSession(); session.setAttribute("ip",ip); UserInfouser=(UserInfo)session.getAttribute("user");//获取会话中用户信息 Checkcheck=newCheck(); check.setCheckDesc(this.getCheckDesc()); check.setUserId(user.getUserId()); check.setCheckTag(newInteger(0)); Datedate=newDate();//签到时间 date.toGMTString(); DateFormatdateFormat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
check.setCheckTime(checkTime);
session.setAttribute("check",check);//保存考勤信息到会话中
checkService.addCheck(check);//调用服务方法签到
return"success";
} //获取IP地址
publicStringgetRemortIP(HttpServletRequestrequest){
if(request.getHeader("x-forwarded-for")==null){
returnrequest.getRemoteAddr();
}
returnrequest.getHeader("x-forwarded-for");
}}任务1实施签到、签退设计实施步骤第13页4Action控14任务1实施签到、签退设计实施步骤第14页5Struts2配置文件(1)struts.xml配置Action,及相应的物理视图。功能描述<actionname="checkManager"class="checkAction"><resultname="success">/success.jsp</result></action>任务1实施签到、签退设计实施步骤第14页5Struts215任务1实施签到、签退设计实施步骤第15页6Spring配置文件(1)applicationContext.xml配置签到接口实现类、签到服务实现类、签到Action、考勤日志管理接口实现、考勤代理。功能描述<actionname="checkManager"class="checkAction"><resultname="success">/success.jsp</result></action><beanid="checkLog"class="com.my.dao.impl.CheckLogDAO">
<propertyname="sessionFactory"ref="sessionFactory"/></bean> <beanid="checkDAO"class="com.my.dao.impl.CheckDAO"> <propertyname="sessionFactory"ref="sessionFactory"/> </bean> <beanid="checkProxy"class="org.springframework.aop.framework.ProxyFactoryBean"> <propertyname="proxyInterfaces"value="com.my.dao.ICheckDAO"/> <propertyname="target"ref="checkDAO"/> <propertyname="interceptorNames"> <list> <value>checkLog</value> </list> </property> </bean> <beanid="checkService"class="com.my.service.impl.CheckService"> <propertyname="checkProxy"> <refbean="checkProxy"/> </property> </bean> <beanid="checkAction"class="com.my.action.CheckAction"> <propertyname="checkService"> <refbean="checkService"/> </property> </bean>任务1实施签到、签退设计实施步骤第15页6Spring配16任务1实施签到、签退设计实施步骤第16页运行效果功能描述任务1实施签到、签退设计实施步骤第16页运行效果功能描述17过渡页第17页过渡页任务小结过渡页第17页过渡页任务小结18任务1实施签到、签退设计任务小结能力目标第18页1AOP基本概念2Advice技术的应用-签到、签退功能设计3DAO层设计与实现(应用AfterAdvice)4Service层、视图层、Action层设计与实现5struts.xml及applicationContext.xml6AOP的应用任务1实施签到、签退设计任务小结能力目标第18页1AOP19过渡页第19页过渡页拓展任务过渡页第19页过渡页拓展任务20任务1实施签到、签退设计拓展任务能力目标第20页应用SpringAOP的Adivice设计开发学工管理系统的成绩管理模块中的成绩登记子模块,要求记录成绩的同时将用户的信息、IP地址、登记的时间记录到成绩登记日志表中。拓展训练6-1任务1实施签到、签退设计拓展任务能力目标第20页应用Sp21谢谢观看谢谢观看22Struts2+Hibernate+SpringJavaEE企业级项目开发单元六考勤管理—任务1实施签到、签退设计Struts2+Hibernate+SpringJavaEE231任务介绍2实施步骤3任务小结4拓展任务目录页第1页任务1实施
签到、签退设计1任务介绍2实施步骤3任务小结4拓展任务目录页第1页任务1实过渡页第2页过渡页任务介绍过渡页第2页过渡页任务介绍25任务1实施签到、签退设计任务介绍本任务以签到子模块为例,说明签到签退的设计开发过程,主要包括:记录员工的签到及签退时间为了防止别人代替签到,系统在用户签到签退的同时记录用户的信息、用户机器的信息并保存到考勤日志表中。签到与签退功能执行方式是一致的主要区别是记录的时间不同签到模块应用SSH框架开发分为6个步骤:DAO层、Service层、视图层、Action控制层、Struts2配置、Spring配置。第3页任务1实施签到、签退设计任务介绍本任务以签到子模块为例,26任务1实施签到、签退设计任务介绍签到的运行过程:用户登录后选择考勤管理签到页面,输入考勤信息,点击考勤按钮完成考勤,考勤的同时记录用户姓名、IP地址、考勤时间、考勤标志等信息并保存到考勤日志表中;考勤日志管理应用SpringAOP的Advice技术实现,日志管理业务植入到考勤签到模块中,用户点击考勤后,日志管理业务启动,获取用户考勤信息后,保存考勤日志信息到日志表中。第4页任务1实施签到、签退设计任务介绍签到的运行过程:第4页27过渡页第5页过渡页实施步骤过渡页第5页过渡页实施步骤28任务1实施签到、签退设计实施步骤第6页1DAO层数据访问层负责与持久化对象交互,封装了数据的增、删、查、改的操作。应用SSH框架,分为六个步骤业务逻辑层做相应的业务逻辑处理和事务控制2Service层3视图层JSP图形界面负责UI。任务1实施签到、签退设计实施步骤第6页1DAO层数据访问29任务1实施签到、签退设计实施步骤第7页4Action控制层Action层接收前台信息并调用相关Service并返回结果。应用SSH框架,分为六个步骤配置业务控制类及物理视图对应关系。5Struts配置文件6Spring配置文件管理各层之间不同的类。任务1实施签到、签退设计实施步骤第7页4Action控制30任务1实施签到、签退设计实施步骤第8页1DAO层设计与实现(1)ICheckDAO.java定义了增加签到记录方法。功能描述publicinterfaceICheckDAO{//增加签到记录publicvoidaddCheck(Checkcheck);}(2)ICheckLogDAO.java定义了增加签到考勤记录方法。publicinterfaceICheckLog{
//增加签到日志记录
publicvoidaddCheckLog(CheckLogcheckLog);}任务1实施签到、签退设计实施步骤第8页1DAO层设计与实31任务1实施签到、签退设计实施步骤第9页1DAO层设计与实现(3)CheckDAO.java实现了ICheckDAO接口的类。功能描述publicclassCheckDAOimplementsICheckDAO{privateSessionFactorysessionFactory;//增加签到记录publicvoidaddCheck(Checkcheck){ Sessionsession=sessionFactory.openSession(); session.save(check); }
……
//set/getSessionFactory()方法}任务1实施签到、签退设计实施步骤第9页1DAO层设计与实32任务1实施签到、签退设计实施步骤第10页1DAO层设计与实现(4)CheckLogDAO.java实现ICheckLog、AfterReturningAdvice接口:考勤日志管理应用AfterAdvice实现,用户签到时调用签到方法,签到方法执行后afterReturning()方法被调用;afterReturning()执行过程:获取保存在会话中的IP地址、签到信息,调用addCheckLog()保存到日志表中。功能描述publicclassCheckLogDAOimplementsAfterReturningAdvice,ICheckLog{ privateSessionFactorysessionFactory;
……//set/getSessionFactory()方法 publicCheckLogDAO(){ } publicvoidafterReturning(Objectarg0,Methodmethod,Object[]arg2,Objectarg3)throwsThrowable{ Stringip=(String)ServletActionContext.getRequest().getSession().getAttribute("ip");Checkcheck=(Check)ServletActionContext.getRequest().getSession().getAttribute("check");CheckLogcheckLog=newCheckLog();checkLog.setCheckIp(ip);checkLog.setCheckTag(check.getCheckTag());checkLog.setCheckTime(check.getCheckTime());checkLog.setUserId(check.getUserId());this.addCheckLog(checkLog); }
//增加考勤日志记录 publicvoidaddCheckLog(CheckLogcheckLog){ Sessionsession=sessionFactory.openSession(); System.out.println("session="+session); Transactiontx=session.beginTransaction(); session.save(checkLog); txmit(); }}任务1实施签到、签退设计实施步骤第10页1DAO层设计与33任务1实施签到、签退设计实施步骤第11页2Service层设计与实现(1)ICheckService.java定义了增加签到记录方法。功能描述publicinterfaceICheckService{publicvoidaddCheck(Checkcheck);//增加签到记录}
(2)CheckService.java实现了ICheckService接口。publicclassCheckServiceimplementsICheckService{ privateICheckDAOcheckProxy;
……//set/getCheckProxy()方法publicvoidaddCheck(Checkcheck){//添加考勤记录 checkProxy.addCheck(check); }}任务1实施签到、签退设计实施步骤第11页2Service34任务1实施签到、签退设计实施步骤第12页3视图层JSP(1)check.jsp视图层包括用户考勤界面、考勤结果页面。功能描述<h3>签到</h3><s:formaction="checkManager!addCheck.action"theme="simple"><s:submitvalue="签到"/><p>备注:<s:textarealabel="签到描述"cols="30"rows="5"name="checkDesc"/></s:form>任务1实施签到、签退设计实施步骤第12页3视图层JSP(35任务1实施签到、签退设计实施步骤第13页4Action控制层(1)CheckAction.java类中addCheck()获取用户输入的考勤信息,获取会话中用户登录信息,保存签到信息,返回签到成功页面。功能描述publicclassCheckAction{ privateStringcheckDesc; privateICheckServicecheckService;
……//一组set/get属性方法
publicStringexecute(){ return"success"; }
//添加考勤记录 publicStringaddCheck(){ HttpServletRequestrequest=ServletActionContext.getRequest(); Stringip=this.getRemortIP(request);//获取IP地址 HttpSessionsession=request.getSession(); session.setAttribute("ip",ip); UserInfouser=(UserInfo)session.getAttribute("user");//获取会话中用户信息 Checkcheck=newCheck(); check.setCheckDesc(this.getCheckDesc()); check.setUserId(user.getUserId()); check.setCheckTag(newInteger(0)); Datedate=newDate();//签到时间 date.toGMTString(); DateFormatdateFormat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
check.setCheckTime(checkTime);
session.setAttribute("check",check);//保存考勤信息到会话中
checkService.addCheck(check);//调用服务方法签到
return"success";
} //获取IP地址
publicStringgetRemortIP(HttpServletRequestrequest){
if(request.getHeader("x-forwarded-for")==null){
returnrequest.getRemoteAddr();
}
returnrequest.getHeader("x-forwarded-for");
}}任务1实施签到、签退设计实施步骤第13页4Action控36任务1实施签到、签退设计实施步骤第14页5Struts2配置文件(1)struts.xml配置Action,及相应的物理视图。功能描述<actionname="checkManager"class="checkAction"><resultname="success">/success.jsp</result></action>任务1实施签到、签退设计实施步骤第14页5Struts237任务1实施签到、签退设计实施步骤第15页6Spring配置文件(1)applicationContext.xml配置签到接口实现类、签到服务实现类、签到Action、考勤日志管理接口实现、考勤代理。功能描述<actionname="checkManager"class="checkAction"><resultname="success">/success.jsp</result></action><bean
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 打桩机司机岗位面试问题及答案
- 安徽省宿州市五校2025年高一下化学期末调研试题含解析
- 2025届云南省大姚一中高二下化学期末学业质量监测试题含解析
- 吉林省延边州汪清县四中2025届高一下化学期末调研模拟试题含解析
- 广东华南师大附中2025届高一下化学期末监测模拟试题含解析
- 晋城公墓管理暂行办法
- 昭通墓地管理暂行办法
- 合肥社区人员管理办法
- 机械维修制度管理办法
- 趣味性与原动力在学习和生活中的作用研究
- 义务教育新课标必背古诗词135篇
- 营养专科护士总结汇报
- 热射病科普宣传
- 6S视觉管理之定置划线颜色管理及标准样式
- 数字资产的监管框架
- DL∕T 5783-2019 水电水利地下工程地质超前预报技术规程
- 2024年中华全国律师协会招聘5人历年(高频重点复习提升训练)共500题附带答案详解
- 100MW400MWh全钒液流电池储能电站项目可行性研究报告写作模板-拿地申报
- 老版入团志愿书表格完整
- 四柱万能液压机液压系统 (1)讲解
- 档案管理借阅制度
评论
0/150
提交评论