Ben*_*elm 7 bootstrapping scala playframework playframework-2.0
我是Play的新手!Web框架,为了理解它是如何工作的,以及它与其他Web框架的比较,我希望能够在Play中进行跟踪!源代码,从开始到结束的请求生命周期.我将使用Play的Scala实现!
因为我的大部分经验都是使用PHP框架,所以我习惯于从web根目录中的index.php文件开始,然后通过任何包含的config/bootstrapping脚本,依赖注入处理,请求路由,动作调度,最后读取视图/响应呈现.
我无法确定Scala/Play的类似入口点!申请,我非常感谢推动正确的方向.请求生命周期的演练当然会非常慷慨,但我真正需要的只是显示入口点.
默认情况下,Play框架使用内置的HTTP服务器(基于Netty)。因此,与 PHP 最接近的类比是 Play 既是 Apache 又是 PHP。
PHP 使用传统的“类似 CGI”范例:为了服务单个 HTTP 请求,您的程序将启动,并在完成服务请求后终止。在 CGI 中,为 HTTP 请求提供服务的网络服务器启动外部程序(您的脚本)并返回其输出。旧版本的PHP仅针对CGI而设计,在后来的版本中采用其他方式与服务器交互,因为CGI非常慢,但核心原理保持不变。
大多数 Web 应用程序技术使用另一种方法:Web 应用程序启动一次然后保持运行,因此 Web 应用程序的一个正在运行的实例继续服务请求(并且可以并行服务多个请求)。它不会像 PHP 那样在处理单个请求后就终止。这使得每次启动应用程序所需的资源消耗更少,并且使用起来只是稍微困难一些,因为大多数请求处理都隐藏在框架内部,并且您的应用程序只需要公开请求到达和返回时调用的控制器方法回复。
它还提供了更大的灵活性,例如可以在 Web 应用程序内部启动后台处理,无需外部服务器进程。Play 有 Akka 库,对此非常方便。
随着越来越多的 Web 应用程序使用 Ajax 和 REST 方法,而不是每次都提供重量级网页,它变得更加重要。而且,无论请求技术如何(轮询、长轮询、带有多部分的 iframe),使用 PHP 创建具有良好性能的实时消息传递后端几乎是不可能的。
但如果与 PHP MVC 框架相比,从创建视图、模型和控制器的开发人员的角度来看,Play 非常相似。在 PHP MVC 框架和 Play 框架中都调用控制器方法或函数,并且该方法应该返回响应,视图通常是模板,模型通常是到关系数据库的 ORM 绑定。
| 归档时间: |
|
| 查看次数: |
1483 次 |
| 最近记录: |