【精品】struts应用技术深入(2精品ppt课件.ppt

上传人:1595****071 文档编号:86274034 上传时间:2023-04-14 格式:PPT 页数:23 大小:1.32MB
返回 下载 相关 举报
【精品】struts应用技术深入(2精品ppt课件.ppt_第1页
第1页 / 共23页
【精品】struts应用技术深入(2精品ppt课件.ppt_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《【精品】struts应用技术深入(2精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】struts应用技术深入(2精品ppt课件.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Struts应用技术深入(2)1 1、扩展、扩展StrutsStruts系统系统 (1 1)StrutsStruts的可扩展性的可扩展性由于在实际应用中,一定会有一些特定的应用需求是框架由于在实际应用中,一定会有一些特定的应用需求是框架的设计者们无法预见到的,因此框架的设计者则应该允许框架的设计者们无法预见到的,因此框架的设计者则应该允许框架使用者对框架进行扩展使用者对框架进行扩展(2 2)扩展)扩展StrutsStruts系统的几种方式系统的几种方式qPlugInPlugIn技术:技术:如果我们想在如果我们想在WebWeb应用启动或终止的时候做一应用启动或终止的时候做一些业务逻辑的话,那就创

2、建我们自己的些业务逻辑的话,那就创建我们自己的PlugInPlugIn类。类。q继承继承RequestProcessorRequestProcessor类类可以实现对请求进行验可以实现对请求进行验证,从而可以代替证,从而可以代替FilterFilter的功能的功能p继承继承ActionServletActionServlet类类2 2、开发、开发StrutsStruts的插件实现扩展的插件实现扩展StrutsStruts(1 1)StrutsStruts插件插件 Struts Struts提供了一个提供了一个PlugInPlugIn接口,利用用它来创建在接口,利用用它来创建在WebWeb应用应

3、用启动时就需要的初始化定制服务。启动时就需要的初始化定制服务。(2 2)应用的场合)应用的场合 当希望所扩展的功能能够与当希望所扩展的功能能够与StrutsStruts系统平台融合在一起,系统平台融合在一起,并且在容器启动时就希望加载该扩展的组件并且在容器启动时就希望加载该扩展的组件可以实现对请求进行一可以实现对请求进行一般的转换,从而也可般的转换,从而也可以代替以代替FilterFilter的功能的功能(3 3)StrutsStruts插件的类型插件的类型q第三方的第三方的StrutsStruts插件插件q用户自定义的用户自定义的 StrutsStruts插件插件(4 4)PluginPlu

4、gin接口说明接口说明-init()-init()和和destory()destory()方法方法 (5 5)插件的生命周期方法的执行过程)插件的生命周期方法的执行过程q在在strutsstruts应用程序启动的时候,应用程序启动的时候,ActionServletActionServlet通过通过init()init()方法实例每一个方法实例每一个PluginPlugin。q可以在可以在init()init()方法中放一些需要初始化的东西。方法中放一些需要初始化的东西。q对于对于destorydestory()()方法它将在你的应用程序结束时调用方法它将在你的应用程序结束时调用(4 4)解决的

5、方法)解决的方法通过在每个表单中放入一个通过在每个表单中放入一个hiddenhidden字段来标示字段来标示(5 5)该方法的基本原理)该方法的基本原理p在在htmlhtml的表单中提供了的表单中提供了控件,利控件,利用它进行传递数据;用它进行传递数据;p因为,每当表单进行提交时,其数据值也会传递到服务器端。因为,每当表单进行提交时,其数据值也会传递到服务器端。这样我们只需要识别该字段得这样我们只需要识别该字段得值,也就了解了是那个表单提值,也就了解了是那个表单提交交您知道该表单域有您知道该表单域有什么特点吗?什么特点吗?3 3、DynaActionFormDynaActionForm类(虚拟

6、类(虚拟ActionFormActionForm技术)技术)(1 1)ActionFormActionForm类的主要作用类的主要作用q利用利用ActionFormActionForm类来包装类来包装HTMLHTML表单中的数据,从而以面向表单中的数据,从而以面向对象的方式进行表单的数据操作对象的方式进行表单的数据操作q同时还可以在同时还可以在ActionFormActionForm类中通过重写类中通过重写resetreset和和validatevalidate方法以实现对表示层表单中的用户输入的数据进行复位和方法以实现对表示层表单中的用户输入的数据进行复位和验证验证(2 2)ActionFo

