欢迎来到中国铁道出版社有限公司官网!
$itImage.title$

独门架构 --Java Web开发应用详解

书      号:9787113116798

丛  书 名:

作      者:李宁 编著

译      者:

开      本:16开

装      帧:平装

正文语种:

出  版 社:中国铁道出版社有限公司

定      价:79

  • 内容简介

    本书以最贴近实用的整合平台为基础,详细介绍了以Java为开发语言平台,以Web开发为主要的模式,共分为JavaWeb基础篇、ExtJS篇、SSH整合篇和综合实例篇等4篇,在讲透关键技术的同时,侧重于不同技术之间的整合开发,以期于更好的贴近实际应用。所有综合实例均为作者实践参与项目,开发思想娓娓道来,代码注释详尽丰富,配合精彩的视频讲解,让读者迅速掌握基础架构,达到一定的开发水平。
  • 前言

    近几年我国软件开发行业蓬勃发展,关于Java开发工程师的职位越来越多,在人才市场有很大的需求,但是人才供需存在以下问题:
    ? 企业反映:应聘的人很多,但是能立刻上手的人很少,一句话,找不到合适的人才。
    ? 学生反映:掌握了各种理论,但还是不能开发实际项目,遇到问题不知所措。
    问题到底出现在哪里呢?我们调研和查询了大量的企业、学生和教育专家,得出一个结论:当前的教育体系和开发公司在需求之间的衔接上存在断层,虽然很多学生从高中甚至初中就开始学习计算机,但是技术陈旧、偏重理论,和企业的实际需求不符,那么企业需要什么样的程序员呢?很多老总说,他们需要能立刻上手的开发人员,能为公司完成项目的人员;遇到有潜力的员工,可以把他逐步培养成高级程序员。
    找到了问题的症结以后,我们组织了各方代表,包括企业招聘部门、项目经理、程序员、学校老师、学生、IBM/Sun公司技术人员等,广泛听取了大家的意见,围绕一个目标进行讨论:如何培养出企业需要的开发人才。在讨论以后,明确了这套培养Java专业程序员图书的编写宗旨:
    ? 要让一线开发人员编写,贴近企业需求。
    ? 只讲开发需要的关键内容,对于一些边边角角的技术,可能一辈子也用不到的,就直接不讲。
    ? 简化理论,强化实践,让读者在编码的过程中体会编程思想。
    ? 每个实例都有明确的目的,做到不重复、不遗漏,确保读者学一个会一个。
    ? 保证每个例子都能调试通过。代码注释细致,保证读者能很快学会。
    Java程序员成长之路
    为了让读者顺利成长为专业Java开发人员,我们调查了企业需要的Java程序员的知识和技能,设置了科学的学习体系,只要掌握本体系的课程,就能成为合格的程序员。本体系包括如下图书:
    《打通经脉 Java基础入门编程详解》
    《关键技术 JSP与JDBC应用详解》
    《神兵利器 Eclipse开发技术详解》
    《独门架构 Java Web开发应用详解》
    《开发参考 JSTL网络标签与SSH类参考手册》
    具体到每本书,我们也进行了合理的划分,每章都划分出详细的学习目标,列出了关键知识点。在具体的内容中,对于一些关键知识点和技能点,都提供相应的上机实践实例,对于一些特别需要反复练习的技能,我们还在部分章节的最后,提供了一些上机实践案例。
    从零开始成为合格Java程序员的方法
    虽然大、中专院校都设有程序设计课程,但大多数学习者对程序设计只是初步认识,基本上算是零基础。而目前合格Java程序员的基本要求是:精通Java面向对象基本语法;掌握Java数据库和JSP开发关键技术和工具;熟练应用SSH三大开发框架,能用它们完成一些Java Web项目开发。仔细分析一下,达到上述3个基本要求并非很难,你只需要花上3个月到半年的时间,按本套图书提供的学习体系,自己开发一些小程序,实现一些项目的开发,完成关键基础技术的学习,就可以实现这样的目标。
    学习是一个渐进腾飞的过程。开始是入门学习,学一点新知识,然后上机练习;再学一点新知识,然后再上机练习。循序渐进坚持下去,不断学习新知识、新技能,积累到一定程度就会突然发现,自己学任何Java相关技术的速度都很快了,所以,一定要持之以恒,坚持到自己的学习腾飞点的到来。掌握有效的学习方法,拥有比较好的学习资料,有助于提高学习效率。本套图书的编写,就是在总结了大多数程序员的Java学习模式的基础上进行的。
    (1)首先弄清楚Java基本概念,明确方向。开始学习时,最好要学问结合。比如,网上有个初学者最典型的问题:JavaScript语言与Java语言是什么关系,有何区别?其实JavaScript和Java的架构之间关系不大,一旦掌握了比较复杂的Java技术,JavaScript和AJAX等技术的学习也就最多花费一个月的时间即可。所以,明确核心,抓住主要学习方向是很重要的。
    (2)打好基础。学习Java之初,一定要学好基础内容。对于有些数值类型的基础语法,如果不能建立清晰的概念,特别是还学习过C++语言中类似的语法,就会很容易产生混淆。同时,JDK的安装和基本程序的调试是这个阶段的一个难点,自己要不断尝试。
    (3)抓住关键的面向对象技术。学习这部分内容时,一定要不断上机练习Java的面向对象语法,同时要不断思考面向对象理论。如果能自动将很多事物视为对象,那你就找到Java面向对象开发技术的感觉了。同时,建议借阅一些面向对象开发理论的工程技术的相关图书来结合进行学习。在这个阶段中,最好的学习方法就是多写代码并上机实践,来不断积累经验。当学习一个类以后,可以写一个简单的实例程序来运行一下,看看有什么结果,然后多调用几个类的方法,再看看运行结果。这样,可以非常直观地理解并掌握类,而且记忆非常深刻。同时,也不能仅仅满足于把代码调通,还应该想想如果不这样写,换个方式行不行。通过这样的方式,你就会透彻地掌握Java。
    (4)掌握高级开发技术和相关工具,即本套图书第2本和第3本书的内容。有了前面良好的基础,上机学习JSP和数据库开发等高级技术,是非常有必要的。这个阶段,可以尝试一下举一反三,检验自己能否编写一些相关小程序。同时开始掌握专业程序员常用的开发工具Eclipse。
    (5)学习Java Web开发,即本套书中第4本和第5本书的内容。毕竟,在目前的就业市场上,Web开发是热门的职位,同时也是技术发展的趋势。我们一本书学习Java Web开发的关键技术,一本书提供这方面内容的关键参考资料。Java Web开发是就业的关键,读者应该以能独立完成本书提供的项目为学习目标。
    总之,学习知识,上机实践,总结思考,然后再学习、再实践、再思考……不断循环,只要能潜心学习,积累合理的知识和技能结构,一定能利用Java技术开发出精彩纷呈的应用项目,从而获得学习和职场上的成功。
    关于本书
    随着Internet相关技术的兴起,Web开发模式也借助着互联网的东风逐渐成为大多数系统的首选开发模式。开发Web系统可以采用很多种技术,而Java语言这个拥有10多年历史的优秀语言已经成为了Web领域开发的一支主力军。
    1.Java Web开发技术的发展趋势
    Java诞生之初,Java发明者Sun公司就制定了用来实现Web系统的JSP和Servlet规范。由于Java是跨平台的语言,因此,JSP和Servlet自然也就可以在各种操作系统平台上运行。
    虽然JSP和Servlet从技术上已经完全可以满足开发的需要,但在开发大系统时出现了问题。由于JSP页面将HTML、JavaScript等客户端代码和服务端代码都混在了一起,因此给维护及团队开发上带来了困难。随着问题的出现,很多专家提出了解决方案。其中基于MVC模式的Struts 2框架比较全面地解决了这个问题。通过Struts 2框架,可以利用MVC模式将客户端代码和服务端代码分离,从而使系统更容易维护和管理。与Struts一起诞生的还有很多辅助开发的框架,例如Hibernate、Spring等,虽然这些框架并不是只能用在Java Web系统中,但它们的确在Java Web系统中起到了举足轻重的作用,甚至形成了Struts 2 + Spring + Hibernate的最佳组合,也就是SSH。
    虽然Java Web系统的代码分离和服务端的很多问题都得到了解决,但Web程序还有一个更大的问题没解决,即Web系统的客户端页面设计。在传统的Web页面中往往使用JavaScript、CSS等技术来美化页面,也会使用AJAX技术使页面变得更易用。但这些方法都必须建立在对JavaScript、CSS等技术非常熟悉的基础上。而这对于大多数Java Web程序员来说不太可能,也不太现实,因为很少有人同时精通客户端和服务端的各种技术。
    为了弥补这个不足,国内外出现了很多实现Web页面的客户端框架,其中要以ExtJS最为抢眼。通过ExtJS框架,可以很容易地将Web系统做成C/S风格的程序,还很容易实现树、表格等复杂Web元素。因此,将ExtJS和Java Web相关技术进行整合是一种非常好的方案。也就是ExtJS + Struts 2 + Spring + Hibernate的解决方案。
    2.一个开发者应该具备的知识技能结构
    要想学习Java Web及Struts 2、Spring、Hibernate、ExtJS这些框架,开发人员至少需要具备如下的知识结构:
    (1)编程的基本理论和方法。这一点很多开发人员在大学时期都已经具备了,例如,程序设计的3种结构,基本的逻辑思维。
    (2)Java的基本知识。虽然本书主要讲解Java Web、SSH等技术,并未涉及Java的基础知识,但本书所讲的技术都是使用Java语言进行编写的,因此,在学习本书之前,读者应先确认自己是否已经掌握了Java的基本知识。
    (3)Web设计的基本理论和方法。本书主要讲解Java Web开发的方法和技巧。因此,在学习本书之前,了解Web开发的基本方法将非常有助于读者学习本书的内容。
    (4)JavaScript、HTML、CSS技术。虽然本书所讨论的是ExtJS技术,使用这种技术一般并不需要对JavaScript、HTML、CSS有很深的了解,但如果读者掌握并了解这些客户端技术,会大大增强学习ExtJS技术的效果。
    3.本书学习导航
    如果读者还未掌握或从未使用过上面的技术也不要紧。本书所在套书中的《打通经脉 Java基础入门编程详解》一书中详细阐述了Java、JavaScript等技术重点,读者可先行了解学习。虽然本书提供了大量的示例程序,但这些程序都使用了较为常用的Java语法和类库。读者只要具备了基本的Java知识即可阅读本书的内容。
    初学者要学习Java Web技术,首先应该掌握JSP和Servlet的基础知识,因此,本书在第1篇着重介绍了这些基础知识。然后读者可以对服务器端技术(如Struts 2、Hibernate、Spring)进行学习,也可以学习像ExtJS一样的客户端技术。在本书的第2篇介绍了SSH整合技术;第3篇介绍了ExtJS技术,读者可以选择从第2篇学起。如果读者已经掌握了SSH整合技术,可以从第3篇开始学习ExtJS技术。最后一篇给出了几个综合案例,读者在学完本书前3篇的内容后,可以使用这些案例测试一下自己掌握的程度。
    4.本书内容
    本书共分为4篇27章,从最基础的Java Web技术开始讲起,然后详细讲解了SSH关键技术以及重要的Web开发ExtJS组件技术,最后通过5个综合案例提升读者开发经验,内容安排如下:
    第1篇:Java Web基础
    第1章 本章主要介绍了Servlet的基础知识,包括Servlet开发的基本过程、Servlet的原理、处理请求和响应消息以及Cookie和Session。
    第2章 本章主要介绍了建立JSP程序的基本方法、JSP的基本语法、JSP指令、内置对象以及JSP标签等基础知识。
    第3章 本章主要介绍了JSP中的表达式语言(EL),包括EL的内置对象、EL的基本语法、EL中的运算符以及EL自定义函数。
    第4章 本章主要介绍了Java和JSP的国际化技术,主要包括与国际化相关的Java类以及如何开发国际化的Web程序。
    第5章 本章主要介绍了JSP标准标签库中的核心标签库和国际化标签库。
    第6章 本章接着第5章继续介绍JSP标准标签库,包括数据库标签库、XML标签库以及JSTL自定义函数。
    第7章 本章主要介绍了如何实现自定义标签,包括实现基本的自定义标签、自定义标签的属性以及迭代标签、标签体等内容。
    第2篇:SSH整合技术
    第8章 本章主要介绍了Struts 2的基础知识,包括开发Struts 2程序的基本步骤、模型驱动、配置Struts 2。
    第9章 本章主要介绍了Struts 2中比较常用的技术,包括常用的类和接口,结果(Result)、模型驱动、异常处理等技术。
    第10章 本章主要介绍了Struts 2中的类型转换,包括传统的类型转换技术、Struts 2内嵌的类型转换器、处理Collection和Map映射等技术。
    第11章 本章主要介绍了Struts 2的拦截器,包括拦截器的原理、内置拦截器和自定义拦截器等技术。
    第12章 本章主要介绍了Struts 2中的输入校验功能,其中包括使用validate方法进行校验、使用validation框架进行校验以及内置校验器。
    第13章 本章主要介绍了Struts 2的常用标签,包括控制标签、数据标签、表单标签等技术。
    第14章 本章主要介绍了Hibernate的基础知识,包括开发Hibernate应用程序的基本步骤、配置Hibernate等技术。
    第15章 本章主要介绍了Hibernate的会话及对象映射技术。
    第16章 本章主要介绍了Hibernate的标准查询和HQL技术。
    第17章 本章主要介绍了如何使用整合Struts 2、Hibernate、Spring的方式来开发Web应用程序。
    第3篇:ExtJS框架篇
    第18章 本章主要介绍了ExtJS的基础知识,其中包括安装和使用ExtJS、ExtJS的事件、ExtJS中的核心组件。
    第19章 本章主要介绍了ExtJS的常用组件,其中包括对话框组件、表单组件、布局组件。
    第20章 本章主要介绍了表格组件,其中包括表格组件的基础知识、表格分页、编辑表格中的数据等。
    第21章 本章主要介绍了ExtJS中的TreePanel组件,其中包括添加子结点、事件、菜单、拖放操作等。
    第22章 本章主要介绍了ExtJS中的其他组件,其中包括工具条和菜单、工具栏组件等。
    第4篇:综合实例篇
    第23~27章 综合实例部分。这5章分别给出了5个综合案例。第23章:网络硬盘;第24章:数字魔法之读心术;第25章:注册与登录系统;第26章:博客系统;第27章:电子相册。
    5.本书特色
    (1)从基础开始,由浅入深
    本书在第1篇讲解了JSP/Servlet的基础知识,并由浅入深地介绍了JSP的各种核心知识点,读者可以通过第1篇掌握JSP和Servlet技术。第2篇和第3篇的结构与第1篇类似,由浅入深地介绍了SSH和ExtJS的相关知识。
    (2)各篇独立,内容完整
    本书的每一篇都是相对独立的。如第2篇讲解了SSH整合技术;第3篇讲解了ExtJS的各种技术。而且每一篇讲解的技术比较完整,这样就给想学习SSH+ExtJS整合技术,但却未掌握SSH及ExtJS的相关技术的读者带来方便:不需要同时准备几本书,从而节省了大量的时间和金钱。
    (3)各章实例丰富,使读者更容易理解书中的知识
    本书几乎在每一章都提供了大量的实例。这些实例充分展现了相关知识点的实现细节。读者可以在学习相关知识点后,通过上机实践这些例子来更深入地了解并掌握这些知识点。
    (4)提供了完整的实例,使读者更进一步体会SSH及ExtJS开发模式的精髓
    在本书的最后还提供了5个完整的实例。这5个实例都采用了SSH模式进行开发。通过对这5个实例进行深入研究,读者可以比较全面地掌握基于SSH模式的Web应用程序的开发步骤和开发方法,并可将实例中所采用的技术应用到自己的项目中。
    (5)使用最新版本的开发工具和框架
    本书中所使用的开发工具和相关的框架在笔者写作本书时都是最新版本,如Eclipse 3.4、Struts 2.1.6、ExtJS 3.0等。读者可以在学习SSH及ExtJS开发技术的同时,接触到目前最新版本的开发工具和框架。就算读者目前所使用的软件版本低于本书所使用的软件版本,也可以为未来的工作奠定基础。
    (6)适合人群
    ? 初步掌握Java技术,想进一步学习SSH整合开发的读者。
    ? 对SSH整合技术有了一定的了解,想进一步提高的读者。
    ? 正在使用SSH整合技术开发项目,想查阅相关技术的读者。
    ? 想了解ExtJS技术的读者。
    ? 想掌握如何将ExtJS和SSH整合的读者。
    ? 大、中专院校的学生。
    ? 社会培训学生。
  • 目录

    第1篇 Java Web基础篇
    第1章 Servlet开发
    1.1 用Eclipse开发第一个Servlet程序 2
    1.1.1 建立Web工程 2
    1.1.2 编写Servlet程序 3
    1.1.3 运行Servlet 4
    1.1.4 调试Servlet 5
    1.2 手工编写和发布Web程序 5
    1.2.1 编写web.xml 6
    1.2.2 使用JAR进行打包 8
    1.2.3 发布到指定的目录 8
    1.3 配置数据库连接池 9
    1.4 Servlet的原理和实现 12
    1.4.1 Servlet程序的层次关系 12
    1.4.2 Servlet的编写过程 13
    1.4.3 Servlet的执行过程 15
    1.4.4 显示服务端图像 17
    1.5 使用HttpServletResponse产生响应消息 19
    1.5.1 产生状态响应码 20
    1.5.2 设置响应消息头 20
    1.5.3 验证响应消息头设置情况 22
    1.5.4 产生响应正文 24
    1.5.5 用sendRedirect方法实现请求重定向 25
    1.5.6 用include方法实现资源包含 25
    1.5.7 用forward方法实现请求转发 28
    1.6 使用HttpServletRequest获得请求消息 30
    1.6.1 获取请求行消息 30
    1.6.2 获取网络连接消息 31
    1.6.3 获取请求头消息 31
    1.7 处理Cookie 32
    1.7.1 Cookie类 32
    1.7.2 Cookie的功能演示 33
    1.8 处理Session 36
    1.8.1 HttpSession接口中的方法 36
    1.8.2 HttpServletRequest接口中的Session方法 38
    1.8.3 通过Cookie跟踪Session 38
    1.8.4 通过重写URL跟踪Session 40
    1.9 本章小结 42
    第2章 JSP入门
    2.1 用Eclipse开发第一个JSP程序 43
    2.1.1 建立一个JSP程序 44
    2.1.2 调试JSP程序 45
    2.1.3 改变JSP的访问路径 45
    2.1.4 改变JSP的扩展名 46
    2.1.5 手动发布JSP 46
    2.2 JSP运行原理 47
    2.2.1 Tomcat如何处理JSP页 47
    2.2.2 分析由JSP生成的Servlet代码 49
    2.3 JSP基本语法 53
    2.3.1 JSP表达式 53
    2.3.2 在JSP中嵌入Java代码 53
    2.3.3 JSP声明 55
    2.3.4 JSP表达式语言(EL) 57
    2.3.5 JSP代码中的注释 61
    2.4 JSP指令 62
    2.4.1 JSP指令简介 62
    2.4.2 page指令 63
    2.4.3 include指令 67
    2.5 内置对象 68
    2.5.1 out对象 69
    2.5.2 pageContext对象 70
    2.5.3 其他JSP内置对象 71
    2.6 JSP标签 73
    2.6.1 标签 73
    2.6.2 标签 75
    2.6.3 标签 75
    2.6.4 标签 76
    2.6.5 标签 78
    2.6.6 标签 80
    2.7 本章小结 81
    第3章 表达式语言
    3.1 EL概述 82
    3.2 EL入门 83
    3.2.1 在JSP页面中使用EL表达式 83
    3.2.2 在标签中使用EL表达式 83
    3.2.3 在web.xml中禁用EL表达式 83
    3.3 EL的内置对象 84
    3.3.1 内置对象与域对象 84
    3.3.2 pageContext对象 85
    3.3.3 param和paramValues对象 86
    3.3.4 header和headerValues对象 87
    3.3.5 cookie对象 87
    3.3.6 initParam对象 88
    3.4 EL的基本语法 88
    3.4.1 标识符 89
    3.4.2 保留字 89
    3.4.3 常量 89
    3.4.4 变量 90
    3.4.5 枚举类型 91
    3.5 EL中的运算符 92
    3.5.1 方括号和点运算符 92
    3.5.2 算术运算符 94
    3.5.3 关系运算符 94
    3.5.4 逻辑运算符 95
    3.5.5 empty运算符 96
    3.5.6 条件运算符 96
    3.5.7 圆括号运算符 96
    3.5.8 运算符的优先级 97
    3.6 EL自定义函数 97
    3.6.1 EL自定义函数简介 97
    3.6.2 编写EL自定义函数的静态Java方法 97
    3.6.3 配置EL自定义函数 98
    3.6.4 使用EL自定义函数 99
    3.7 本章小结 100
    第4章 国际化
    4.1 国际化与本地化概述 101
    4.2 与国际化相关的Java类 103
    4.2.1 Locale类 103
    4.2.2 获得JDK支持的所有本地信息 107
    4.2.3 ResourceBundle类 108
    4.2.4 处理中文资源文件的工具 110
    4.2.5 获得国际化资源信息 112
    4.2.6 从Java类中获得国际化资源信息 113
    4.2.7 DateFormat类 114
    4.2.8 SimpleDateFormat类 116
    4.2.9 格式化Date对象 117
    4.2.10 解析日期/时间字符串 118
    4.2.11 NumberFormat类 119
    4.2.12 DecimalFormat类 121
    4.2.13 格式化数值 122
    4.2.14 解析表示数值的字符串 124
    4.2.15 MessageFormat类 124
    4.2.16 格式化带占位符的国际化资源信息 127
    4.2.17 动态设置占位符的数据类型和显示模式 128
    4.3 开发国际化的Web程序 130
    4.3.1 Web程序国际化的原理 131
    4.3.2 编写国际化的Web程序 133
    4.4 本章小结 135
    第5章 JSP标准标签库(一)
    5.1 标签库的组成部分 136
    5.2 建立JSTL的开发环境 136
    5.3 核心标签库 137
    5.3.1 标签 138
    5.3.2 标签 140
    5.3.3 标签 142
    5.3.4 标签 143
    5.3.5 标签 144
    5.3.6 标签 145
    5.3.7 标签 146
    5.3.8 标签 156
    5.3.9 标签 158
    5.3.10 标签 159
    5.3.11 标签 161
    5.3.12 标签 162
    5.4 国际化标签库 164
    5.4.1 标签 164
    5.4.2 标签 165
    5.4.3 标签 167
    5.4.4 标签 167
    5.4.5 标签 169
    5.4.6 标签 169
    5.4.7 标签 171
    5.4.8 标签 171
    5.4.9 标签 172
    5.4.10 标签 175
    5.4.11 标签 176
    5.4.12 标签 178
    5.5 本章小结 180
    第6章 JSP标准标签库(二)
    6.1 数据库标签库 181
    6.1.1 标签 182
    6.1.2 标签 183
    6.1.3 标签 185
    6.1.4 标签 188
    6.1.5 标签 190
    6.1.6 标签 190
    6.2 XML标签库 191
    6.2.1 标签 192
    6.2.2 使用Filter过滤XML文档 194
    6.2.3 标签 196
    6.2.4 标签 197
    6.2.5 XPath表达式的条件判断 197
    6.2.6 标签 198
    6.2.7 标签 199
    6.2.8 标签 199
    6.2.9 标签 201
    6.2.10 标签 204
    6.3 JSTL自定义函数 205
    6.3.1 fn:contains函数 205
    6.3.2 fn:containsIgnoreCase函数 205
    6.3.3 fn:startsWith函数 206
    6.3.4 fn:endsWith函数 206
    6.3.5 fn:escapeXml函数 206
    6.3.6 fn:indexOf函数 207
    6.3.7 fn:split函数 207
    6.3.8 fn:join函数 207
    6.3.9 fn:length函数 207
    6.3.10 fn:replace函数 208
    6.3.11 fn:substring函数 208
    6.3.12 fn:substringAfter函数 209
    6.3.13 fn:substringBefore函数 209
    6.3.14 fn:toLowerCase函数 210
    6.3.15 fn:toUpperCase函数 210
    6.3.16 fn:trim函数 210
    6.4 本章小结 210
    第7章 自定义标签的开发与应用
    7.1 自定义标签基础 211
    7.1.1 编写输出随机数的标签 211
    7.1.2 自定义标签能做什么 215
    7.1.3 自定义标签API 216
    7.2 实现基本的自定义标签 219
    7.2.1 Tag接口 219
    7.2.2 标签类中方法的调用顺序 221
    7.2.3 控制是否执行标签体 223
    7.2.4 控制是否执行标签后面的内容 224
    7.2.5 限定自定义标签的父标签 226
    7.3 自定义标签的属性 228
    7.3.1 定义标签属性 228
    7.3.2 编写数学运算标签 230
    7.3.3 动态属性值 232
    7.3.4 标签的动态属性 234
    7.3.5 使用动态属性生成不同风格的列表框 235
    7.4 迭代标签 238
    7.4.1 IterationTag接口 238
    7.4.2 编写迭代集合的标签 239
    7.5 处理标签体内容 243
    7.5.1 BodyTag接口 243
    7.5.2 BodyContent类 245
    7.5.3 编写将URL转换成a元素的标签 245
    7.5.4 编写将文本内容转换成表格的标签 247
    7.6 标签体的类型 254
    7.7 在自定义标签中使用Java变量 255
    7.7.1 在TLD文件中定义Java变量 255
    7.7.2 TLD文件中的Java变量详解 256
    7.7.3 JSP引擎如何创建声明和使用Java变量的语句 258
    7.7.4 使用TagExtraInfo类定义Java变量 260
    7.7.5 编写使用Base64格式编码和解码的标签 261
    7.8 本章小结 266
    第2篇 SSH整合技术篇
    第8章 Struts 2入门
    8.1 Struts 2简介 268
    8.1.1 Struts 2的MVC模式 268
    8.1.2 Struts 2的下载和安装 269
    8.2 编写一个简单的Struts 2程序 270
    8.3 模型驱动 274
    8.4 Struts 2中的配置文件 277
    8.4.1 web.xml文件的配置 277
    8.4.2 struts.xml文件的配置 278
    8.4.3 struts.properties文件的配置 281
    8.4.4 使用DTD 284
    8.5 Struts 2的配置标签 287
    8.5.1 标签 287
    8.5.2 标签 289
    8.5.3 标签 290
    8.5.4 标签 290
    8.5.5 struts.xml文件中的命名空间 292
    8.5.6 配置拦截器 293
    8.6 本章小结 294
    第9章 Struts 2中的常用技术
    9.1 常用类和接口 295
    9.1.1 getter和setter方法 295
    9.1.2 Action接口 297
    9.1.3 ActionSupport类 298
    9.1.4 通过ActionContext访问Servlet API 299
    9.1.5 通过感知拦截器访问Servlet API 305
    9.1.6 动态方法处理多个提交请求 308
    9.1.7 通过method属性处理多个提交请求 309
    9.1.8 通配符 311
    9.2 结果(Result) 314
    9.2.1 配置Result 314
    9.2.2 Result类型 316
    9.2.3 用通配符指定结果 318
    9.2.4 用请求参数指定结果 319
    9.3 模型驱动 320
    9.3.1 ModelDriven概述 320
    9.3.2 使用模型驱动改进登录程序 322
    9.4 异常处理 325
    9.4.1 处理异常的原理 325
    9.4.2 实例:登录系统的异常处理 326
    9.5 本章小结 329
    第10章 Struts 2的类型转换
    10.1 类型转换简介 330
    10.1.1 客户端和服务端之间的数据转换 330
    10.1.2 传统的类型转换 331
    10.2 使用Struts 2类型转换器 335
    10.2.1 内置类型转换器 335
    10.2.2 OGNL类型转换器 339
    10.2.3 配置全局类型转换器 343
    10.2.4 Struts类型转换器 346
    10.2.5 数组类型转换器 348
    10.2.6 集合类型转换器 351
    10.3 处理Collection和Map映射 355
    10.3.1 指定集合元素的类型 355
    10.3.2 Set和索引属性 357
    10.4 本章小结 359
    第11章 拦截器
    11.1 拦截器基础 360
    11.1.1 拦截器简介 360
    11.1.2 配置拦截器 360
    11.1.3 使用拦截器 361
    11.1.4 设置拦截器参数 362
    11.1.5 默认拦截器 362
    11.2 Struts 2的内置拦截器 363
    11.2.1 内置拦截器简介 363
    11.2.2 alias拦截器 365
    11.2.3 exception拦截器 366
    11.3 自定义拦截器 367
    11.3.1 编写拦截器类 367
    11.3.2 配置自定义拦截器 369
    11.4 拦截器的高级技术 371
    11.4.1 过滤指定的方法 371
    11.4.2 拦截器执行顺序 374
    11.4.3 拦截器结果监听器 375
    11.5 本章小结 378
    第12章 输入校验
    12.1 使用validate方法进行数据校验 379
    12.1.1 validate方法校验数据的原理 379
    12.1.2 用validate方法进行输入校验 381
    12.1.3 使用validateXxx方法进行输入校验 384
    12.1.4 Struts 2的输入校验流程 385
    12.2 使用Validation框架进行数据校验 385
    12.2.1 使用Validation框架进行服务端校验 386
    12.2.2 字段和非字段校验器 390
    12.2.3 国际化错误提示信息 392
    12.2.4 校验文件的命名规则 394
    12.3 validation框架的内置校验器 396
    12.3.1 conversion校验器 396
    12.3.2 date校验器 396
    12.3.3 double校验器 397
    12.3.4 email校验器 397
    12.3.5 expression校验器 397
    12.3.6 fieldexpression校验器 398
    12.3.7 int校验器 398
    12.3.8 regex校验器 398
    12.3.9 required校验器 399
    12.3.10 requiredstring校验器 399
    12.3.11 stringlength校验器 399
    12.3.12 url校验器 400
    12.4 本章小结 400
    第13章 Strtus 2的常用标签
    13.1 控制标签 401
    13.1.1 if/elseif/else标签 401
    13.1.2 iterator标签 404
    13.1.3 append标签 408
    13.2 数据标签 409
    13.2.1 action标签 409
    13.2.2 bean标签 412
    13.2.3 include标签 414
    13.2.4 param标签 415
    13.2.5 property标签 415
    13.2.6 set标签 416
    13.3 表单标签 418
    13.3.1 form、submit和reset标签 418
    13.3.2 checkboxlist标签 419
    13.3.3 combobox标签 422
    13.3.4 select标签 423
    13.3.5 radio标签 424
    13.4 本章小结 425
    第14章 Hibernate入门
    14.1 Hibernate概述 426
    14.2 编写第一个Hibernate程序 426
    14.2.1 开发Hibernate程序的步骤 427
    14.2.2 建立数据表 427
    14.2.3 建立Hibernate配置文件 427
    14.2.4 编写会话工厂类 428
    14.2.5 编写实体Bean 431
    14.2.6 建立映射文件 432
    14.2.7 编写Action类 432
    14.2.8 编写JSP页面 434
    14.3 配置Hibernate 435
    14.3.1 用XML文件配置Hibernate 435
    14.3.2 用属性文件配置Hibernate 438
    14.3.3 用编程的方式配置Hibernate 438
    14.3.4 Hibernate框架的配置属性 439
    14.3.5 SQL方言 442
    14.3.6 使用JNDI数据源 443
    14.3.7 配置映射文件 444
    14.4 本章小结 444
    第15章 Hibernate会话与关系对象映射
    15.1 会话基础 445
    15.1.1 对象持久化 445
    15.1.2 持久化对象的关系 446
    15.1.3 装载持久化对象 447
    15.1.4 更新持久化对象 449
    15.1.5 删除持久化对象 449
    15.2 建立关系对象映射 450
    15.2.1 映射主键 450
    15.2.2 映射普通属性 450
    15.2.3 组件映射 451
    15.2.4 多对一单向关联关系 451
    15.2.5 一对多的双向关联关系 452
    15.2.6 基于外键的一对一的关系映射 453
    15.2.7 基于主键的一对一的关系映射 453
    15.3 本章小结 458
    第16章 Hibernate的高级技术
    16.1 标准查询 459
    16.1.1 约束条件 459
    16.1.2 分页显示数据 460
    16.1.3 获得一个持久化对象 462
    16.1.4 使用Order类对数据进行排序 462
    16.1.5 关联多个实体Bean 463
    16.1.6 聚合与分组 464
    16.1.7 使用QBE 466
    16.2 HQL详解 467
    16.2.1 HQL入门 468
    16.2.2 from子句 468
    16.2.3 select子句 470
    16.2.4 where子句 471
    16.2.5 命名参数 472
    16.2.6 分页显示数据 473
    16.2.7 排序和分组 473
    16.2.8 关联查询 474
    16.2.9 聚合函数 476
    16.2.10 update和delete语句 477
    16.2.11 insert语句 478
    16.2.12 命名查询 478
    16.3 本章小结 479
    第17章 整合Struts 2、Spring和Hibernate
    17.1 整合Struts 2与Hibernate 480
    17.2 Spring概述 483
    17.3 Spring开发入门 484
    17.3.1 Spring的下载和安装 484
    17.3.2 IoC模式概述 484
    17.3.3 关于Spring的一个简单的例子 486
    17.4 整合Struts 2、Spring和Hibernate 488
    17.4.1 装配数据访问层 488
    17.4.2 装配业务逻辑层 489
    17.4.3 使用Struts 2的Spring插件 490
    17.5 本章小结 491
    第3篇 ExtJS框架篇
    第18章 ExtJS入门
    18.1 ExtJS基础 494
    18.1.1 下载和安装ExtJS 494
    18.1.2 编写第一个ExtJS程序 494
    18.1.3 ExtJS的国际化 495
    18.1.4 查看ExtJS API 496
    18.2 ExtJS的事件 496
    18.2.1 注册和删除事件 496
    18.2.2 Observable类 498
    18.3 ExtJS中的核心组件 500
    18.3.1 Ext.Component组件 500
    18.3.2 Ext.BoxComponent组件 503
    18.3.3 Ext.Container组件 503
    18.3.4 Ext.Button组件 504
    18.3.5 Ext.Panel组件 505
    18.3.6 Ext.Window组件 506
    18.4 本章小结 507
    第19章 ExtJS的常用组件
    19.1 对话框组件 508
    19.1.1 提醒对话框 508
    19.1.2 确认对话框 509
    19.1.3 输入对话框 509
    19.1.4 等待对话框 509
    19.1.5 进度对话框 510
    19.1.6 带图像的对话框 510
    19.2 表单组件 511
    19.2.1 Ext.form.FormPanel组件 511
    19.2.2 Ext.form.TextField组件 513
    19.2.3 Ext.form.TextArea组件 514
    19.2.4 Ext.form.DateField组件 514
    19.2.5 Ext.form.TimeField组件 514
    19.2.6 Ext.form.ComboBox组件 515
    19.2.7 Ext.form.TriggerField组件 516
    19.3 布局组件 517
    19.3.1 FormLayout组件 517
    19.3.2 ColumnLayout组件 518
    19.3.3 Ext.form.FieldSet组件 520
    19.4 本章小结 521
    第20章 表格组件
    20.1 表格基础 522
    20.1.1 编写第一个表格程序 522
    20.1.2 设置表格的列宽度 525
    20.1.3 表格排序 525
    20.1.4 在表格中显示复选框 526
    20.1.5 显示行号 526
    20.2 表格分页 527
    20.2.1 为表格组件添加分页工具栏 527
    20.2.2 在表格组件的顶部显示分页工具栏 528
    20.2.3 滑动风格分页工具栏 529
    20.2.4 带进度条的分页工具栏 529
    20.3 编辑表格中的数据 530
    20.3.1 第一个可编辑的表格 530
    20.3.2 向表格添加新行 531
    20.3.3 保存数据 533
    20.4 本章小结 533
    第21章 TreePanel组件
    21.1 TreePanel组件基础 534
    21.1.1 我们的第一棵树 534
    21.1.2 添加子结点 535
    21.1.3 读取服务端的JSON数据 536
    21.1.4 事件 538
    21.1.5 右键菜单 540
    21.1.6 显示结点文本 541
    21.1.7 将结点设置成超链接 541
    21.1.8 修改结点的文本 542
    21.2 拖放树结点 543
    21.2.1 结点拖放的位置 543
    21.2.2 向叶子结点追加子结点 544
    21.2.3 在树之间拖放结点 544
    21.3 本章小结 545
    第22章 ExtJS中的其他组件
    22.1 菜单组件 546
    22.1.1 基本的菜单 546
    22.1.2 下拉菜单 547
    22.1.3 多级菜单 549
    22.1.4 向菜单中添加分隔线 550
    22.1.5 多选和单选菜单 551
    22.1.6 日期和颜色菜单 553
    22.2 工具栏组件 554
    22.2.1 Ext.Toolbar.Button组件 555
    22.2.2 Ext.Toolbar.TextMenu组件 555
    22.2.3 Ext.Toolbar.Spacer组件 555
    22.2.4 Ext.Toolbar.Separator组件 556
    22.2.5 Ext.SplitButton组件 556
    22.2.6 在工具栏上添加输入组件 557
    22.3 本章小结 557
    第4篇 综合实例篇
    第23章 网络硬盘
    23.1 系统功能描述 560
    23.2 数据库设计 560
    23.3 数据库访问 562
    23.3.1 配置数据源 562
    23.3.2 对数据进行增、删、改、查 562
    23.3.3 处理用户数据 565
    23.3.4 处理文件和目录 565
    23.4 主页面的实现 568
    23.4.1 建立主页面 568
    23.4.2 验证JSP页面的访问权限 570
    23.4.3 建立验证Servlet访问权限的Servlet 571
    23.5 新建文件夹 573
    23.5.1 建立新建文件夹页面 573
    23.5.2 显示模式窗口 574
    23.5.3 建立创建目录的Servlet 574
    23.6 上传文件 575
    23.6.1 建立上传文件页面 575
    23.6.2 建立上传文件Servlet 577
    23.7 下载文件和目录 580
    23.7.1 下载单个文件 580
    23.7.2 打包下载多个文件和目录 581
    23.7.3 通过AJAX技术发送下载请求 582
    23.8 删除文件和目录 584
    23.9 本章小结 586
    第24章 数字魔法之读心术
    24.1 奇妙的数字游戏 587
    24.2 预定义数字块 588
    24.3 随机显示数字块中的数字 588
    24.4 猜猜,选的是哪个数字 593
    24.5 本章小结 595
    第25章 注册与登录系统
    25.1 系统概述 596
    25.2 数据库设计 596
    25.3 实现数据持久化和业务逻辑层 597
    25.3.1 编写User类 597
    25.3.2 编写DAOSupport类 598
    25.3.3 编写操作用户信息的DAO组件 599
    25.3.4 编写与用户相关的Service组件 599
    25.4 实现Action类与Web表现层组件 601
    25.4.1 编写ModelAction类 601
    25.4.2 用户注册 602
    25.4.3 用户登录 603
    25.5 本章小结 604
    第26章 博客系统
    26.1 系统概述 605
    26.2 数据库设计 605
    26.3 数据持久层组件 606
    26.3.1 编写Blog类 607
    26.3.2 编写Reply类 609
    26.4 数据访问层组件 611
    26.4.1 编写操作Blog信息的DAO组件 611
    26.4.2 编写操作回复信息的DAO类 613
    26.5 业务逻辑层组件 614
    26.5.1 编写与Blog相关的Service组件 614
    26.5.2 编写与回复相关的Service组件 617
    26.5.3 编写ServiceManager类 619
    26.6 配置Spring 619
    26.7 Web表现层组件 622
    26.7.1 实现博客系统的主页面 622
    26.7.2 发布与编辑Blog信息 624
    26.7.3 添加与显示回复信息 625
    26.8 本章小结 627
    第27章 电子相册
    27.1 系统概述 628
    27.2 数据库设计 629
    27.3 数据持久层与访问层组件 630
    27.3.1 数据持久层组件:User类 630
    27.3.2 数据持久层组件:Album类 631
    27.3.3 数据持久层组件:Photo类 632
    27.3.4 数据访问层组件:UserDAO类 634
    27.3.5 数据访问层组件:AlbumDAO类 635
    27.3.6 数据访问层组件:PhotoDAO类 638
    27.4 实现业务逻辑层 641
    27.4.1 业务逻辑层组件:UserService类 641
    27.4.2 业务逻辑层组件:AlbumService类 642
    27.4.3 业务逻辑层组件:PhotoService类 643
    27.5 处理用户请求的Servlet 645
    27.5.1 CommonServlet类 645
    27.5.2 创建相册:CreateAlbumServlet类 649
    27.5.3 删除相册:DeleteAlbumServlet类 650
    27.5.4 获得所有相册的信息:GetAlbumsServlet类 650
    27.5.5 获得指定相册的内容:GetAlbumServlet类 651
    27.5.6 上传照片:UploadPhotoServlet类 652
    27.5.7 删除照片:DeletePhotoServlet类 652
    27.5.8 浏览指定的照片:ViewPhotoServlet类 653
    27.6 Web表现层 654
    27.6.1 用户登录页面:login.jsp 655
    27.6.2 用户注册页面:register.jsp 658
    27.6.3 电子相册的主页面:main.jsp 661
    27.6.4 建立相册的JSP页面:create_albums.jsp 662
    27.6.5 更新相册属性的JSP页面:upload_albums.jsp 664
    27.6.6 显示相册中照片的JSP页面:view_album.jsp 664
    27.6.7 上传照片的JSP页面:upload_photo.jsp 667
    27.7 本章小结 668
  • 作者介绍

    主要著译者顺序姓名学历职称学科专长通讯地址1 李宁硕士 高级工程师 Web开发工作单位东软集团 邮政编码 电话13718270939 2 工作单位 邮政编码 电话 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话
  • 编辑推荐

    (1) 实例丰富,强调实践本书在讲解过程中穿插了大量的实例,最后还提供综合案例,比较实用,为以后程序开发奠定了基础。(2) 代码规范,注释丰富为了让自学人员更加容易读懂源代码,在编排时特别注意到了代码的规范性,而且对代码进行了丰富的注释,从而让读者阅读起来没有障碍。(3) 概念准确,容易理解概念是每个自学人员理解上的难点,也是掌握每个技术点的关键,所以必须准确。本书所涉及的概念都以简单的语言进行描述,必要的时候还进行类比,让人容易理解。(4)光盘内容实用、超值配书光盘提供了书中所涉及的源代码及相关操作的多媒体视频演示,以方便读者使用。(5) 提供技术支持本书提供技术论坛和QQ答疑,读者可以在上面提问交流。另外,论坛上还有一些小的教程、视频动画和各种技术文章,可帮助读者提高开发水平。
  • 书评书荐

  • 附件下载

图书推荐