- 5
- 0
- 约5.77千字
- 约 35页
- 2019-08-01 发布于江苏
- 举报
WEB框架比较 WEB框架的实质 今天分享的目的 尝试透过纷繁的表象,分析各种Web应用框架的本质。 Spring MVC Tapestry Webwork 粗略了解各框架的优缺点。 考虑进一步发展我们的框架的方向。 WEB请求—响应 打开黑箱 一般WEB请求处理过程 解析request 解析request包括: 解析URL 解析HTTP headers 解析query string 解析request工作主要是由servlet container完成的: 根据URL,调用适当的webapp 将URL匹配web.xml中的servlet-mapping,并调用适当的servlet 根据HTTP method,调用servlet中适当的方法。 当需要时,解析query string 应用程序/框架需要做的工作: 告诉servlet container,当以何种locale/编码来解析query string 解析multipart/form-data的数据(upload) 分析request 分析request是指: 根据前一步解析而得的信息,进一步确定应该如何来处理这个request。 最常见的方式,是根据URL中的某部分,或者某参数的值,来取得某个业务模块,并执行之。 执行业务模块 这一步是应用程序员需要做的事,主要包括: 分析/取得WEB参数 验证表单 根据请求的内容,执行具体的业务逻辑(例如从数据库中取得数据,或保存数据) 决定要显示的页面,并准备好页面显示所必须的一些参数。 除了上述这些内容,还可能需要考虑一些非功能性的需求,例如: 页面的安全特性(是不是必须登录?是否重复提交?等) 页面的流程(页面之间的关系、状态的保存等) 显示页面 这一步涉及到页面的展现: 以何种技术展现页面?(velocity、jsp、freemarker、hardcode,etc.) 显示哪个页面?(找到正确的页面文件) 页面的重用 页面的布局 重定向 有时不一定直接显示页面,而是将控制转发给另一个模块/应用。 内部重定向,对浏览器不可知,将控制转发给另一个模块 外部重定向,通过浏览器定向,将控制转发给其它应用 清理工作 释放资源 记录日志 释放ThreadLocal 可选操作 异常处理 日志 显示错误页面 …… 时间戳检查 通过时间戳检查,可以加快响应的时间,减少不必要的业务操作 需要HTTP协议配合:If-modified-since等。 Portlet支持 其它需要考虑的内容 以上只是列出了一个Web框架要处理的常见内容,事实上还有很多要考虑的事情,例如: 可定制性 Search-engine-friendly URL 开发的便利性 页面技术的复杂性 代码的侵入性 和系统资源整合的方便性 模块性 扩展性 创建新功能/替换现有功能的可能性 …… …… Web框架实质——扩展 现在有很多open source的Web框架,例如: Spring MVC Tapestry Webwork 共同点: 均实现了M-V-C设计模式。 在整个请求处理的流程中,提供多种扩展点,来实现具体的业务逻辑。 尽可能简化开发应用的复杂性。 那么不同的Web框架,它们之间有什么不同呢? 提供扩展的方式不同 扩展点的功能和数量不同 Web框架的实质——组合 从另一个角度看 其实一个框架就是一个模型 模型由很多部分组合而成 有哪些部分、如何组合?这些答案的不同就构成了各种不同框架的不同。 但不同的实现,为的是完成类似的任务 我们将从分析每个框架的模型来入手 现代“组合”技术的基础 不约而同,今天我们要分析的三个Web框架,都为自己建立了一个与Web无关的“组合”对象的平台。 Spring MVC —— 以Spring framework为基础 Tapestry —— 以Hivemind为基础 Webwork —— 以Xwork为基础 这个基础平台的不同,很大程度地影响了Web框架本身的风格。 平台的优点,直接带给Web框架独特的价值。 平台的缺点,也带给相应Web框架有时是难以克服的缺陷。 Spring MVC的模型 Spring MVC的模型 Spring MVC的request处理流程 Spring MVC的表单处理过程 Tapestry的模型 Tapestry的request处理流程 Tapestry的request处理流程(续) Webwork的模型 对比——解析request Spring MVC 根本没考虑编码问题(输入中文会乱码),也没有提供明显的扩展点来做这件事。 利用MultipartResolver来处理upload表单 Tapestry 通过requestServicer pipeline中的SetupRequestEncoding类来处理loca
您可能关注的文档
最近下载
- (民主生活会)2025年度班子成员相互批评意见清单+对照检查查摆问题清单+批评与自我批评意见建议.docx VIP
- 基于单片机的智能衣柜控制系统设计.docx VIP
- 原神家具负荷表及计算器说明书(多功能小鹏).docx VIP
- 2025 年大学轨道交通信号与控制(信号系统)试题及答案.doc VIP
- 生活中的化学.ppt VIP
- XX村新任支部书记任职发言稿.docx VIP
- 痛苦的缺席——试论苏童的《米》.pdf VIP
- 2024高端装备制造业技术升级改造合同.docx VIP
- 603A使用说明书.doc VIP
- 江苏图集-JS2016Q5 住宅厨卫组合变压式耐火排烟气道系统 江苏省工程建设企业标准设计图集.pdf VIP
原创力文档

文档评论(0)