Struts Controller

关于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两种模式 .

时间: 2024-10-07 12:52:23

Struts Controller的相关文章

集成 Struts、Tiles 和 JavaServer Faces

server 内容:JSF 简介为什么将这三者集成为一体?将 Struts 和 JSF 与 Struts-Faces 集成将Struts 应用程序移植到 JSF集成 Struts-Faces 和 Tiles 的挑战到目前为止所作的改变参考资料 作者简介对本文的评价相关内容:Struts, an open-source MVC implementationStruts and Tiles aid component-based developmentUI development with Java

利用开源项目Hibernate开发Blog系统

项目 开发工具采用MYECLIPS3.6,首先是建立项目,导入STRUTS+HIBERNATE包,然后配置SRC跟目录下的hibernate.cfg.xml.我采用的是MYSQL数据库,所以配置如下: <hibernate-configuration>     <session-factory>        <!-- properties -->        <property name="connection.username">r

Struts框架之构建Controller组件

一.概述 在Struts 架构中,Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action.ActionMapping.ActionForward这几个组件协调完成.其中,Action扮演了真正的业务逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向. 应用程序的 Controller 部分集中于从客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么商业逻辑功能,然后将产生下一步用户界面的

新手学Struts(一)----JSP+Servlet讲解MVC实现原理

MVC基本原理 一个简单的例子 改良的例子 Struts基本流程的实现     最近在学SSH(Struts+ Hibernate+Spring),这也算是一个比较经典的框架了,之前都是看人家大牛说这个框架,那个框架,说的真溜,自己也是佩服的五体投地啊~~     现在开始自己也要捣鼓捣鼓这些东西,还是有点小激动哒~~,Struts是基于MVC框架实现的,今天主要讲讲Struts的实现过程. MVC基本原理     MVC框架,相信大家也都已经耳熟蓝(能)翔(详)了! 1.终端接受到用户的请求,

初学者经典:专家谈Struts入门的经验

初学 Struts安装: 首先请到http://jakarta.apache.org/Struts下载Struts,建议使用release版,现在最高版本为1.1,下载后得到的是一个ZIP文件. 将ZIP包解开,可以看到这个目录:lib和webapps,webapps下有一些WAR文件.假设你的Tomcat装在c:\Tomcat下,则将那些WAR文件拷贝到C:\Tomcat\webapps,重新启动Tomcat即可. 打开浏览器,在地址栏中输入:http://localhost:8080/Str

Struts VS Spring 两种MVC框架比较

比较 基于Web的MVC framework在J2EE的世界内已是空前繁荣.TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC 框架有Spring MVC.Tapestry.JSF等.这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica.VRaptor等.这些框架都提供了较好的层次分隔能力.在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高. 如何选择

Eclipse开发struts完全指南

一.准备安装程序 1.JDK 5.0 安装程序下载 下载地址: https://jsecom15b.sun.com/ECom/EComActionServlet/DownloadPage:~:com.sun.sunit.sdlc.content.DownloadPageInfo;jsessionid=502E87C71D77E3BC297C08B35DAC9AD4;jsessionid=502E87C71D77E3BC297C08B35DAC9AD4 同意协议后,可以下载jdk-1_5_0_05

Struts框架在小区物业管理系统中的应用

摘要  Struts提供了一个非常好的MVC框架,在Web应用开发中把界面和业务逻辑分离,提高了代码的可重用性和灵活性.文中首先介绍了Struts概念和体系结构,阐述了Struts的工作原理.然后介绍了小区物业管理系统各个功能模块以及整个系统基于Struts的开发流程.最后,通过一个应用示例,详细介绍了Struts框架在系统开发中的应用. 关键词  MVC:Struts框架:Web:物业管理系统:  前言  物业管理系统是近年来为适应小区建设和管理而兴起的一种新型产业,它的出现为住宅小区的现代化

基于MVC的Struts在财务系统中的应用

摘要 对于项目开发人员来说,要加快系统的开发速度.提高系统的可维护性和可扩展性,首要的任务是划分好系统的层次结构,合理地设计表示逻辑.业务处理逻辑和数据逻辑.MVC模式就是一个很好的将表示.控制和业务处理相分离的解决方案,本文则主要介绍了Struts框架下的财务系统的设计和实现. 关键词  MVC模式:Struts框架:Web应用 中图分类号 TP391      文献标识码  A 引言 软件开发工作中遇到的很多问题都可能在以往开发同类软件的过程中同样出现过并且已经被解决,解决问题时所用到的好的