资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
高级软件人才实作培训专家高级软件人才实作培训专家! !StrutsStruts高级进阶高级进阶讲师:讲师:张孝祥struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !内容大纲内容大纲l回顾回顾Struts的请求处理时序图的请求处理时序图lStruts请求处理过程的源码分析与请求处理过程的源码分析与digesterl封装封装Formbean数据时的问题数据时的问题lValidator框架框架l防止表单重复提交防止表单重复提交l使用超连接的技巧使用超连接的技巧l修改信息的技巧修改信息的技巧l使用复选框的技巧使用复选框的技巧l使用下拉列表框的技巧使用下拉列表框的技巧l文件上传文件上传lDispatchAction的应用的应用struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !Struts的基本原理(1)ActionServlet用户请求ActionActionActionStruts-config.xmlWeb容器web.xmlstruts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !Struts的基本原理(2)ActionServletActionFormBeanValidate方法?是Input视图视图1视图2视图否Validate属性?是否ActionForwardActionForwardActionForwardstruts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !Struts的请求处理时序图的请求处理时序图struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !用户注册案例的实验基础预备l步骤:1.新建web工程2.把ActionServlet及相关类引进来3.在web.xml文件中配置ActionServlet4.进行简要的需求分析与设计(见下页)5.编写出各个部件(两个Action和两个jsp页面)6.在struts配置文件中配置各个组件7.在各个组件中编写代码把流程连接起来,在第一个jsp页面中暂时使用标签,先不引入表单。struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !注册用例的简要设计图RegUserActionUIRegUser.jspsuccessRegUserActionMain.jspsuccessstruts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !阶段与面试有关的目标1.什么是MVC模式?2.说说你对struts的理解?3.独立用struts做一个注册程序(这一阶段只要做出基本骨架就行)4.怎样防止struts配置文件的膨胀?5.说说软件开发的流程6.说说你在struts项目中使用的是什么标签库?7.能区分ActionMapping与Action的区别吗?8.配置文件中的action元素中有哪几个属性必须设置struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !用户注册案例的实验FormBean与l步骤1.在网页中添加原始的标签、三个输入框(用户名,密码,密码2)和一个提交按钮。2.由提交路径编写不方便引入和标签。3.根据提交的错误信息,引入formbean,创建和配置formbean,formbean中全部用基本属性的方式,在action中直接向response中打印出formbean的信息,然后进行访问测试。4.在formbean中引入复杂属性user实体对象,formbean中包含user实体对象和password2字段5.引入表单校验和input属性的讲解,当formbean的password2与user的password不相等时,则认为出错。6.用普通el表达式从formbean中提取数据回显。7.用标签进行错误信息提示,引入struts中的国际化讲解8.用html:text等标签进行数据回显,引出html:password要设置value的技巧。struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !阶段与面试有关的目标1.在action中可不可以直接向浏览器输出内容?2.struts配置文件中的action元素的attribute属性的作用?3.struts配置文件中的action元素的input属性的作用?struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !用户注册案例的实验与防止表单重复提交l标签的三个作用:1.生成html文档的标签;2.检查Session中是否存在Token,是则生成隐藏字段,以防止表单重复提交;3.获取action属性中路径所对应的formbean,存在则获取,不存在则创建新的,再把这个formbean以一个特殊关键字保存在request中,以便其中的标签获取值时使用。l步骤:1.在第一个Action中调用saveToken2.查看jsp页面的生成hidden字段3. 在第二个action中调用isTokenValid4.分析标签为什么能够回显示数据struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !用户注册案例的实验在注册页面增加一组复选框l步骤:1.用原始的html标签在网页中写出复选框列表,属性名称为specialities;2.在formbean中定义接受复选框参数的数组属性,并在action中打印出数组结果;3.将jsp页面中的复选框列表项的信息改为由控制器组件提供和用JSTL标签渲染;4.由表单校验出错后回到输入jsp页面无法正常显示复选框列表,引出action元素的input属性配置问题;5.完成表单校验出错后回到输入jsp页面时还能保留复选框的初始选择结果的jstl代码;6.使用完成复选框列表的自动生成和自动填充复选框内容。struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !用户注册案例的实验注册成功后的处理模式l步骤:1.修改第二个Action和结果页面,实现注册成功后显示出所有用户的效果。2.增加一个新的列表Action,专门实现显示出所有用户的效果。3.刷新列表页面出现问题,引出redirect类型的forward的讲解。struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !Struts开发一个用例的参考模式图struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !Validator框架框架l普通表单校验方式普通表单校验方式l使用使用Validator框架进行表单校验框架进行表单校验lValidator框架的原理与底层分析lStruts的Validator框架源码实现struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !需求说明需求说明l异地交易的零售商要频繁地接收客户的异地交易的零售商要频繁地接收客户的异地小额支付异地小额支付l手工管理邮局汇款和银行转账的方式效手工管理邮局汇款和银行转账的方式效率低下、交易周期过长率低下、交易周期过长l特别是网络在线类信息产品迫切需要实特别是网络在线类信息产品迫切需要实现实时交易现实时交易struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !在线即时支付系统的作用在线即时支付系统的作用l为用户和商户提供安全、高效、便捷的网络支为用户和商户提供安全、高效、便捷的网络支付服务付服务l促进网民对网络在线类信息产品的即时购买促进网民对网络在线类信息产品的即时购买l交易便利可直接扩大产品的销售量交易便利可直接扩大产品的销售量l电子商务网站必须具备的功能电子商务网站必须具备的功能struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !实现途径l银行即时转账银行即时转账l网络接入商(电信等)扣费网络接入商(电信等)扣费l电话电话/短信收费短信收费l整合多家支付方式的第三方平台整合多家支付方式的第三方平台指点迷津指点迷津 :商家网站为何不直接与银行电信对接,商家网站为何不直接与银行电信对接,却要去与第三方平台对接?却要去与第三方平台对接?struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !必须清楚的一些问题l商家网站的购买(下单)确认页面后的下一个页面是什么?l支付页面的下一个页面是什么?l支付确认页面的下一步动作是什么?l请求到支付平台是要附带哪些参数信息?l在线支付平台如何将支付信息反馈给商家网站?l在线支付平台处理完后给用户显示一个什么页面?struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! ! 技术实现lWebService调用调用lURL重定向重定向struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! ! WebService调用调用原理商家网站程序收费平台WebService客户端WebService服务器端发送转账请求接收处理结果远程代理对象转账方法调用本地转账处理对象转账方法调用struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !URL重定向重定向功能演示1struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !URL重定向重定向功能演示2struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !必须的编程技能lMD5技术的原理与应用lMD5的编码处理l站点自动登陆的原理与编码实现l组合多个请求参数的技巧struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !URL重定向处理细节重定向处理细节用户浏览器商家网站第三方平台(财富通/支付宝等)银行/电信及其他第三方平台发送结算请求返回结算确认页面确认结算请求平台返回结算清单及操作界面选择结算的银行、电信或第三方平台返回结算确认页面确认结算请求银行、电信或第三方平台返回结算清单及操作界面银行、电信处理完后将请求重定向到第三方平台第三方平台将请求重定向到商家网站struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !URL重定向处理细节重定向处理细节用户浏览器商家网站第三方平台(财富通/支付宝等)银行/电信及其他第三方平台确认结算请求平台返回结算清单及操作界面平台的最后处理操作返回重定向到商家网站的地址12重定向到商家网站进行收费后的处理. . . . . . .发送结算请求返回结算确认页面通知商家收费成功返回重定向地址第三方平台与银行的交互过程与此类似struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !财富通流程财富通流程struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !支付请求的参数字段名字段名填写填写类类型型说说明明cmdno必填业务代码,财付通支付支付接口填1date必填商户日期:如20051212bank_type必填银行类型:财付通支付填0desc必填交易的商品名称purchaser_id可选用户(买方)的财付通帐户,可以为空bargainor_id必填商家的商户号,有腾讯公司唯一分配transaction_id必填交易号(订单号),由商户网站产生(建议顺序累加),一对请求和应答的交易号必须相同)。transaction_id为28位长的数值,其中前10位为商户网站编号(SPID),由财付通统一分配;之后8位为订单产生的日期,如20050415;最后10位商户需要保证一天内不同的事务(用户订购一次商品或购买一次服务),其ID不相同。sp_billno必填商户系统内部的定单号,此参数仅在对账时提供。total_fee必填总金额,以分为单位fee_type必填现金支付币种,目前只支持人民币,码编请参见附件中的return_url必填接收财付通返回结果的URL(推荐使用ip)attach必填商家数据包,原样返回sign必填MD5签签名名例如:例如:“cmdno=1&date=20051219& bargainor_id=1000000301& transaction_id=112138& sp_billno=1111&total_fee=1300& fee_type=1&return_url= attach=1&key=1000000301”注意:以上拼凑值不要有空格!使用标准MD5算法对该字符串进行加密,加密结果全部转换成大写后,即为我们所需的订单MD5校验码,将其写入sign字段即可。struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !支付通知的参数目的目的URL$RETURN_URLQ1字段名字段名填写填写类类型型说说明明cmdno必填任务代码1pay_result必填支付结果,详见“返回值编码定义”,0成功pay_info可选支付结果信息,支付成功时为空date必填商户日期bargainor_id必填卖方账号(商户spid)transaction_id必填财付通交易号(订单号)sp_billno必填商户系统内部的定单号,此参数仅在对账时提供。total_fee必填订单总金额,以分为单位fee_type必填现金支付币种attach必填商家数据包,原样返回sign必填MD5签签名名例如:例如:cmdno=1&pay_result=0& date=20051220&transaction_id=100004& sp_billno=k0000000001&total_fee=100& fee_type=1&attach=test_attach&key=1000000301注意:以上拼凑值不要有空格!使用标准MD5算法对该字符串进行加密,加密结果全部转换成大写后,即为我们所需的订单MD5校验码struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !支付网关的Web层协作图PayGate支付请求PayAffirm.jspPayDeal支付通知确认应答PayResponsePayRequest商家浏览器struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !PayGate Servlet的处理流程1.将请求参数组装成Bean对象2.获取商户的key3.校验参数的有效性4. 将请求Bean对象保存到Session中5. 显示支付提示和确认页面struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !PayDeal Servlet的处理流程1.校验用户名和密码2.检查用户余额3.将用户余额减少4.记录交易日志5.通知商户交易成功 5.1 将通知信息封装为Bean对象 5.2 将通知Bean对象生成通知参数 5.3 使用URLConnection类访问商家的Servlet6.校验商户响应结果7.根据商户的url回应客户端浏览器struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !Tip4:解决Web开发中的相对路径问题l如果如果logon.jsplogon.jsp页面的内容如下,页面的内容如下,LogonServletLogonServlet内部在登录失败时将请求内部在登录失败时将请求又转发给又转发给logon.jsplogon.jsp,元素中的元素中的actionaction属性设置会有什么问题属性设置会有什么问题? ?* *第二次访问的路径相对第二次访问的路径相对logon.jsplogon.jsp的路径为的路径为servlet/servlet/LogonServletservlet/servlet/LogonServletl解决方案:解决方案:张孝祥struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !Tip5:为网站配置相同页眉和页脚的技巧为网站配置相同页眉和页脚的技巧l常见的应用:常见的应用:与l一般人不知道的应用:一般人不知道的应用:*.jsp/header.jsp/footer.jspstruts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !页面布局代码的重用l要生成一批如左图所示的具有相同页眉,页尾,以及左侧栏的页面,这些页面的内容不同,要想充分实现HTML代码的复用,每个页面应该用几个局部网页来合成呢?l页面布局代码:headerMenu”footer l页面布局代码的重用方式:Apache的Tiles框架Filter + 布局文件(例如,Sitemesh)struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !Tip6:Web开发中的各种字符乱码问题l字符编码的基本理论字符编码的基本理论 举例:记事本的中文乱码问题,xml的字符编码问题lJavaJava程序编译时的中文乱码分析程序编译时的中文乱码分析lJavaJava程序运行时的中文乱码分析程序运行时的中文乱码分析 举例:更改操作系统的Locale,利用PrintWriter/PrintStream输出字符串lServletServlet输出时的中文乱码分析输出时的中文乱码分析lServletServlet读取请求参数时的中文乱码分析读取请求参数时的中文乱码分析lJSPJSP的乱码分析的乱码分析lServletServlet实现文件下载时的中文文件名的乱码分析实现文件下载时的中文文件名的乱码分析lApacheApache文件上传组件所遇到的中文乱码分析文件上传组件所遇到的中文乱码分析l利用利用Javamail APIJavamail API创建创建MIMEMIME邮件时的中文乱码分析邮件时的中文乱码分析lMysqlMysql数据库的中文乱码分析数据库的中文乱码分析lAjaxAjax中的字符乱码问题分析中的字符乱码问题分析l请求参数不进行请求参数不进行urlurl编码导致长度为奇数的中文字符串的最后一个字符混乱编码导致长度为奇数的中文字符串的最后一个字符混乱struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !JSP程序所涉及到的字符编码转换程序所涉及到的字符编码转换 struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !字符乱码与解决办法的原理分析字符乱码与解决办法的原理分析struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !推荐我所编写的书籍lJavaJava就业培训教程就业培训教程lJavascriptJavascript网页开发网页开发lJavaJava邮件开发详解邮件开发详解l深入体验深入体验Java WebJava Web开发内幕开发内幕核心基础核心基础l深入体验深入体验Java WebJava Web开发内幕开发内幕高级特性高级特性struts高级进阶高级软件人才实作培训专家高级软件人才实作培训专家! !结束语结束语 热烈欢迎各软件公司到传智热烈欢迎各软件公司到传智播客公司预定和招聘软件开发播客公司预定和招聘软件开发人才!人才!谢谢!谢谢!struts高级进阶
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号