7、rmActionForm类及其所存在的问题类及其所存在的问题q对于大型的对于大型的Struts WebStruts Web应用项目,由于有大量的表单存在,应用项目,由于有大量的表单存在,从而需要针对每一个表单设计出对应的从而需要针对每一个表单设计出对应的ActionFormActionForm类组件类组件-最终会产生大量的表单对象!最终会产生大量的表单对象!q另外它与表单相绑定,因此如果在另外它与表单相绑定,因此如果在HTMLHTML表单中的某一字段发表单中的某一字段发生变化,则必须修改并重新编译对应的生变化,则必须修改并重新编译对应的ActionFormActionForm组件类。组件类。(

8、3 3)解决的方法)解决的方法 为了减少编程实现所带来的不灵活性和减少表单与为了减少编程实现所带来的不灵活性和减少表单与ActionFormActionForm组件之间的藕合性,组件之间的藕合性,StrutsStruts系统中提供了系统中提供了DynaActionFormDynaActionForm类技术类技术(4 4)DynaActionFormDynaActionForm类的基本原理类的基本原理qDynaActionFormDynaActionForm类(它是类(它是ActionFormActionForm类的子类),因此保类的子类),因此保留了原来的留了原来的ActionFormActi

9、onForm类的类的所有功能所有功能q创建的方法创建的方法 在在struts-struts-config.xmlconfig.xml配置文件中针对每一个配置文件中针对每一个HTMLHTML表单表单以配置的方式配置出所需的虚拟以配置的方式配置出所需的虚拟ActionFormActionForm组件组件(5 5)配置实现虚拟)配置实现虚拟ActionFormActionForm的主要步骤的主要步骤q配置一个配置一个标签元素并将其标签元素并将其typetype属性数值为属性数值为DynaActionFormDynaActionForm类或者它的某个子类类或者它的某个子类q在在标签元素内针对标签元素内

10、针对HTMLHTML表单中的每个字段提供表单中的每个字段提供一个一个标签元素以声明该字段的名称和数据标签元素以声明该字段的名称和数据类型类型q通过在通过在标签中提供标签中提供initialinitial属性来为每个属性来为每个字段提供初始值字段提供初始值(6 6)在)在ActionAction类中获得属性字段的值类中获得属性字段的值q与与ActionFormActionForm的访问方法不同点的访问方法不同点如果使用如果使用DynaActionFormDynaActionForm,系统将各个属性成员保存在系统将各个属性成员保存在一个一个HashMapHashMap类对象中类对象中因此应该采用因

11、此应该采用get(“name”)get(“name”)和和set(“name”)set(“name”)方法来访方法来访问成员属性(其中参数问成员属性(其中参数namename是要访问的是要访问的HTMLHTML表单中的属表单中的属性名)性名)q示例代码示例代码(1 1)技术背景)技术背景q采用了采用了DynaActionFormDynaActionForm类类后,由于不再存在了具体的组件类后,由于不再存在了具体的组件类代码,因此也无法再提供代码,因此也无法再提供reset()reset()和和validate()validate()方法方法q从而也丧失了原来在从而也丧失了原来在ActionFo

12、rmActionForm中的对表单中的数据提供的中的对表单中的数据提供的验证手段验证手段(2 2)解决的方法)解决的方法为了既能够减少对为了既能够减少对ActionFormActionForm组件的编程,同时也还能够组件的编程,同时也还能够继续提供数据验证,可以采用继续提供数据验证,可以采用对对DynaActionFormDynaActionForm类进行定制类进行定制4 4、对、对DynaActionFormDynaActionForm类进行定制类进行定制(4 4)代码示例)代码示例(3 3)实现的步骤)实现的步骤q编程实现自己的编程实现自己的DynaActionFormDynaAction

13、Form类并重写类并重写resetreset方法方法q同时也重写同时也重写validate()validate()方法以编程实现数据验证方法以编程实现数据验证q在在struts-struts-config.xmlconfig.xml文件中的文件中的标签中配置指定标签中配置指定自己的自己的DynaActionFormDynaActionForm类类(5 5)在)在struts-struts-config.xmlconfig.xml文文件中的件中的form-bean标签中标签中配置指定自己配置指定自己的的DynaActionFormDynaActionForm类类6 6、DispatchActio

