web应用程序框架的常见任务(例如:Django或Laravel或.NET或beego(:
request / response abstraction
session state
user authentication & authorisation
page templating
URL mapping
DB access
security
caching
MVC设计模式实现了上述常见任务,如下所示:
URL映射由MVC的Controller组件处理。控制器将请求路由到处理程序。例如:
http.ServeMux
是来自GOLang包的控制器请求/响应抽象由控制器通过注册处理程序执行,由web开发人员编写,如下所示:
sm := http.NewServeMux() // in GoLang sm.Handle("/", productHandler)
会话状态由处理程序处理web开发人员编写的代码
页面模板化由MVC 的模板引擎(视图组件(处理
用户身份验证&授权由处理程序处理web开发人员编写的代码
DB访问由MVC的模型组件处理。
安全和缓存由web开发人员编写的处理程序代码处理
这是对MVC设计模式的正确理解吗?
MVC被认为是一种纯粹的表示模式,因为它主要协调视图和模型(无论模型代表什么(。另外,MVC发明的主要原因之一是关注点的分离。重要的是保持它干净、简短,并让其他层处理逻辑。
web应用程序框架的常见任务是充当IoC容器(控制反转(,并让其组件担心特定的责任。因此,如果它是一个web框架,它可能会有会话、cookie、MVC。。。组件。
- 控制器方法只是HTTP接口的一个实现。URL映射可以被视为控制器方法的参数
- 请求/响应由web组件(Java中的servlet(处理
- 会话状态由会话组件处理,可以由开发人员配置,例如会话过期时间或会话cookie类型,甚至会话类型(数据库,内存中(
- 正确
- 通常,框架中有一个经过验证的auth组件,但它可以手动编写(不推荐(
- DB访问是由一个持久层来处理的,比如Java中的JDBC。MVC中的模型负责应该在屏幕上显示或由用户提交的数据
- 与5相同