具体描述
Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。
本书重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,本书还配有丰富的示例以供读者练习和参考。
本书是一本Spring MVC的教程,内容细致、讲解清晰,非常适合Web开发者和想要使用Spring MVC开发基于Java的Web应用的读者阅读。
作者简介
Paul Deck是一位资深的Spring Framework开发者,他曾经是How Tomcat Work一书的作者之一。
目录信息
第一章 Spring框架 1
1.1 XML配置文件 4
1.2 Spring控制反转容器的使用 4
1.2.3 通过构造器来创建一个bean实例 5
1.2.2 通过工厂方法来创建一个bean实例 5
1.2.3 Destroy Method的使用 6
1.2.4 向构造器传参 6
1.2.5 Setter方式依赖注入 7
1.2.3 构造器方式依赖注入 10
1.3 小结 10
第二章 模型2和MVC模式 11
2.1 模型1介绍 11
2.2 模型2介绍 11
2.3 模型2之Servlet控制器 13
2.3.1 Product类 15
2.3.2 ProductForm类 15
2.3.3 ControllerServlet类 16
2.3.4 视图 20
2.3.5 测试应用 22
2.4 解耦控制器代码 23
2.5 校验器 27
2.6 后端 32
2.7 本章小结 33
第三章 Spring MVC介绍 34
3.1 采用Spring MVC的好处 34
3.2 Spring MVC的DispatcherServlet 35
3.3 Controller接口 36
3.4 第一个Spring MVC应用 37
3.4.1 目录结构 37
3.4.2 部署描述符文件和Spring MVC配置文件 38
3.4.3 Controller 39
3.4.4 View 40
3.4.5 测试应用 42
3.5 View Resolver 43
3.6 本章小结 45
第四章 基于注解的控制器 46
4.1 Spring MVC注解类型 46
4.1.1 Controller注解类型 46
4.1.2 RequestMapping注解类型 47
4.2 编写请求处理方法 50
4.3 应用基于注解的控制器 52
4.3.1 目录结构 52
4.3.2 配置文件 52
4.3.3 Controller类 55
4.3.4 View 56
4.3.5 测试应用 57
4.4 应用@Autowired和@Service进行依赖注入 58
4.5 重定向和Flash属性 62
4.6 请求参数和路径变量 63
4.7 @ModelAttribute 66
4.8 小结 67
第五章 数据绑定和form标签库 68
5.1 数据绑定概览 68
5.2 form标签库 69
5.2.1 form标签 70
5.2.2 input标签 71
5.2.3 password标签 72
5.2.4 hidden标签 72
5.2.5 textarea标签 73
5.2.6 checkbox标签 73
5.2.7 radiobutton标签 74
5.2.8 checkboxes标签 74
5.2.9 radiobuttons标签 75
5.2.10 select标签 76
5.2.11 option标签 76
5.2.12 options标签 77
5.2.13 errors标签 77
5.3 数据绑定范例 78
5.3.1 目录结构 78
5.3.2 Domain类 78
5.3.3 Controller类 80
5.3.4 Service类 82
5.3.5 配置文件 85
5.3.6 视图 86
5.3.7 测试应用程序范例 88
5.4 小结 90
第六章 Converter和Formatter 91
6.1 converter 91
6.2 formatter 97
6.3 用registrar注册formatter 99
6.4 选择converter,还是formatter? 101
6.5 小结 101
第七章 验证器 102
7.1 验证概览 102
7.2 Spring验证器 103
7.3 ValidationUtils类 104
7.4 Spring的Validator范例 105
7.5 源文件 107
7.6 Controller类 107
7.7 测试验证器 109
7.8 JSR 303验证 110
7.9 JSR 303 Validator范例 112
7.10 小结 114
第八章 表达式语言(EL) 115
8.1 表达式语言(EL)的语法 115
8.1.1 关键字 116
8.1.2 [ ]和.运算符 116
8.1.3 取值规则 117
8.2 访问JavaBean 118
8.3 EL隐式对象 118
8.3.1 pageContext 119
8.4 使用其他EL运算符 122
8.4.1 算术运算符 122
8.3.3 关系运算符 123
8.4.2 逻辑运算符 123
8.4.3 关系运算符 123
8.4.4 empty运算符 124
8.5 如何在JSP 2.0及其更高版本中配置EL 124
8.5.1 实现免脚本的JSP页面 124
8.5.2 禁用EL计算 125
8.6 小结 126
第九章 JSTL 127
9.1 下载JSTL 127
9.2 JSTL库 127
9.3 一般行为 129
9.3.1 out标签 129
9.3.2 set标签 130
9.3.3 remove标签 132
9.4 条件行为 132
9.4.1 if标签 133
9.4.2 choose、when和otherwise标签 134
9.5 遍历行为 135
9.5.1 forEach标签 135
9.5.2 forTokens标签 143
9.6 与URL相关的行为 144
9.6.1 url标签 144
9.6.2 redirect标签 146
9.7 格式化行为 146
9.7.1 formatNumber标签 146
9.7.2 formatDate标签 149
9.7.3 timeZone标签 150
9.7.4 setTimeZone标签 152
9.7.5 parseNumber 152
9.7.6 parseDate标签 153
9.8 函数 155
9.8.1 contains函数 155
9.8.2 containsIgnoreCase函数 155
9.8.3 endsWith函数 156
9.8.4 escapeXml函数 156
9.8.5 indexOf函数 156
9.8.6 join函数 156
9.8.7 length函数 157
9.8.8 replace函数 157
9.8.9 split函数 157
9.8.10 startsWith函数 158
9.8.11 substring函数 158
9.8.12 substringAfter函数 158
9.8.13 substringBefore函数 158
9.8.14 toLowerCase函数 159
9.8.15 toUpperCase函数 159
9.8.16 trim函数 159
9.9 小结 159
第十章 国际化 160
10.1 语言区域 161
10.2 国际化Spring MVC应用程序 163
10.3 将文本元件隔离成属性文件 163
10.4 读取属性文件 165
10.5 告诉Spring MVC要使用哪个语言区域 166
10.6 使用message标签 167
10.7 范例 167
10.8 小结 173
第十一章 上传文件 174
11.1 客户端编程 174
11.2 MultipartFile接口 175
11.3 用Commons FileUpload上传文件 176
11.4 Domain类 177
11.5 控制器 178
11.6 配置文件 179
11.7 JSP页面 181
11.8 应用程序的测试 183
11.9 用Servlet 3及其更高版本上传文件 184
11.10 客户端上传 188
11.11 小结 196
第十二章 下载文件 197
12.1 文件下载概览 197
12.2 范例1:隐藏资源 198
12.3 范例2:防止交叉引用 202
12.4 小结 206
附录A Tomcat 207
附录B servlet 211
附录C JavaServer Pages 236
附录D 部署描述符 258
· · · · · · (收起)
读后感
前言部分 spring mvc定义: spring框架中用于web应用开发的一个模块。 http:网络通信协议。 url:spring mvc定义: spring框架中用于web应用开发的一个模块。 http:网络通信协议。 url:spring mvc定义: spring框架中用于web应用开发的一个模块。 http:网络通信协议。 url...
前言部分 spring mvc定义: spring框架中用于web应用开发的一个模块。 http:网络通信协议。 url:spring mvc定义: spring框架中用于web应用开发的一个模块。 http:网络通信协议。 url:spring mvc定义: spring框架中用于web应用开发的一个模块。 http:网络通信协议。 url...
第一次看完书在豆瓣评论,心里好激动啊,会不会评论的不恰当啊,贬低作者水准啊。。。反正我觉得书不错~ 好了,下面开始正式评论: 0、相当轻量,很好梳理了我的知识 1、书封面就说了是针对初学者的书籍,如假包换,确实是这样,很好的入门书!!对于Java Web开发的基础进...
第一次看完书在豆瓣评论,心里好激动啊,会不会评论的不恰当啊,贬低作者水准啊。。。反正我觉得书不错~ 好了,下面开始正式评论: 0、相当轻量,很好梳理了我的知识 1、书封面就说了是针对初学者的书籍,如假包换,确实是这样,很好的入门书!!对于Java Web开发的基础进...
第一本从大学图书馆借来完整看完的书。 的确比较基础,有三分之一讲JSP相关的内容,可以顺便复习之前学的内容,进阶可以看官方文档。比起国内一些罗列知识点的书还是不错的。
用户评价
这本书给我的感觉是,它像是为“想快速投入实战但又害怕留下技术债”的开发者量身定制的。它的行文风格极其精炼,没有一句废话,直击问题的核心要害。我最欣赏的是它对“性能调优”这一环节的深度挖掘。很多指南在性能部分往往一笔带过,或者只给出一些笼统的建议,但这本书却详细拆解了MVC架构中可能出现的性能瓶颈——从视图解析器的开销,到Controller方法中的同步阻塞操作,甚至连路径匹配的效率问题都有涉及。作者还引入了一些非常实用的、甚至有些“黑科技”的技巧,比如如何利用异步处理来提升响应速度,以及如何正确配置缓存策略以减少不必要的后端计算。这些内容是那种只有在项目遇到瓶颈、不得不深入源码研究时才能领悟到的经验,但在这本书里,作者却提前将这些“经验值”直接赋予了读者。阅读它,就像是直接跳过了别人花费数年时间踩过的那些坑,这种效率提升是无价的。
说实话,我是一个对文档阅读有严重拖延症的人,大部分技术书籍的目录对我来说就像是催眠曲。但是这本《学习指南》完全打破了我的固有印象。它的排版设计简直是艺术品级别的,字体的选择、行距的控制,乃至代码示例的配色方案,都透露出一种对阅读体验的极致追求。更关键的是,它在内容组织上采用了“任务驱动型”的学习路径,而不是枯燥的API罗列。每一章都围绕着一个具体的、开发者在实际工作中会遇到的核心任务展开,比如“如何安全地处理用户输入验证”、“如何高效地构建RESTful API”。这种模式的好处是,你每学完一节,都能立刻看到对应的实践成果,这种即时反馈极大地激发了我的学习热情。我记得有一次在学习数据绑定时,我一度卡在了某个复杂的注解使用上,正当我准备放弃时,书中紧接着就提供了一个“排错小贴士”模块,用一个极小的代码片段精准地指出了我可能犯的常见错误,这种“预判式”的帮助,简直神了。这本书的作者显然不是一个纯粹的理论家,他是一个真正下过场、写过代码的实战派,他的每一个建议都带着泥土的芬芳,充满了实战智慧的沉淀。
我尝试过好几本同类主题的书籍,它们大多要么过于理论化,要么就是一本厚重的官方文档的拙劣重写。然而,这本书的独特之处在于它对“生态系统”的描绘,它没有孤立地讲解框架本身,而是将框架置于一个更广阔的Java企业级应用环境中去审视。例如,书中对事务管理的讲解,不仅仅停留在`@Transactional`注解的用法上,它深入分析了在不同隔离级别下可能出现的并发问题,并将其与底层的JDBC连接池管理关联起来讨论,这种跨层次的、系统性的分析,让我对整个后端架构有了更宏观的理解。此外,书中对单元测试和集成测试的重视程度超出了我的预期,作者用相当大的篇幅讨论了如何使用Mock对象来隔离依赖、如何编写可维护性高的测试用例,并且提供的测试代码示例质量极高,可以直接用于生产环境的参考。这对于我这种追求代码健壮性的工程师来说,简直是如获至宝。它教会我,优秀的框架学习,绝不仅仅是学会如何调用API,更是学会如何与它所处的整个技术栈和谐共处。
这本书简直是技术书籍中的一股清流,内容编排得极为用心,每一个知识点的讲解都仿佛是经验丰富的导师在面对面指导。我尤其欣赏作者在讲解核心概念时所采用的那种“由浅入深、循序渐进”的叙事方式。它不像某些教材那样上来就抛出大量晦涩难懂的专业术语,而是先用通俗易懂的类比和生活化的场景来勾勒出整个框架的轮廓,让你在对技术产生敬畏感的同时,又不会感到望而却步。比如,在描述请求生命周期时,作者没有简单地罗列流程图,而是将其比作一家高效运作的餐厅服务流程,从顾客点单(接收请求)到后厨处理(控制器执行),再到上菜(返回响应),每一个环节的关键角色和职责都清晰明了。这种叙事手法极大地降低了初学者的入门门槛,让我感觉自己不是在啃一块生硬的技术文档,而是在阅读一本引人入胜的技术小说。更值得称赞的是,书中对“约定优于配置”这一理念的阐述,不仅解释了其“是什么”,更深入挖掘了其背后的“为什么”,以及在实际项目中如何灵活运用,避免陷入过度教条主义的泥潭。它教会我的不仅仅是技术实现,更是一种解决问题的思维方式,一种面向大型项目的工程化视野。这本书的价值远超于它所覆盖的技术本身,它塑造了我对现代Web开发范式的基本认知。
与其他技术书籍相比,这本书最让我感到惊喜的是它对“现代化”和“未来趋势”的洞察力。它没有沉湎于旧有的、已经过时的编程范式,而是紧密结合了Java社区的最新发展,比如对函数式编程风格的引入,以及如何在新版的Servlet规范下更优雅地使用MVC组件。作者巧妙地将最新的语言特性融入到框架的讲解中,使得学到的知识不仅是“现在管用”的,更是“未来可期”的。例如,当讲解数据绑定时,它没有满足于传统的表单提交,而是引入了JSON处理和Schema验证的概念,为构建现代前后端分离应用打下了坚实的基础。更让我印象深刻的是,在介绍如何集成第三方库(如安全认证模块)时,作者的指导思路是开放式的,他提供的不是一个固定的、需要复制粘贴的模板,而是一套清晰的集成原则和解耦策略。这保证了读者在面对未来技术更新换代时,依然能够独立思考,快速适应。这本书不仅是一份指南,更像是一份引领我走向更广阔技术视野的“路线图”。
偏实用, 理论, 源码讲解较少, 入门不错
学习了1-4章,Android上需要用到 Spring MVC 框架,在完全不会的情况下,这本书很容易上手,入门书还可以。
很遗憾买了这本书,除了封面很棒,内容太糟糕了。不够深入又不够浅出,整本不厚的书基本都是代码的堆砌,都是泛泛而谈。
思考层次相当低的一本书,作为工具书总结一下还行
学习了1-4章,Android上需要用到 Spring MVC 框架,在完全不会的情况下,这本书很容易上手,入门书还可以。