Java-EE企業級項目開發JavaEE-單元6-任務1-任務實施_第1頁
Java-EE企業級項目開發JavaEE-單元6-任務1-任務實施_第2頁
Java-EE企業級項目開發JavaEE-單元6-任務1-任務實施_第3頁
Java-EE企業級項目開發JavaEE-單元6-任務1-任務實施_第4頁
Java-EE企業級項目開發JavaEE-單元6-任務1-任務實施_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論