快速业务通道

Struts Controller - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

Struts Controller

时间:2011-01-11

关于controller中的Action:(ActionServlet也是多线程的)

因为Action类是线程安全的,所以在应用程序中创建Action类的唯一实例;Struts中使用lazy Singleton,也就是先判断是否存在实例,若不存在,则创建实例,且对创建实例的代码进行了Synchronization,从而保证同一时刻只有一个线程可以创建Struts的实例。

除此之外,确保Action类不使用实例变量来存储客户特有的状态,对于客户的特有状态,应该在execute中

使用局部变量来保存。

Struts中大量使用了Resource Wrapper

原理可以这样形容:所有在资源实际在配置文件中指定,然后再内存中由一个类的实例来代表,这样要修改资源配置的话,只需要修改相应的.xml文件就可以了

For Example:

config.ControllerConfig类 ----〉controller元素中配置的信息

ActionMapping-----> action元素,其中findForward()--->findForwardConfig()是否在动作级设定

forward,然后检查global-forward元素

ActionForward----->forward元素的;web资源的抽象,比如jsp页面和java servlet

Action类应把业务逻辑委托给模型组件

actions包中有五个action类:

ForwardAction:执行一个到parameter中配置的uri的forward。

IncludeAction:可以用来实现RequestDispatcher中的include();但我不是很清楚

DispatchAction:需要给出它的子类,为需要在服务上执行的每个功能添加一个方法(必须DispatchAction调用的Action类包含一个方法)在配置时必须定义parameter属性,它使用parameter的值决定调用什么方法

想法是把联合完成一个大功能的多个action类放在同一个类中

注意点:DispatchAction使用java Reflection 来调用正确的方法,但是这些方法必须为public

LookupDispatchAction:是DiapatchAction的子类,但是使用请求参数值,利用参数值反向查询资源邦定,并将其与类中的方法进行匹配

SwitchAction:支持从一个应用程序模块切换到另一个

两个参数:page(目的地)和prefix(源)

Struts中的实用类:

util中

RequestUtils:线程安全的,没有实例变量,且其中所有方法均为static的。协助处理一个请求

ResponseUtils:协助建立一个响应

beanutils中:

BeanUtils:populate():使用key/value映射,把data装入JavaBean中;

:getProperty():返回property的string表示

:getArrayProperty():string数组

PropertyUtils:getProperty():返回属性的值,不改变属性的类型。

commons:

FastHashMap:多线程的,是HashMap的子类,有slow和fast两种模式 .

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号