什么是MVC中的控制器?Struts中的控制器
是struts.xml
还是Servlet
(Action Class)?
我们的应用程序中是否可以有多个Controller
?
拥有多个控制器的好习惯吗?
什么是MVC中的控制器?Struts中的控制器
是struts.xml
还是Servlet
(Action Class)?
我们的应用程序中是否可以有多个Controller
?
拥有多个控制器的好习惯吗?
ActionServlet
是控制器IMO。
在更广泛的范围的ActionServlet
与RequestProcessor
和Action
和初始化信息从struts-config.xml
一起可以被称为在支柱应用控制器。
在Struts中,应用控制器层代码/功能被分成两个部分:
ActionServlet
与RequestHandler
Action
类ActionServlet
行为像FrontController pattern。
alt text http://onjava.com/onjava/2005/11/02/graphics/figure3.gif
struts Action类实际上是Controller,因为它决定了在处理请求(从浏览器)中接下来会发生什么。 Action类有一个包含控制器逻辑的执行方法。 Action类是使用Command Pattern的一个很好的例子。
struts-config.xml包含确定请求被转发到哪个Controller(Action类)的路由信息。 拥有多个控制器是一种很好的做法,根据经验,每个视图都有一个控制器,但这不是严格的规则,并且如果视图非常复杂并且具有不同的功能,则每个视图可能有多个控制器这有利于控制者内部关注的分离。另外,注意不要让业务逻辑负担您的控制器类,这会导致代码在应用程序中的代码重复分配给MVC应用程序的Model层中的业务类时重复。
如您所知MVC
代表模型 - 视图 - 控制器。
简单地说,Model包含我们的业务组件和逻辑,View包含我们的Presentation技术,Controller控制应用程序的控制和工作流程。
在Struts
有Struts的两个版本:Struts 1
和Struts 2
。
**这两个是不同的框架。
Struts 1基于Servlets。它有一个作为其控制器的ActionServlet
。
虽然在Struts 2中我们有过滤器。在这里,我们可以使用像FilterDispatcher
或StrutsPrepareAndExecuteFilter
这样的过滤器作为我们的控制器。
**在Struts 2中,操作充当模型。
控制器的主要工作是决定哪个Action类将处理该请求,并控制这是否符合配置的通过我们的struts.xml文件,或在注解Struts的2
A的情况下定义的帮助基于Struts的控制器是由很多部分组成的"component"
。 Custom Action classes
由应用程序开发人员编写。 Struts ActionServlet
由框架提供。 struts-config.xml
配置文件由应用程序开发人员编写。读取此文件并创建Action *的代码由框架提供。所有这些因素一起是"Controller"
有关Struts操作包的详细信息,请参见下面的API文档:
http://struts.apache.org/1.x/apidocs/org/apache/st...ts/action/package-summary.html
struts.xml中是控制器。你可以看看这个Struts 2 Architecture
正如我们知道,如果我们使用MVC必须有一个前端控制器,我们应该在web.xml中声明。即,在struts2的可有两个过滤器
前端控制器
1)org.apache.struts2.dispatcher.FilterDispatcher 2)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
而这些前端控制器负责装载的struts.xml文件
在struts.xml中每个形式名attribut es正在处理中。 操作完成后,控制器将返回到要转发的页面(此操作由前端控制器负责维护)。
希望它可以帮助
预定义的servlet类是使用 结构-config.xml文件来管理或控制整个应用程序控制器。
不,你不能在你的支柱多个控制器 应用它只是对MVC规则(即你不能在你的应用程序更 不止一个的servlet)支柱基于MVC的设计。
控制器负责截取并将用户输入转换为模型要执行的动作。控制器负责根据用户输入和模型操作的结果选择下一个视图。 Controller从浏览器接收请求,调用业务操作并协调视图返回给客户端。
无论何时对任何资源的请求到来,都会首先进入控制器。简而言之,我们可以说控制器是一个导航器。其工作是为传入请求找到相应的操作类并将其转移到该特定操作。 或者在技术上,我们可以说它执行映射。
他控制器是由一个Java servlet来实现,这个servlet是Web应用控制的集中点。在struts框架控制器职责是由几个不同的组件,如
你实现的ActionServlet类 的的RequestProcessor类 Action类
更多参考这个可以去下面的链接 http://www.allapplabs.com/struts/struts_controller.htm