基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——实现修改密码和注册信息等系统后台的功能逻辑_第1页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——实现修改密码和注册信息等系统后台的功能逻辑_第2页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——实现修改密码和注册信息等系统后台的功能逻辑_第3页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——实现修改密码和注册信息等系统后台的功能逻辑_第4页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——实现修改密码和注册信息等系统后台的功能逻辑_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于S2SH架构的课程设计实训教学示例项目客户关系管理CRM系统实现修改密码和注册信息等系统后台的功能逻辑111实现修改密码和注册信息等系统后台的功能逻辑1、修改STAFFINFODAOINTERFACE接口增加修改密码的方法定义PACKAGECOMPX1987BLUEDREAMCRMDAOINTERIMPORTCOMPX1987BLUEDREAMCRMDAOPOSTAFFINFOPOPUBLICINTERFACESTAFFINFODAOINTERFACEPUBLICBOOLEANUPDATESTAFFPASSWORDSTAFFINFOPOONESTAFFINFOPO,STRINGNEWPASSWORD2、修改接口的实现类STAFFINFODAOIMPLE中的UPDATESTAFFPASSWORD方法的代码STRINGUPDATEHQL“UPDATECOMPX1987BLUEDREAMCRMDAOPOSTAFFINFOPOASONESTAFFINFOPO“SETONESTAFFINFOPOLOGINUSER_USERPASSWORDWHEREONESTAFFINFOPOLOGINUSER_USERNAMEAND“ONESTAFFINFOPOLOGINUSER_USERPASSWORDANDONESTAFFINFOPOLOGINUSER_DEPARTMENTNAME“QUERYONEQUERYSESSIONCREATEQUERYUPDATEHQLONEQUERYSETSTRING0,NEWPASSWORDONEQUERYSETSTRING1,ONESTAFFINFOPOGETLOGINUSER_USERNAMEONEQUERYSETSTRING2,ONESTAFFINFOPOGETLOGINUSER_USERPASSWORDONEQUERYSETSTRING3,ONESTAFFINFOPOGETLOGINUSER_DEPARTMENTNAMEINTRETURNRESULTONEQUERYEXECUTEUPDATE3、设计修改密码的表单蓝梦集团客户关系信息管理系统_修改密码的页面密码修改之前的身份验证必填的信息验证码串登录帐号原始密码所在部门市场部开发部技术支持部产品部系统维护部新设密码确认密码4、修改STAFFINFOACTION类中的DOUPDATESTAFFPASSWORD方法PUBLICSTRINGDOUPDATESTAFFPASSWORDSTAFFINFOPOONESTAFFINFOPONEWSTAFFINFOPO/从表单对象中获得提交的登录帐号/ONESTAFFINFOPOSETLOGINUSER_USERNAMEONESTAFFINFOACTIONFORMGETLOGINNAME/下面的代码是获得满意加密之前的密码(也就是明文的密码)/STRINGORIGNALPASSWORDONESTAFFINFOACTIONFORMGETLOGINPASSWORD/下面对明文的密码进行加密转换,最终在数据库表中存储的密码为密文/MD5JAVABEANONEMD5JAVABEANNEWMD5JAVABEANONESTAFFINFOPOSETLOGINUSER_USERPASSWORDONEMD5JAVABEANGETKEYBEANOFSTRORIGNALPASSWORD/下面的代码是获得表单中提交的部门编码,并进行编码转为实际的部门名称/STRINGDEPARTMENTNAMENULLSWITCHONESTAFFINFOACTIONFORMGETDEPARTMENTTYPETAGIDCASE0DEPARTMENTNAME“市场部“BREAKCASE1DEPARTMENTNAME“开发部“BREAKCASE2DEPARTMENTNAME“技术支持部“BREAKCASE3DEPARTMENTNAME“产品部“BREAKCASE4DEPARTMENTNAME“系统维护部“BREAKONESTAFFINFOPOSETLOGINUSER_DEPARTMENTNAMEDEPARTMENTNAME/对提交的新密码,页必须进行MD5的加密转换/STRINGNEWTRANSLATEPASSWORDONEMD5JAVABEANGETKEYBEANOFSTRONESTAFFINFOACTIONFORMGETNEWLOGINPASSWORD/调用数据访问对象STAFFINFODAOIMPLE中的相关方法实现修改密码/BOOLEANRETURNSAVERESULTSTAFFINFODAOIMPLEUPDATESTAFFPASSWORDONESTAFFINFOPO,NEWTRANSLATEPASSWORDRETURN“UPDATEPASSWORDSUCCESS“5、再测试密码修改的功能是否正确将采用新的密码和原始的帐号进行系统登录,如果登录成功,则表明密码修改是成功的。112完成修改注册信息功能模块1、设计修改注册的身份验证的页面及表单修改注册信息之前的身份验证及查询的页面注册信息修改之前的身份验证必填的信息验证码串登录帐号登录密码所在部门市场部开发部技术支持部产品部系统维护部2、修改STAFFINFOACTION类中的DOUPDATESTAFFREGISTER_SYSTEMLOGIN方法PUBLICSTRINGDOUPDATESTAFFREGISTER_SYSTEMLOGIN/下面的代码是获得没有加密之前的密码(也就是明文的密码)/STRINGORIGNALPASSWORDONESTAFFINFOACTIONFORMGETLOGINPASSWORD/下面对明文的密码进行加密转换,最终在数据库表中存储的密码为密文/STRINGFINALPASSWORDNEWMD5JAVABEANGETKEYBEANOFSTRORIGNALPASSWORDSTRINGDEPARTMENTNAMENULLSWITCHONESTAFFINFOACTIONFORMGETDEPARTMENTTYPETAGIDCASE0DEPARTMENTNAME“市场部“BREAKCASE1DEPARTMENTNAME“开发部“BREAKCASE2DEPARTMENTNAME“技术支持部“BREAKCASE3DEPARTMENTNAME“产品部“BREAKCASE4DEPARTMENTNAME“系统维护部“BREAKSTAFFINFOPORETURNSTAFFINFOPOSTAFFINFODAOIMPLEQUERYONESTAFFINFOONESTAFFINFOACTIONFORMGETLOGINNAME,FINALPASSWORD,DEPARTMENTNAME/识别身份验证是否正确,如果身份验证不正确,则再次返回到身份验证的页面,进行二次验证/IFRETURNSTAFFINFOPONULLRETURN“LOGINFAILURE“/将所获得的身份信息缓存到REQUEST请求对象中/HTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTREQUESTSETATTRIBUTE“RETURNSTAFFINFOPOKEY“,RETURNSTAFFINFOPO/然后再跳转到修改注册信息的页面/RETURN“UPDATESTAFFREGISTER“3、设计一个修改注册信息的表单页面UPDATESTAFFREGISTERINFOJSP(1)页面内的表单(2)在该页面中将缓存在HTTPSERVLETREQUEST对象中的身份信息分别获得,并在页面表单中显示输出为此应用EL表达式获得对象中的相关成员属性,并将各个成员属性值显示输出。(3)修改该表单的提交的ACTION属性ACTION“PAGECONTEXTREQUESTCONTEXTPATH/STAFFINFOMANAGEACTIONDOUPDATESTAFFREGISTER_SAVERESULTACTION“(4)在该表单中增加一个隐藏字段,缓存该修改者的身份ID应用隐藏字段实现将修改者的身份ID再次转到服务器端相关的程序,从而定位该修改者的身份ID。4、修改STAFFINFOACTIONFORM并增加一个新的LOGINUSER_ID(修改者的主键ID)成员属性,并提供GET/SET方法PRIVATEINTLOGINUSER_IDPUBLICINTGETLOGINUSER_IDRETURNLOGINUSER_IDPUBLICVOIDSETLOGINUSER_IDINTLOGINUSERIDLOGINUSER_IDLOGINUSERID5、修改数据访问接口STAFFINFODAOINTERFACE,并增加新的方法PUBLICBOOLEANUPDATESTAFFREGISTERSTAFFINFOPOONESTAFFINFOPO6、修改接口STAFFINFODAOINTERFACE的实现类,完成UPDATESTAFFREGISTER方法的功能实现PUBLICBOOLEANUPDATESTAFFREGISTERSTAFFINFOPOONESTAFFINFOPOSESSIONSESSIONNULLTRANSACTIONTXNULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/STRINGUPDATEHQL“UPDATECOMPX1987BLUEDREAMCRMDAOPOSTAFFINFOPOASONESTAFFINFOPO“SETONESTAFFINFOPOLOGINUSER_USERNAME,ONESTAFFINFOPOLOGINUSER_USERPASSWORD,ONESTAFFINFOPOLOGINUSER_DEPARTMENTNAME,“ONESTAFFINFOPOSTAFFREALNAME,ONESTAFFINFOPOSTAFFWORKNO,ONESTAFFINFOPOSTAFFUNITNAME,ONESTAFFINFOPOSTAFFPHOTOIMAGEFILE,“ONESTAFFINFOPOSTAFFBIRTHDATE,ONESTAFFINFOPOSTAFFCOMEFROM“WHEREONESTAFFINFOPOLOGINUSER_ID“QUERYONEQUERYSESSIONCREATEQUERYUPDATEHQLONEQUERYSETSTRING0,ONESTAFFINFOPOGETLOGINUSER_USERNAMEONEQUERYSETSTRING1,ONESTAFFINFOPOGETLOGINUSER_USERPASSWORDONEQUERYSETSTRING2,ONESTAFFINFOPOGETLOGINUSER_DEPARTMENTNAMEONEQUERYSETSTRING3,ONESTAFFINFOPOGETSTAFFREALNAMEONEQUERYSETSTRING4,ONESTAFFINFOPOGETSTAFFWORKNOONEQUERYSETSTRING5,ONESTAFFINFOPOGETSTAFFUNITNAMEONEQUERYSETSTRING6,ONESTAFFINFOPOGETSTAFFPHOTOIMAGEFILEONEQUERYSETSTRING7,ONESTAFFINFOPOGETSTAFFBIRTHDATEONEQUERYSETSTRING8,ONESTAFFINFOPOGETSTAFFCOMEFROMONEQUERYSETINTEGER9,ONESTAFFINFOPOGETLOGINUSER_IDINTRETURNRESULTONEQUERYEXECUTEUPDATE/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNTRUE7、修改STAFFINFOACTION类中的DOUPDATESTAFFREGISTER_SAVERESULT方法响应修改注册信息的表单请求,并调用DAO中的相关的修改方法。PUBLICSTRINGDOUPDATESTAFFREGISTER_SAVERESULT/将表单对象中的相关的成员属性转存到PO对象/STAFFINFOPOONESTAFFINFOPONEWSTAFFINFOPOSTRINGSTAFFCOMEFROMONESTAFFINFOACTIONFORMGETPROVINCENAMESELECTTAGID“省“ONESTAFFINFOACTIONFORMGETCITYNAMESELECTTAGIDONESTAFFINFOACTIONFORMGETCOUNTRYNAMESELECTTAGIDONESTAFFINFOPOSETSTAFFCOMEFROMSTAFFCOMEFROMSTRINGSTAFFBIRTHDATEONESTAFFINFOACTIONFORMGETYEARSELECT“年“ONESTAFFINFOACTIONFORMGETMONTHSELECT“月“ONESTAFFINFOACTIONFORMGETDAYSELECT“日“ONESTAFFINFOPOSETSTAFFBIRTHDATESTAFFBIRTHDATEONESTAFFINFOPOSETSTAFFPHOTOIMAGEFILEONESTAFFINFOACTIONFORMGETSTAFFPHOTOIMAGEFILEONESTAFFINFOPOSETSTAFFUNITNAMEONESTAFFINFOACTIONFORMGETSTAFFUNITNAMEONESTAFFINFOPOSETLOGINUSER_USERNAMEONESTAFFINFOACTIONFORMGETLOGINNAME/下面的代码是获得没有加密之前的密码(也就是明文的密码)/STRINGORIGNALPASSWORDONESTAFFINFOACTIONFORMGETLOGINPASSWORD/下面对明文的密码进行加密转换,最终在数据库表中存储的密码为密文/ONESTAFFINFOPOSETLOGINUSER_USERPASSWORDNEWMD5JAVABEANGETKEYBEANOFSTRORIGNALPASSWORDSTRINGDEPARTMENTNAMENULLSWITCHONESTAFFINFOACTIONFORMGETDEPARTMENTTYPETAGIDCASE0DEPARTMENTNAME“市场部“BREAKCASE1DEPARTMENTNAME“开发部“BREAKCASE2DEPARTMENTNAME“技术支持部“BREAKCASE3DEPARTMENTNAME“产品部“BREAKCASE4DEPARTMENTNAME“系统维护部“BREAKONESTAFFINFOPOSETLOGINUSER_DEPARTMENTNAMEDEPARTMENTNAMEONESTAFFINFOPOSETSTAFFREALNAMEONESTAFFINFOACTIONFORMGETSTAFFREALNAMEONESTAFFINFOPOSETSTAFFWORKNOONESTAFFINFOACTIONFORMGETSTAFFWORKNO/注意一定要将通过隐藏表单字段所传递的主键ID缓存到PO对象中/ONESTAFFINFOPOSETLOGINUSER_IDONESTAFFINFOACTIONFORMGETLOGINUSER_IDBOOLEANUPDATERESULTSTAFFINFODAOIMPLEUPDATESTAFFREGISTERONESTAFFINFOPORETURN“UPDATESTAFFREGISTERSUCCESS“8、测试本功能的正确性113应用JAVASCRIPT实现对表单进行数据验证1、应用AJAX实现对表单中的验证码进行实时检查(1)相关的JS程序的代码VARXMLHTTPREQUESTFUNCTIONCHECKVERIFYCODEVALIDVERIFYCODEOBJECT,TARGETREQUESTURLVARVERIFYCODEINPUTEDVERIFYCODEOBJECTVALUEIFVERIFYCODEINPUTEDNULL|VERIFYCODEINPUTEDLENGTH0|VERIFYCODEINPUTED“WINDOWALERT“请输入系统提供的有效的系统验证码“VERIFYCODEOBJECTFOCUSRETURNFALSE/创建XMLHTTPREQUEST请求对象/XMLHTTPREQUESTCREATEXMLHTTPREQUEST/将获得服务器返回结果的响应输出函数“绑定”到XMLHTTPREQUEST对象实例中/XMLHTTPREQUESTONREADYSTATECHANGEGETCHECKVERIFYCODERESULTFROMSERVER/构造请求的连接,并向服务器端程序发送异步请求/XMLHTTPREQUESTOPEN“GET“,TARGETREQUESTURL“XMLHTTPREQUESTSENDNULL/创建XMLHTTPREQUEST请求对象/FUNCTIONCREATEXMLHTTPREQUESTVARLOCALXMLHTTPREQUESTIFWINDOWXMLHTTPREQUEST/表示用户的浏览器为FIREFOX等非IE系列,则应用XMLHTTPREQUEST对象模板创建出对象实例/LOCALXMLHTTPREQUESTNEWXMLHTTPREQUESTELSEIFWINDOWACTIVEXOBJECT/表示用户的浏览器为IE系列,则应用ACTIVEXOBJECT对象模板创建出对象实例/TRYLOCALXMLHTTPREQUESTNEWACTIVEXOBJECT“MSXML2XMLHTTP“CATCHETRYLOCALXMLHTTPREQUESTNEWACTIVEXOBJECT“MICROSOFTXMLHTTP“CATCHEWINDOWALERT“你的IE浏览器不支持XMLHTTPREQUEST相关的技术实现“RETURNLOCALXMLHTTPREQUEST/定义一个获得服务器返回结果的响应输出函数/FUNCTIONGETCHECKVERIFYCODERESULTFROMSERVER/(5)识别浏览器是否正在接收服务器端程序的返回值吗并识别是否接收完毕OK200/IFXMLHTTPREQUESTREADYSTATE4IFXMLHTTPREQUESTSTATUS200/(6)获得服务器返回的结果值提取出所接收的文本结果/SHOWCHECKVERIFYCODERESULTXMLHTTPREQUESTRESPONSETEXTELSEIFXMLHTTPREQUESTSTATUS400WINDOWALERT“你的请求无效“ELSEIFXMLHTTPREQUESTSTATUS404WINDOWALERT“你向服务端程序请求的URL不正确,未找到请求的目标文件“ELSEIFXMLHTTPREQUESTSTATUS500WINDOWALERT“服务器由于遇到错误而不能完成该请求“ELSEIFXMLHTTPREQUESTSTATUS505WINDOWALERT“HTTP版本不受支持“ELSEWINDOWALER

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论