Webx框架指南
Michael Zhou
Webx框架指南
Michael Zhou
出版日期 2010-11-13
iii
引言 ............................................................................................................................... ix
1.阅读向导 ............................................................................................................. ix
2.Webx是什么? .................................................................................................... ix
3.Webx的历史 ....................................................................................................... ix
4.为什么要用Webx而不是其它的开源框架? ............................................................. x
5.Webx的优势 ........................................................................................................ x
5.1.成熟可靠性 ................................................................................................ x
5.2.开放和扩展性 ............................................................................................. x
6.Webx还缺少什么? .............................................................................................. x
部分I.Webx框架概览 ..................................................................................................... 1
第1章Webx总体介绍 ............................................................................................. 4
1.1.设计理念 ................................................................................................... 4
1.1.1.框架的本质 ..................................................................................... 4
1.1.2.基础框架 ........................................................................................ 4
1.1.3.层次化 ........................................................................................... 5
1.2.Webx的层次 ............................................................................................. 6
1.2.1.三个大层次 ..................................................................................... 6
1.2.2.剪裁和定制Webx ............................................................................ 7
1.3.本章总结 ................................................................................................... 9
第2章SpringExt ................................................................................................... 10
2.1.用SpringExt装配服务 ............................................................................... 10
2.1.1.Spring Beans ............................................................................... 11
2.1.2.Spring Schema ........................................................................... 12
2.1.3.SpringExt Schema ....................................................................... 15
2.2.SpringExt原理 ......................................................................................... 16
2.2.1.XML Schema中的秘密 ................................................................. 16
2.2.2.扩展点,Configuration Point ....................................................... 17
2.2.3.捐献,Contribution ...................................................................... 17
2.2.4.组件和包 ...................................................................................... 18
2.2.5.取得Schemas .............................................................................. 19
2.3.SpringExt其它特性 ................................................................................... 22
2.4.本章总结 ................................................................................................. 23
第3章Webx Framework ...................................................................................... 24
3.1.Webx的初始化 ........................................................................................ 24
3.1.1.初始化级联的Spring容器 ............................................................... 24
3.1.2.初始化日志系统 ............................................................................ 26
3.2.Webx响应请求 ........................................................................................ 27
3.2.1.增强request、response、session的功能 ....................................... 27
3.2.2.Pipeline流程机制 .......................................................................... 29
3.2.3.异常处理机制 ................................................................................ 30
3.2.4.开发模式工具 ................................................................................ 30
3.2.5.响应和处理请求的更多细节 ............................................................ 33
3.3.定制Webx Framework ............................................................................ 36
3.3.1.定制WebxRootController ............................................................ 36
Webx框架指南
iv
3.3.2.定制WebxController .................................................................... 36
3.4.本章总结 ................................................................................................. 37
第4章Webx Turbine ............................................................................................ 38
4.1.设计理念 ................................................................................................. 38
4.1.1.页面驱动 ...................................................................................... 38
4.1.2.约定胜于配置 ................................................................................ 39
4.2.页面布局 ................................................................................................. 40
4.3.处理页面的基本流程 ................................................................................. 41
4.4.依赖注入 ................................................................................................. 43
4.4.1.Spring原生注入手段 ...................................................................... 43
4.4.2.注入request、response和session对象 ........................................... 43
4.4.3.参数注入 ...................................................................................... 44
4.5.定制Webx Turbine .................................................................................. 44
4.6.本章总结 ................................................................................................. 45
部分II.Webx基础设施服务 ............................................................................................ 46
第5章Resource Loading服务指南 ....................................................................... 50
5.1.资源概述 ................................................................................................. 50
5.1.1.什么是资源? ................................................................................ 50
5.1.2.如何表示资源? ............................................................................ 51
5.1.3.如何访问资源? ............................................................................ 51
5.1.4.如何遍历资源? ............................................................................ 52
5.1.5.有什么问题? ................................................................................ 53
5.2.Spring的ResourceLoader机制 ................................................................. 54
5.2.1.Resource接口 .............................................................................. 54
5.2.2.ResourceLoader和ResourcePatternResolver接口 ...................... 54
5.2.3.在代码中取得资源 ......................................................................... 55
5.2.4.Spring如何装载资源? ................................................................... 56
5.2.5.Spring ResourceLoader的缺点 ..................................................... 58
5.3.Resource Loading服务 ........................................................................... 59
5.3.1.替换Spring ResourceLoader ......................................................... 59
5.3.2.定义新资源 ................................................................................... 60
5.3.3.重命名资源 ................................................................................... 61
5.3.4.重定向资源 ................................................................................... 62
5.3.5.匹配资源 ...................................................................................... 63
5.3.6.在多个ResourceLoader中查找 ...................................................... 64
5.3.7.装载parent容器中的资源 .............................................................. 65
5.3.8.修改资源文件的内容 ...................................................................... 65
5.3.9.直接使用ResourceLoadingService .............................................. 66
5.3.10.在非Web环境中使用Resource Loading服务 ............................... 68
5.4.ResourceLoader参考 ............................................................................. 69
5.4.1.FileResourceLoader ................................................................... 69
5.4.2.WebappResourceLoader ............................................................... 70
5.4.3.ClasspathResourceLoader .......................................................... 70
5.4.4.SuperResourceLoader ................................................................. 70
Webx框架指南
v
5.4.5.关于ResourceLoader的其它考虑 ................................................... 71
5.5.本章总结 ................................................................................................. 71
第6章Filter、Request Contexts和Pipeline ........................................................... 72
6.1.Filter ....................................................................................................... 72
6.1.1.Filter的用途 .................................................................................. 72
6.1.2.Filter工作原理 ............................................................................... 73
6.1.3.Filter的限制 .................................................................................. 74
6.1.4.Webx对filter功能的补充 ................................................................ 74
6.2.Request Contexts服务 ........................................................................... 75
6.2.1.Request Contexts工作原理 .......................................................... 75
6.2.2.Request Contexts的用途 ............................................................. 76
6.2.3.Request Contexts的使用 ............................................................. 77
6.3.Pipeline服务 ........................................................................................... 80
6.3.1.Pipeline工作原理 .......................................................................... 80
6.3.2.Pipeline的用途 ............................................................................. 81
6.3.3.Pipeline的使用 ............................................................................. 83
6.4.本章总结 ................................................................................................. 92
第7章Request Contexts功能指南 ........................................................................ 94
7.1.<basic> - 提供基础特性 .......................................................................... 95
7.1.1.拦截器接口 ................................................................................... 95
7.1.2.默认拦截器 ................................................................................... 96
7.2.<set-locale> -设置locale区域和charset字符集编码 ............................... 96
7.2.1.Locale基础 .................................................................................. 96
7.2.2.Charset编码基础 .......................................................................... 97
7.2.3.Locale和charset的关系 ............................................................... 98
7.2.4.设置locale和charset .................................................................... 98
7.2.5.使用方法 ...................................................................................... 99
7.3.<parser> - 解析参数 ............................................................................. 102
7.3.1.基本使用方法 .............................................................................. 102
7.3.2.上传文件 .................................................................................... 103
7.3.3.高级选项 .................................................................................... 105
7.4.<buffered> - 缓存response中的内容 ..................................................... 108
7.4.1.实现原理 .................................................................................... 108
7.4.2.使用方法 .................................................................................... 110
7.5.<lazy-commit> - 延迟提交response ...................................................... 112
7.5.1.什么是提交 ................................................................................. 112
7.5.2.实现原理 .................................................................................... 112
7.5.3.使用方法 .................................................................................... 113
7.6.<rewrite> -重写请求的URL和参数 .......................................................... 113
7.6.1.概述 ........................................................................................... 113
7.6.2.取得路径 .................................................................................... 115
7.6.3.匹配rules .................................................................................... 115
7.6.4.匹配conditions ........................................................................... 116
7.6.5.替换路径 .................................................................................... 118
7.6.6.替换参数 .................................................................................... 118