专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Struts2工作流程详解

Struts2工作流程详解

更新时间:2022-10-21 10:36:53 来源:赢咖4 浏览647次

Struts2是大家要学习的课程,感兴趣的小伙伴可以看看本站的Struts2视频教程,里面的课程内容细致全面,通俗易懂,适合没有基础的小伙伴学习。下面我来了解一下Struts2工作流程。

Struts 2 基本流程

从上图让我们讨论 Struts 2 的流程。下面提到的是步骤:

发送来自用户的操作请求。

ActionInvocation 由控制器调用

ActionInvocation 调用每个拦截器和操作

已生成结果

生成的结果被发送回 ActionInvocation

生成一个 HttpServletResponse

生成的响应发送给用户

Struts 2 标准流程(Struts 2 架构)

从顶层的角度来看,基本上 Struts 2 是一个 MVC2 框架。Struts 2 中模型-视图-控制器模式的五个核心组件是

行动

拦截器

价值堆栈/OGNL

结果/结果类型

查看技术

从上图可以看出——

控制器是使用 Struts 2 调度程序 servlet 过滤器和拦截器实现的。

该模型是使用动作实现的。

该视图是使用结果类型和结果实现的。

值堆栈和 OGNL 可用于提供公共线程、链接和启用其他组件之间的集成。

Struts 2 架构的流程:

现在让我们讨论一下 Struts 2 架构的流程

容器检查 web.xml 文件中的请求并获取控制器的类名。

Container 形成控制器(StrutsPrepareAndExecuteFilter 或 FilterDispatcher)。从struts2.1开始,就是StrutsPrepareAndExecuteFilter。在 2.1 之前它是 FilterDispatcher。

控制器从 ActionMapper 获取操作的信息

控制器形式的 ActionProxy

ActionProxy 从从 struts.xml 文件中获取信息的配置管理器中获取操作和拦截器堆栈的信息。

ActionProxy 将请求转发到 ActionInvocation

ActionInvocation 调用每个拦截器和操作

生成一个结果

然后将结果发送回 ActionInvocation

比生成 HttpServletResponse

然后将响应发送给用户。

Struts 是如何工作的?

web.xml 文件包含与 Web 应用程序相关的所有配置信息。它设置了启动应用程序的环境。在 web.xml 文件中,StrutsPrepareAndExecuteFilter 被配置为处理来自客户端的请求并委托 Struts 环境。

StrutsPrepareAndExecuteFilter 准备和执行 Struts 调度过程的不同阶段。如果您没有任何其他需要访问操作上下文信息的过滤器,我们建议您使用它。

请求:这是第一步,客户端使用 Web 浏览器向单个资源发出请求,然后由 Web 容器发送。之后,Web 容器加载 web.xml 并确认 URL 模式是否匹配。验证通过后,Web 容器将请求传输到Filter Dispatcher。

StrutsPrepareAndExecuteFilter:一旦请求被发送到过滤器调度器,估计请求并根据 URL( ActionMapper )的映射检查适当的操作调用ActionProxy然后读取配置文件管理器(如 struts.xml 文件)以检查准确请求的动作。ActionProxy 读取然后创建一个ActionInvocation,负责执行命令模式实现,然后将请求发送到适当的 Action 类。

拦截器堆栈:在接收动作类之前,请求通过拦截器堆栈,其中识别出拦截器列表,在创建动作类之前必须检查这些拦截器。

Action类:然后是请求通过Action类,然后完成代码,最终生成执行结果为Success或Input或Error。

Result:根据产生的代码,Controller找到 View 并交出 Action 的结果。处理时,Struts 标签由框架提供,模板可以使用。

拦截器堆栈:在调用客户端之前,将再次检查拦截器,并通过 web.xml 中配置的过滤器将响应返回给用户。

Struts 2 请求生命周期

用户发送请求:用户向 Servlet 容器调用未指定资源的请求。

FilterDispatcher 确定适当的操作: FilterDispatcher 接受请求并检查与请求对应的确切操作。

应用拦截器:拦截器完成工作流、验证、文件上传等任务,并自动应用于请求。

动作的执行:动作方法负责执行与数据库相关的操作,例如检索数据或将数据存储到数据库中。

输出渲染:生成Result并在视图中渲染。

返回请求:请求通过拦截器以相反的顺序返回。它允许执行清理或附加处理。

向用户显示结果:控件返回到 servlet 容器,该容器将输出发送到用户浏览器。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>