什么是mvc中的控制器?它是 struts.xml 或者 Servlet (动作类)?我们能要不止一个吗 Controller 在我们的申请中?拥有多个控制器是一种好的做法吗?
struts.xml
Servlet
Controller
mrfwxfqh1#
控制器负责拦截用户输入并将其转换为模型执行的操作。控制器负责根据用户输入和模型操作的结果选择下一个视图。控制器接收来自浏览器的请求,调用业务操作并协调视图以返回给客户端。每当对任何资源的请求出现时,它首先会转到控制器。简单地说,我们可以说控制器是一个导航器。它的工作是为传入的请求找到相应的操作类,并将其传输到特定的操作。或者在技术上,我们可以说它执行Map。控制器由一个javaservlet实现,这个servlet是web应用程序的集中控制点。在struts框架中,控制器的职责由几个不同的组件实现,如actionservlet类requestprocessor类action类有关这方面的更多参考,请转到以下链接http://www.allapplabs.com/struts/struts_controller.htm
n6lpvg4x2#
预定义的servlet类是使用structs-config.xml来管理或控制整个应用程序的控制器。不,struts应用程序中不能有一个以上的控制器,这与mvc规则(应用程序中不能有一个以上的servlet)相反,struts是基于mvc设计的。
ncecgwcz3#
struts.xml是控制器。您可以看看这个struts2体系结构
ego6inou4#
你会知道的 MVC 代表模型-视图-控制器。简单地说,模型包含我们的业务组件和逻辑,视图包含我们的表示技术,控制器控制应用程序的控制流和工作。在 Struts struts有两个版本: Struts 1 以及 Struts 2 .
MVC
Struts
Struts 1
Struts 2
**这两个框架是不同的。
Struts1基于servlet。它有一个 ActionServlet 作为它的控制器。而在struts2中我们有过滤器。在这里,我们可以有类似的过滤器 FilterDispatcher 或者 StrutsPrepareAndExecuteFilter 作为我们的控制者。
ActionServlet
FilterDispatcher
StrutsPrepareAndExecuteFilter
**在Struts2中,动作充当模型。
控制器的主要工作是决定哪个动作类将处理哪个请求,控制器借助于我们在struts.xml文件中定义的配置或struts2中的注解来完成这项工作。
xriantvc5#
基于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
"component"
Custom Action classes
Struts ActionServlet
struts-config.xml
"Controller"
qco9c6ql6#
struts操作类实际上是控制器,因为它决定了在处理请求(从浏览器)时接下来应该发生什么。action类有一个包含控制器逻辑的execute方法。action类是使用命令模式的一个很好的例子。struts-config.xml包含路由信息,用于确定请求转发到哪个控制器(操作类)。拥有多个控制器是一种良好的做法,根据经验,每个视图拥有一个控制器,但这不是一个严格的规则,如果视图很复杂,并且具有值得在控制器内分离关注点的独特功能,则每个视图可能拥有多个控制器。另外,要注意不要用业务逻辑来加重控制器类的负担,这会导致控制器中的代码重复,因为代码应该分解到mvc应用程序模型层的业务类中。
4jb9z9bj7#
在struts中,应用程序控制器层代码/功能分为两部分: ActionServlet 与RequestHandler Action 班级 ActionServlet 就像前面的控制器模式。图片来自这篇onjava文章。
Action
lx0bsm1f8#
我们知道,如果我们使用的是mvc,那么必须有一个前端控制器,我们应该在web.xml中声明。i、 在struts2中有两个过滤器可用前端控制器1) org.apache.struts2.dispatcher.filterdispatcher 2)org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter这些前端控制器负责加载struts.xml文件在struts.xml中,每个formnameattributes都得到处理。操作完成后,控制器将返回要转发的页面(同样,此操作由前端控制器负责)。希望有帮助
2q5ifsrm9#
这个 ActionServlet 是控制员。在更广的范围内 ActionServlet 以及 RequestProcessor 以及 Action 以及来自 struts-config.xml 可以在struts应用程序中称为控制器。
RequestProcessor
9条答案
按热度按时间mrfwxfqh1#
控制器负责拦截用户输入并将其转换为模型执行的操作。控制器负责根据用户输入和模型操作的结果选择下一个视图。控制器接收来自浏览器的请求,调用业务操作并协调视图以返回给客户端。
每当对任何资源的请求出现时,它首先会转到控制器。简单地说,我们可以说控制器是一个导航器。它的工作是为传入的请求找到相应的操作类,并将其传输到特定的操作。或者在技术上,我们可以说它执行Map。
控制器由一个javaservlet实现,这个servlet是web应用程序的集中控制点。在struts框架中,控制器的职责由几个不同的组件实现,如
actionservlet类requestprocessor类action类
有关这方面的更多参考,请转到以下链接http://www.allapplabs.com/struts/struts_controller.htm
n6lpvg4x2#
预定义的servlet类是使用structs-config.xml来管理或控制整个应用程序的控制器。
不,struts应用程序中不能有一个以上的控制器,这与mvc规则(应用程序中不能有一个以上的servlet)相反,struts是基于mvc设计的。
ncecgwcz3#
struts.xml是控制器。您可以看看这个struts2体系结构
ego6inou4#
你会知道的
MVC
代表模型-视图-控制器。简单地说,模型包含我们的业务组件和逻辑,视图包含我们的表示技术,控制器控制应用程序的控制流和工作。
在
Struts
struts有两个版本:Struts 1
以及Struts 2
.**这两个框架是不同的。
Struts1基于servlet。它有一个
ActionServlet
作为它的控制器。而在struts2中我们有过滤器。在这里,我们可以有类似的过滤器
FilterDispatcher
或者StrutsPrepareAndExecuteFilter
作为我们的控制者。**在Struts2中,动作充当模型。
控制器的主要工作是决定哪个动作类将处理哪个请求,控制器借助于我们在struts.xml文件中定义的配置或struts2中的注解来完成这项工作。
xriantvc5#
基于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
qco9c6ql6#
struts操作类实际上是控制器,因为它决定了在处理请求(从浏览器)时接下来应该发生什么。action类有一个包含控制器逻辑的execute方法。action类是使用命令模式的一个很好的例子。
struts-config.xml包含路由信息,用于确定请求转发到哪个控制器(操作类)。拥有多个控制器是一种良好的做法,根据经验,每个视图拥有一个控制器,但这不是一个严格的规则,如果视图很复杂,并且具有值得在控制器内分离关注点的独特功能,则每个视图可能拥有多个控制器。
另外,要注意不要用业务逻辑来加重控制器类的负担,这会导致控制器中的代码重复,因为代码应该分解到mvc应用程序模型层的业务类中。
4jb9z9bj7#
在struts中,应用程序控制器层代码/功能分为两部分:
ActionServlet
与RequestHandler
Action
班级ActionServlet
就像前面的控制器模式。图片来自这篇onjava文章。
lx0bsm1f8#
我们知道,如果我们使用的是mvc,那么必须有一个前端控制器,我们应该在web.xml中声明。i、 在struts2中有两个过滤器可用
前端控制器
1) org.apache.struts2.dispatcher.filterdispatcher 2)org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter
这些前端控制器负责加载struts.xml文件
在struts.xml中,每个formnameattributes都得到处理。操作完成后,控制器将返回要转发的页面(同样,此操作由前端控制器负责)。
希望有帮助
2q5ifsrm9#
这个
ActionServlet
是控制员。在更广的范围内
ActionServlet
以及RequestProcessor
以及Action
以及来自struts-config.xml
可以在struts应用程序中称为控制器。