14、nDispatchAction类的使用类的使用(1 1)其作用)其作用主要是用于分发的主要是用于分发的ActionAction;其主要的好处是把一些功能类似的;其主要的好处是把一些功能类似的ActionAction放到一个放到一个ActionAction类中,从而减少类中,从而减少ActionAction类的个数。类的个数。(2 2)org.apache.struts.actions.DispatchActionorg.apache.struts.actions.DispatchAction类类注意它也是从注意它也是从ActionAction类继承类继承(3 3)实现的方法(参考实现的方法(参

15、考UserLoginUserLogin)q设计一个表示层页面设计一个表示层页面p设计完成上面的两个功能的设计完成上面的两个功能的DispatchActionDispatchAction类类p在在struts-struts-config.xmlconfig.xml文件中进行文件中进行DispatchActionDispatchAction类的配置类的配置p执行该执行该WebWeb应用应用注意注意methodNamemethodName与前面的与前面的URLURL中的参数名称相同中的参数名称相同7 7、StrutsStruts中的异常处理机制和技术中的异常处理机制和技术 (1 1)JavaJava

16、语言中的异常处理语言中的异常处理q系统级异常系统级异常-与应用的逻辑无关,需要由系统平台提供商与应用的逻辑无关,需要由系统平台提供商的开发者来处理该类异常的开发者来处理该类异常q应用级异常应用级异常-由于用户违背了商业业务逻辑而导致的错误,由于用户违背了商业业务逻辑而导致的错误,这种错误一般不是致命的这种错误一般不是致命的(2 2)异常处理异常处理的基本原则的基本原则q要注意不要要注意不要让用户看到让用户看到原始的原始的JavaJava异常信息异常信息对此原则在前对此原则在前面的面的WebWeb编编程技术时也程技术时也已经提及!已经提及!q可以将原始的可以将原始的JavaJava异常信息记录到

17、日志文件中异常信息记录到日志文件中q在控制层或者表示层的组件中捕获用户自定义的异常在控制层或者表示层的组件中捕获用户自定义的异常您觉得这样的方式有什么问题吗?您觉得这样的方式有什么问题吗?(3 3)在)在StrutsStruts的的WebWeb系统中异常处理的方式系统中异常处理的方式q编程方式进行异常处理编程方式进行异常处理对于异常的处理,主要是采用对于异常的处理,主要是采用try/catchtry/catch等等捕获等等捕获异常,然后定制个性化的比较详细的错误信息放进异常,然后定制个性化的比较详细的错误信息放进ActionErrorActionError中,然后在具体的返回页面中把这些中,然

18、后在具体的返回页面中把这些错误信息反馈给用户(包括开发员)。错误信息反馈给用户(包括开发员)。不可避免地不可避免地会产生会产生硬编码硬编码的后果,的后果,增强了增强了与错误与错误信息的信息的藕合度藕合度p以配置的方式进行异常处理以配置的方式进行异常处理要定义应用程序的逻辑流程,成熟的经验是推荐在代码要定义应用程序的逻辑流程,成熟的经验是推荐在代码之外,用配置的方法来实现,而不是硬编码地方式写死之外,用配置的方法来实现,而不是硬编码地方式写死在程序代码中的在程序代码中的此种方法在对错误的信息、跳转的目标地址和错误处理此种方法在对错误的信息、跳转的目标地址和错误处理的页面等方面都具有较好的灵活度的

19、页面等方面都具有较好的灵活度(4 4)创建用户的自己异常处理类)创建用户的自己异常处理类q目的:定制个性化的比较详细的错误信息目的:定制个性化的比较详细的错误信息(5 5)与异常设置相关的标签)与异常设置相关的标签-全局异常的设置全局异常的设置对所有的对所有的ActionAction都可以适用都可以适用p示例代码:示例代码:请见文档请见文档(6 6)与异常设置相关的标签)与异常设置相关的标签-局部异常的设置局部异常的设置 只对本只对本ActionAction适用适用指定错误提示文字指定错误提示文字的资源字符串文的资源字符串文件中的件中的keykey名称名称1 1、子曰:、子曰:“学而不思则罔,思而不学则殆。学而不思则罔,思而不学则殆。”“学而时习之学而时习之”2 2、子曰:子曰:“知之者不如好之者知之者不如好之者,好之者不如乐之者好之者不如乐之者”3 3、子曰:、子曰:“三人行三人行,必有我师焉必有我师焉”4 4、子曰:子曰:“我非生而知之者我非生而知之者,好古好古,敏以求之者也敏以求之者也”5 5、师者:师者:“传道、授业和解惑传道、授业和解惑”努力学习以实现自己的人生理想和目标努力学习以实现自己的人生理想和目标

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