是否存在网站路由模式等问题?

时间:2009-12-03 06:08:12

标签: design-patterns oop url-routing

当我查看时,我没有找到有关搜索的任何信息。我一直在做很多关于设计模式的研究,但就路由而言,我还没有看到任何东西。我的意思是这样的:回到我的PHP时代,我会在一个页面上编写代码,然后将其传递给下一个页面。这创造了(虽然我当时并未意识到)紧密耦合的代码,其中改变路由需要我混淆了一长串页面。

我想知道是否有任何特定的模式或类模式处理将表单数据发送回中心对象并将该调用作为下一个表单。因此,例如,我将传递回routing.php而不是signUpPage2.php。然后routing.php会将数据传递给signUpPage2.php。

我知道这是PHP Cake和RoR尝试做的事情,但我特别想知道是否有这样的模式。这似乎不仅仅是MVC我没有,但我可能是错的。

谢谢!

编辑,是否有人对这些类型的模式有任何书籍推荐?感谢

3 个答案:

答案 0 :(得分:1)

发表/获取/响应

http://en.wikipedia.org/wiki/Post/Redirect/Get

引用:

当通过HTTP POST请求将Web表单提交给服务器时,尝试刷新某些用户代理中的服务器响应的Web用户可能会导致重新提交原始HTTP POST请求的内容,从而可能导致意外结果,例如重复购买网页。

为避免此问题,许多Web开发人员使用PRG模式 - 而不是直接返回网页,POST操作返回重定向命令(使用HTTP 303响应代码[有时302]和HTTP“位置”响应header),指示浏览器使用HTTP GET请求加载不同的页面。然后,Web用户可以安全地刷新服务器响应,而不会导致重新提交初始HTTP POST请求。

答案 1 :(得分:1)

您有页面(View)也决定路由(控制)。在最简单的层面上,我们将控制逻辑拉出来,将View与Control分开 - 因此模型视图控制器在Web应用程序中的流行。

下一步是使用某种形式的调度表来实现Controller--在Java世界中,使用Struts和JSF等框架完成。

答案 2 :(得分:0)

这听起来像Apache Struts,您可以根据操作的结果指定转换。

必须承认我不知道模式名称是什么。