28、Spring Web Flow 技术详解

Spring Web Flow 技术详解

一、同步访问与性能影响

在使用基于令牌(流执行键)的同步访问时,很多人会担心其对性能产生影响。实际上,这种同步发生在 HTTP 会话内的流执行中,它只是对单个客户端向同一流执行发出的操作进行序列化访问。例如,客户端的重复提交会被序列化处理,因为重复提交是在同一 HTTP 会话内并行向同一流执行发出多个请求。但如果两个不同的客户端(即不同的会话和不同的流执行)同时按下提交按钮,不会进行序列化,所有操作将并行执行。

二、Post Redirect Get (PRG) 模式

当用户意外刷新已提交的表单时,即使没有双击,也会产生与重复提交相同的效果。为解决这个“意外”重新提交的问题,Web Flow 提供了 Post Redirect Get (PRG) 模式。

PRG 模式对请求进行两阶段处理:
1. 第一阶段 :从浏览器接收 HTTP 请求,触发应用逻辑的调用(如果有)。然后,Web Flow 向浏览器发送重定向,在进入第二阶段之前暂停流执行,并将状态内部存储。
2. 第二阶段 :浏览器跟随重定向,向 Web 容器发出 HTTP GET 请求。Web Flow 再次处理该请求,渲染视图并将其发送回客户端浏览器显示。

以下是 PRG 模式的 mermaid 流程图:

graph LR
    A[用户提交表单(POST 请求)] --> B[Web 容器执行逻辑]
    B --> C[Web Flow 发送 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值