如何在Front Controller Web应用程序中处理Http请求竞争条件?

jumps4fun

我有一个Web应用程序,它是Front Controller Pattern的实现,如下图所示。具体来说,我遵循了前端控制器模式的代码示例,如该问题的答案中所述:

基于Web的设计模式应用程序

前置控制器

我的.jsp页面之一存在更新问题。该页面特别具有弹出编辑器,允许用户从外部数据库添加或删除指向数据集的链接。如果用户单击保存按钮,它将发送一个请求,该请求将被Front Controller拦截。然后,在系统自己的数据库上执行用于保存或删除参考链接(许多ID号)的正确操作。之后,应重新加载页面,这将触发链接的命令,该命令从两个数据库加载数据,然后重定向到基本上相同的页面,而没有弹出窗口。

但是,由于某种我不理解的缓存形式,因此无法重新加载该页面。我尝试了所有可能找到的解决方案,以防止加载缓存的数据,向URL添加唯一值,在jsp页上添加元标记以完全阻止缓存。我已经确认数据正在服务器端加载。只需按一下F5键即可自动更新页面。

我还在弹出窗口上实现了onClose函数,该函数调用window.location.reload()。但是,此调用会中断前端控制器,并停止当前正在执行的所有操作,以处理最新的请求。这会造成争用情况,在Front Controller开始重新加载页面之前,有时可以插入/删除数据,有时不能插入/删除数据。

我应该排队吗?有充分的理由不这样做吗?Front控制器的执行方法还是类本身应该实现某种同步?

阿尔诺·克莱因维尔德(Arnaud Kleinveld)

您的弹出式编辑器应放置在iframe中,这样它在提交时就不会重新加载窗口。从iframe发送的请求返回的响应应触发window.location.reload()。例如:

<html>
  <script type='text/javascript'>
    window.onload = function() {
      window.location.reload();
    };
  </script>
</html>

另一个选择是通过Ajax调用发送更新,然后在Ajax调用返回时重新加载页面。或者更好的方法是动态更新页面,而无需重新加载,而是使用Ajax调用返回的JSON数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在单页 Web 应用程序中处理 node.js 中的“发布”请求

来自分类Dev

如何在Angular应用程序中同步HTTP请求?

来自分类Dev

如何在OSX应用程序的VIew Controller中调整窗口的尺寸以进行标注?

来自分类Dev

如何在OSX应用程序的VIew Controller中调整窗口的尺寸以进行标注?

来自分类Dev

当通过在Android中刷卡杀死应用程序时,如何调用Web服务(Http请求)?

来自分类Dev

如何在Revel Controller中访问Gorm?

来自分类Dev

如何在Controller中包含任何PHP

来自分类Dev

如何在Controller中解析HostedService

来自分类Dev

无法理解HTTP请求处理程序函数如何能够访问Tornado中的应用程序对象

来自分类Dev

Grails应用程序,可以从Java DAO服务访问数据库-如何在Controller中访问服务?

来自分类Dev

如何处理Web Service中的竞争条件?

来自分类Dev

如何在Java Spring应用程序中缓存使用Netflix的Feign库发出的HTTP请求

来自分类Dev

您如何在EmberJs应用程序中“拦截”所有HTTP请求?

来自分类Dev

如何在Laravel Vapor应用程序中获取HTTP请求的IP?

来自分类Dev

仅在请求Servlet时如何在Tomcat中初始化Web应用程序

来自分类Dev

如何在基于EJB的Web应用程序中过滤请求?

来自分类Dev

如何在Web应用程序中实时/快速处理GPS数据?

来自分类Dev

如何在ASP.net Web窗体应用程序中处理False / Empty查询?

来自分类Dev

如何在DukeScript Web应用程序中处理路由

来自分类Dev

如何在Web应用程序中处理和/或存储货币值?

来自分类Dev

在使用Front Controller模式时如何在PHP项目中使用ob_start()

来自分类Dev

如何在单页应用程序中处理分页?

来自分类Dev

如何在android中处理多个应用程序类

来自分类Dev

如何在android中处理多个应用程序类

来自分类Dev

如何在16.04中处理SWT应用程序

来自分类Dev

如何在单页应用程序中处理分页?

来自分类Dev

如何在Watch应用程序中圆角处理WKInterfaceImage?

来自分类Dev

如何在MVC中的Controller中获得下拉值

来自分类Dev

如何在Spring Controller中获取URL路径?

Related 相关文章

  1. 1

    如何在单页 Web 应用程序中处理 node.js 中的“发布”请求

  2. 2

    如何在Angular应用程序中同步HTTP请求?

  3. 3

    如何在OSX应用程序的VIew Controller中调整窗口的尺寸以进行标注?

  4. 4

    如何在OSX应用程序的VIew Controller中调整窗口的尺寸以进行标注?

  5. 5

    当通过在Android中刷卡杀死应用程序时,如何调用Web服务(Http请求)?

  6. 6

    如何在Revel Controller中访问Gorm?

  7. 7

    如何在Controller中包含任何PHP

  8. 8

    如何在Controller中解析HostedService

  9. 9

    无法理解HTTP请求处理程序函数如何能够访问Tornado中的应用程序对象

  10. 10

    Grails应用程序,可以从Java DAO服务访问数据库-如何在Controller中访问服务?

  11. 11

    如何处理Web Service中的竞争条件?

  12. 12

    如何在Java Spring应用程序中缓存使用Netflix的Feign库发出的HTTP请求

  13. 13

    您如何在EmberJs应用程序中“拦截”所有HTTP请求?

  14. 14

    如何在Laravel Vapor应用程序中获取HTTP请求的IP?

  15. 15

    仅在请求Servlet时如何在Tomcat中初始化Web应用程序

  16. 16

    如何在基于EJB的Web应用程序中过滤请求?

  17. 17

    如何在Web应用程序中实时/快速处理GPS数据?

  18. 18

    如何在ASP.net Web窗体应用程序中处理False / Empty查询?

  19. 19

    如何在DukeScript Web应用程序中处理路由

  20. 20

    如何在Web应用程序中处理和/或存储货币值?

  21. 21

    在使用Front Controller模式时如何在PHP项目中使用ob_start()

  22. 22

    如何在单页应用程序中处理分页?

  23. 23

    如何在android中处理多个应用程序类

  24. 24

    如何在android中处理多个应用程序类

  25. 25

    如何在16.04中处理SWT应用程序

  26. 26

    如何在单页应用程序中处理分页?

  27. 27

    如何在Watch应用程序中圆角处理WKInterfaceImage?

  28. 28

    如何在MVC中的Controller中获得下拉值

  29. 29

    如何在Spring Controller中获取URL路径?

热门标签

归档