编程教程
您现在的位置: 中国个人站长站 >> 网络编程 >> Javascript >> 教程正文 Struts Controller
推荐位

Struts Controller

中国个人站长站 Javascript 点击数: 更新时间:2007-7-28 1:18:08
关于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两种模式


教程录入:swh    责任编辑:swh 
个人站长站与你风雨同舟!
本站所提供的资源均来源于互联网,如有侵权行为,请与本站管理员联系,我们会第一时间删除!
·如果您发现《Struts Controller》文章有错误,也请通知我们修改!
联系邮箱chinageren#126.com,谢谢支持!
站内搜索:
广告服务 | 友情链接 | 联系我们 | 免责声明 | 用户留言 | 网站导航
版权所有:中国个人站长站 2007-2008 未经授权禁止复制或建立镜像 客服QQ号:112731235
copyright © 2007-2008 www.ChinaGeRen.com online services. all rights reserved. 苏ICP备05000059号