Play framework基本概念、请求处理流程、开发生命周期
Play应用程序使用MVC架构模式来作为Web开发的基础架构。
MVC架构模式把应用程序分成三层:表现层,视图层,模型层
下图是play framework在MVC层次上对于http请求的处理流程:
请求生命周期:
Play framework是无状态的并且是面向request、response的。所有的请求都遵从下述的处理流程。
framework接收到一个http请求Router路由组件根据conf/routes的配置,找到请求对应的控制层方法并调用它控制层方法被执行如果需要生成一个复杂的视图,那么对相应的模板文件做render渲染操作执行结果(http响应码和内容)输出到http response中
标准应用程序目录:
为了使事情变得更加简单,使用COC约定优于配置的思想,对应用程序目录进行了如下的标准化约定:
app目录:存放所有可执行的组件:java源代码、视图模板文件。
app目录下有controllers,models,views3个标准目录,分别对应MVC模式中的一层。同时也可以自己增加一些packages,如utils、jobs等
在使用play framework时,不要去寻找编译好的java class文件。框架在运行时编译java源代码并且把编译好的class文件在临时目录中以字节码缓存的形式保存。在play框架中主要的可执行组件就是java源文件而不是编译好的class文件。
views目录进一步被组织层:tags(存放应用程序标签,如存放可重用的模板片段),每一个views文件夹对应一个Controller(根据约定,每个控制器关联的模板文件都存储在自己对应的目录中)。
public目录:存放静态的资源文件,并且直接通过play web服务器对外提供服务。里面包含3个标准子目录:images,javascripts,stylesheets,分别用来放图片,js脚本,css。默认情况下,/public目录和/public URL对应。当然也很容易通过如下配置改变这一点,同时也可以有多个目录同时提供静态资源。
GET /public/ staticDir:public