struts中的java控制器

tuwxkamq  于 2021-07-05  发布在  Java
关注(0)|答案(9)|浏览(269)

什么是mvc中的控制器?
它是 struts.xml 或者 Servlet (动作类)?
我们能要不止一个吗 Controller 在我们的申请中?
拥有多个控制器是一种好的做法吗?

mrfwxfqh

mrfwxfqh1#

控制器负责拦截用户输入并将其转换为模型执行的操作。控制器负责根据用户输入和模型操作的结果选择下一个视图。控制器接收来自浏览器的请求,调用业务操作并协调视图以返回给客户端。
每当对任何资源的请求出现时,它首先会转到控制器。简单地说,我们可以说控制器是一个导航器。它的工作是为传入的请求找到相应的操作类,并将其传输到特定的操作。或者在技术上,我们可以说它执行Map。
控制器由一个javaservlet实现,这个servlet是web应用程序的集中控制点。在struts框架中,控制器的职责由几个不同的组件实现,如
actionservlet类requestprocessor类action类
有关这方面的更多参考,请转到以下链接http://www.allapplabs.com/struts/struts_controller.htm

n6lpvg4x

n6lpvg4x2#

预定义的servlet类是使用structs-config.xml来管理或控制整个应用程序的控制器。
不,struts应用程序中不能有一个以上的控制器,这与mvc规则(应用程序中不能有一个以上的servlet)相反,struts是基于mvc设计的。

ncecgwcz

ncecgwcz3#

struts.xml是控制器。您可以看看这个struts2体系结构

ego6inou

ego6inou4#

你会知道的 MVC 代表模型-视图-控制器。
简单地说,模型包含我们的业务组件和逻辑,视图包含我们的表示技术,控制器控制应用程序的控制流和工作。
Struts struts有两个版本: Struts 1 以及 Struts 2 .

**这两个框架是不同的。

Struts1基于servlet。它有一个 ActionServlet 作为它的控制器。
而在struts2中我们有过滤器。在这里,我们可以有类似的过滤器 FilterDispatcher 或者 StrutsPrepareAndExecuteFilter 作为我们的控制者。

**在Struts2中,动作充当模型。

控制器的主要工作是决定哪个动作类将处理哪个请求,控制器借助于我们在struts.xml文件中定义的配置或struts2中的注解来完成这项工作。

xriantvc

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

qco9c6ql

qco9c6ql6#

struts操作类实际上是控制器,因为它决定了在处理请求(从浏览器)时接下来应该发生什么。action类有一个包含控制器逻辑的execute方法。action类是使用命令模式的一个很好的例子。
struts-config.xml包含路由信息,用于确定请求转发到哪个控制器(操作类)。拥有多个控制器是一种良好的做法,根据经验,每个视图拥有一个控制器,但这不是一个严格的规则,如果视图很复杂,并且具有值得在控制器内分离关注点的独特功能,则每个视图可能拥有多个控制器。
另外,要注意不要用业务逻辑来加重控制器类的负担,这会导致控制器中的代码重复,因为代码应该分解到mvc应用程序模型层的业务类中。

4jb9z9bj

4jb9z9bj7#

在struts中,应用程序控制器层代码/功能分为两部分: ActionServlet
RequestHandler Action 班级 ActionServlet 就像前面的控制器模式。

图片来自这篇onjava文章。

lx0bsm1f

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都得到处理。操作完成后,控制器将返回要转发的页面(同样,此操作由前端控制器负责)。
希望有帮助

2q5ifsrm

2q5ifsrm9#

这个 ActionServlet 是控制员。
在更广的范围内 ActionServlet 以及 RequestProcessor 以及 Action 以及来自 struts-config.xml 可以在struts应用程序中称为控制器。

相关问题