Struts2流程一 | 学习笔记

简介: 快速学习 Struts2流程一,介绍了 Struts2流程一系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门Struts2流程一】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7289


Struts2流程一

 

内容介绍:

一、 简单执行流程

二、 struts2工作的基本原理

三、 详细流程


一、简单执行流程

(1)使用 StarUML 软件进行分析

(2)执行过程:

通过浏览器发送一个请求,请求到达哪个地方,取决于过滤器的配置:

Browser(浏览器)发送请求 request,tomcat(服务器)进行接收,而后被匹配到的过滤器接收,进而 struts2开始工作,解析用户的请求,解析用户的录入数据,可以接受 request,而后进行相应的解析工作。

由 class 生成对应的 action,创建对应的对象,进行对应的类型转换,参数的赋值,方法的调用,结果的验算等。

当然,这些工作 struts2是通过拦截器的帮助来完成的。(默认有18个拦截器)

(3)流程是解决错误的最根本办法,根据流程可以找到错误。


二、struts2工作的基本原理

方法执行要有对应的创建对象,创建对象由 struts2创建,根据此种方法,struts2可以创造对象,我们可以调用此种方法,可以对此对象的属性赋值,这个方法的访问结果可以根据匹配进行转发到同向的另一个执行页面中去。

mapping 映射,struts.xml.配置文件解析,生成对应的 action,通过一系列拦截器处理,调用 action 的 execute 方法,返回成功会到达成功,进而返回引擎给过滤器,给 tomcat,服务器传送给 Browser

通过一系列拦截器处理,处理结束之后,调用 action 的 execute 方法,返回成功,返回引擎,返回给过滤器,

image.png

当用户提交一个请求,服务器接收,并且交给 struts2的核心过滤器来进行处理,struts2的过滤器调用 struts2的一系列处理器来进行处理如:解析 struts.xml.配置文件,和用户提交的请求对比,如果找不到返回404,如果找到进行下一步处理。

直到调用对应的 Action 类中的 execute 方法执行,执行完后再进行一系列处理到核心过滤器。

由核心过滤器返回给服务器,服务器对浏览器进行相应的响应。


三、 详细流程

image.png

详细流程图如上所示(百度上搜索 struts2执行流程,即可得到上图)

(1)发送的请求通过 ActionContextCleanUp 的清理工作后,多个过滤器执行工作后到达 FilterDispatcher

(2)FilterDispatcher 实际上是核心的过滤器

(3)由上图可知,其他过滤器(处理权限的过滤器、处理乱码的过滤器等)配置在struts2过滤器之前。

(4)产生 ActionProxy,Configuration 读取 struts.xml.配置文件,读取完成之后,根据配置,会产生 Action Invocation 的对象,在对象里面会有许多拦截器和配置文件(Interceptor 就是其中一个拦截器),拦截器就是 struts2的完成功能。

相关文章
|
SQL 索引 Python
Pandas Query 方法深度总结
Pandas Query 方法深度总结
274 0
|
运维 Java Nacos
nacos常见问题之读取不到配置文件如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
7344 2
|
机器学习/深度学习 编解码 固态存储
超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!
超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!
1135 0
超轻目标检测 | 超越 NanoDet-Plus、YOLOv4-Tiny实时性、高精度都是你想要的!
|
9月前
|
人工智能 自然语言处理 搜索推荐
HiFox AI:一站式 AI 应用平台,多模型快速接入,自由选用
HiFox AI 是一站式AI应用平台,整合了30多个主流AI模型,提供文本生成、对话交流、图片生成等多种应用场景。平台内置1000+预构建AI应用,支持无代码搭建个性化应用和复杂工作流,帮助用户高效处理重复任务,显著提升工作效率。无论是普通用户还是技术专家,都能在HiFox AI上找到适合自己的解决方案,实现“人人都能使用AI”的愿景。
|
8月前
|
人工智能 IDE 搜索推荐
惊!GitHub Copilot或将颠覆传统编程,程序员即将失业?
GitHub Copilot引爆编程界!这个AI编程神器将彻底改变你的编程生涯!
428 22
惊!GitHub Copilot或将颠覆传统编程,程序员即将失业?
|
6月前
|
网络协议 开发工具 git
解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese
在使用 Git/Git小乌龟 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 git clone 或 git pull 等操作时出现 “fatal: unable to access ‘https://github.com/…/.git’: Recv failure Connection was reset” 的报错。这个问题通常是由网络连接问题或代理设置不正确导致的。在我的个人使用经验中,我亲自尝试了四种方法,它们都能够有效地解决这个报错。个人比较推荐方法二。
3823 0
|
机器学习/深度学习 传感器 编解码
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
以视觉为中心的俯视图(BEV)感知最近受到了广泛的关注,因其可以自然地呈现自然场景且对融合更友好。随着深度学习的快速发展,许多新颖的方法尝试解决以视觉为中心的BEV感知,但是目前还缺乏对该领域的综述类文章。本文对以视觉为中心的BEV感知及其扩展的方法进行了全面的综述调研,并提供了深入的分析和结果比较,进一步思考未来可能的研究方向。如下图所示,目前的工作可以根据视角变换分为两大类,即基于几何变换和基于网络变换。前者利用相机的物理原理,以可解释性的方式转换视图。后者则使用神经网络将透视图(PV)投影到BEV上。
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
|
数据采集 存储 监控
《数据资产管理实践》方法论梳理
《数据资产管理实践》方法论梳理
742 58
|
JSON 关系型数据库 MySQL
MySQL 5.x和8.0区别
性能:8.0的速度要比5.7快2倍,8.0在以下方面带来了更好的性能:读/写负载、IO密集型工作负载、高竞争("hot spot"热点竞争问题)工作负载。
492 3
|
存储 Java 数据安全/隐私保护
什么是编码和解码
什么是编码和解码
1110 0