内容简介:
国内资深Web开发专家根据Spring MVC全新技术撰写,基于实际生产环境,从基础知识、源代码和实战3个维度对Spring MVC的结构和实现进行详细讲解
全面介绍Spring MVC的架构、原理、核心概念和操作,通过案例完整呈现Tomcat的实现,系统总结Spring MVC九大组件的处理以及常用的技巧和实践
在大型网站和复杂系统的开发中,Java具有天然的优势,而在Java的Web框架中Spring MVC以其强大的功能以及简单且灵活的用法受到越来越多开发者的青睐。本书不仅详细地分析Spring MVC的结构及其实现细节,而且讲解网站的不同架构及其演变的过程,以及网络底层协议的概念及其实现方法,帮助读者开发更高效的网站。
通过本书,你将:
系统学习网站的各种架构以及每种架构所针对的问题。
深入分析Web底层协议及其实现方法。
系统理解Spring MVC框架,为灵活开发高质量产品打下坚实基础。
深入理解Spring MVC的编程技巧和设计理念,提高综合思考、整体架构的能力。
学习作者自研的源代码分析方法——器用分析法,高效学习程序源代码。
目录:
前言
第一篇 网站基础知识
第1章 网站架构及其演变过程2
1.1 软件的三大类型2
1.2 基础的结构并不简单3
1.3 架构演变的起点5
1.4 海量数据的解决方案5
1.4.1 缓存和页面静态化5
1.4.2 数据库优化6
1.4.3 分离活跃数据8
1.4.4 批量读取和延迟修改8
1.4.5 读写分离9
1.4.6 分布式数据库10
1.4.7 NoSQL和Hadoop10
1.5 高并发的解决方案11
1.5.1 应用和静态资源分离11
1.5.2 页面缓存12
1.5.3 集群与分布式12
1.5.4 反向代理13
1.5.5 CDN14
1.6 底层的优化15
1.7 小结15
第2章 常见协议和标准17
2.1 DNS协议17
2.2 TCP/IP协议与Socket18
2.3 HTTP协议20
2.4 Servlet与Java Web开发22
第3章 DNS的设置23
3.1 DNS解析23
3.2 Windows 7设置DNS服务器24
3.3 Windows设置本机域名和IP的对应关系25
第4章 Java中Socket的用法26
4.1 普通Socket的用法26
4.2 NioSocket的用法28
第5章 自己动手实现HTTP协议33
第6章 详解Servlet37
6.1 Servlet接口37
6.2 GenericServlet40
6.3 HttpServlet41
第7章 Tomcat分析44
7.1 Tomcat的顶层结构及启动过程44
7.1.1 Tomcat的顶层结构44
7.1.2 Bootstrap的启动过程45
7.1.3 Catalina的启动过程47
7.1.4 Server的启动过程48
7.1.5 Service的启动过程50
7.2 Tomcat的生命周期管理52
7.2.1 Lifecycle接口52
7.2.2 LifecycleBase53
7.3 Container分析59
7.3.1 ContainerBase的结构59
7.3.2 Container的4个子容器60
7.3.3 4种容器的配置方法60
7.3.4 Container的启动62
7.4 Pipeline-Value管道69
7.4.1 Pipeline-Value处理模式69
7.4.2 Pipeline-Value的实现方法70
7.5 Connector分析73
7.5.1 Connector的结构73
7.5.2 Connector自身类74
7.5.3 ProtocolHandler77
7.5.4 处理TCP/IP协议的Endpoint77
7.5.5 处理HTTP协议的Processor80
7.5.6 适配器Adapter81
第二篇 俯视Spring MVC
第8章 Spring MVC之初体验84
8.1 环境搭建84
8.2 Spring MVC最简单的配置84
8.2.1 在web.xml中配置Servlet85
8.2.2 创建Spring MVC的xml配置文件85
8.2.3 创建Controller和view86
8.3 关联spring源代码87
8.4 小结89
第9章 创建Spring MVC之器90
9.1 整体结构介绍90
9.2 HttpServletBean93
9.3 FrameworkServlet95
9.4 DispatcherServlet100
9.5 小结107
第10章 Spring MVC之用108
10.1 HttpServletBean108
10.2 FrameworkServlet108
10.3 DispatcherServlet114
10.4 doDispatch结构118
10.5 小结123
第三篇 Spring MVC组件分析
第11章 组件概览126
11.1 HandlerMapping126
11.2 HandlerAdapter128
11.3 HandlerExceptionResolver130
11.4 ViewResolver131
11.5 RequestToViewNameTranslator133
11.6 LocaleResolver133
11.7 ThemeResolver135
11.8 MultipartResolver137
11.9 FlashMapManager138
11.10 小结139
第12章 HandlerMapping140
12.1 AbstractHandlerMapping140
12.1.1 创建AbstractHandlerMapping之器141
12.1.2 AbstractHandlerMapping之用142
12.2 AbstractUrlHandlerMapping系列143
12.2.1 AbstractUrlHandlerMapping143
12.2.2 SimpleUrlHandlerMapping149
12.2.3 AbstractDetectingUrlHandler-Mapping150
12.3 AbstractHandlerMethodMapping系列152
12.3.1 创建AbstractHandlerMethod-Mapping系列之器153
12.3.2 AbstractHandlerMethodMapping系列之用158
12.4 小结159
第13章 HandlerAdapter161
13.1 RequestMappingHandlerAdapter概述162
13.2 RequestMappingHandlerAdapter自身结构169
13.2.1 创建RequestMappingHandler-Adapter之器169
13.2.2 RequestMappingHandlerAdapter之用173
13.2.3 小结185
13.3 ModelAndViewContainer185
13.4 SessionAttributesHandler和SessionAttributeStore188
13.5 ModelFactory192
13.5.1 初始化Model192
13.5.2 更新Model197
13.6 ServletInvocableHandlerMethod199
13.6.1 HandlerMethod199
13.6.2 InvocableHandlerMethod203
13.6.3 ServletInvocableHandler-Method205
13.7 HandlerMethodArgumentResolver207
13.8 HandlerMethodReturnValue-Handler218
13.9 小结221
第14章 ViewResolver223
14.1 ContentNegotiatingViewResolver225
14.2 AbstractCachingViewResolver系列228
UrlBasedViewResolver231
14.3 小结235
第15章 RequestToViewName-Translator237
第16章 HandlerExceptionResolver239
16.1 AbstractHandlerException-Resolver239
16.2 ExceptionHandlerException-Resolver241
16.3 DefaultHandlerExceptionResolver243
16.4 ResponseStatusExceptionResolver245
16.5 SimpleMappingExceptionResolver246
16.6 小结250
第17章 MultipartResolver251
17.1 StandardServletMultipart-Resolver251
17.2 CommonsMultipartResolver253
17.3 小结256
第18章 LocaleResolver257
第19章 ThemeResolver263
第20章 FlashMapManager266
第四篇 总结与补充
第21章 总结272
21.1 Spring MVC原理总结272
21.2 实际跟踪一个请求275
第22章 异步请求281
22.1 Servlet 3.0对异步请求的支持281
22.1.1 Servlet 3.0处理异步请求实例282
22.1.2 异步请求监听器Async-Listener284
22.2 Spring MVC中的异步请求286
22.2.1 Spring MVC中异步请求相关组件286
22.2.2 Spring MVC对异步请求的支持297
22.2.3 WebAsyncTask和Callable类型异步请求的处理过程及用法301
22.2.4 DeferredResult类型异步请求的处理过程及用法303
22.2.5 ListenableFuture类型异步请求的处理过程及用法305
22.3 小结309