本书由浅入深、循序渐进地介绍了学习Java Web程序开发必备的知识和技能。主要内容包括构建Java Web开发环境、JSP页面元素、JSP内置对象、JavaBean、数据库访问技术、Servlet技术、使用EL表达式、JSTL标准标签、JSP操作XML、文件上传与下载、使用Ajax技术、Struts 2框架的具体应用、Hibernate框架应用和Spring框架应用,最后以一个Struts 2+Hibernate+Spring三大框架整合的实例,综合地介绍了Java Web在实际开发中的应用。
本书适合Java Web初学者快速入门,也适合已有Java Web基础的人员完善自己的Java Web知识体系。另外,对于大中专院校和培训班的学生,本书更是一本不可多得的教材。
Java是Sun公司推出的能够跨越多平台的、可移植性最高的编程语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。从而使其成为应用范围最广泛的开发语言,特别是在Web程序开发方面。
在市场上可以看到大量Java Web方面的书籍,这些书籍写的都很不错。可是,很多读者看过之后虽然对知识点都了解了,但是依然不会动手操作,想要自己独立开发一个项目很难。作者研究其中原因发现,大多书籍比较重视知识点的介绍而忽略了实践练习的重要性。本书从初学者的角度出发,循序渐进地讲解使用Java语言和开源框架进行Web程序开发应该掌握的技术,其中主要包括JSP/Servlet技术、常用的Web开发框架和Web开发实用技术等,这些知识是每一个程序员都应该具备的。
本书内容
第1章:构建Java Web应用程序。主要介绍了Java Web应用技术和服务器的安装;重点介绍了JDK的安装和配置以及Tomcat与MyEclipse的集成。
第2章:JSP页面元素。主要介绍了JSP的基本元素和页面指令,重点讲解了脚本和各种动作元素的使用,并且使用本章所学知识完成一个求圆面积的项目案例。
第3章:JSP内置对象。主要介绍JSP九大内置对象及其用法以及它们的作用,之后应用JSP内置对象做出了一个简单的在线考试系统。
第4章:JavaBean编程技术。主要讲述了JavaBean的构成和JavaBean中不同类型属性的使用;重点讲述了JavaBean在JSP页面中的应用以及JavaBean不同作用域的应用。
第5章:数据库访问技术。主要介绍了JDBC的概念、用法以及其驱动,还介绍了连接池连接数据库;重点介绍了在JSP中访问数据库的方法,以及连接数据库的常用接口。最后做了一个会员的增删改查系统来巩固本章知识。
第6章:Servlet技术。主要介绍了Servlet概念以及配置,介绍了Servlet基本类和常用接口;重点介绍了Servlet的会话跟踪技术以及过滤器和监听器。最后使用该技术完成了对用户的索引。
第7章:使用EL表达式。主要介绍了EL表达式语言的概念、变量以及运算符;重点介绍了EL表达式的隐含变量和EL函数。
第8章:JSTL标签库。简单介绍了关于核心标签的库的变量、数字和日期时间的格式化;重点讲述了通过I18N实现Web应用和国际化操作、通过SQL标签完成对数据库的操作以及XML标签库完成对XML的操作;还介绍了通过JSTL函数标签库完成常用的函数操作。
第9章:JSP操作XML。主要介绍了XML文档中的元素定义属性以及解析XML文件的方法。最后使用XML文件存储数据完成了学生信息管理。
第10章:文件上传与下载。主要介绍了使用Common-FileUpload组件实现文件上传以及使用输入输出流实现文件下载。
第11章:应用Ajax技术。简单介绍了Ajax开发模式的优势;重点讲述了XMLHttpRequest对象、通过Ajax向服务器端发送请求以及Ajax向服务端发送相应。
第12章:Struts 2框架。主要介绍了Struts 2的配置、各类型标签的使用和输入校验机制;还介绍了文件上传与下载的实现。
第13章:Hibernate技术。主要介绍了Session接口、Hibernate的持久化以及Hibernate的映射文件、映射关系以及HOL语言、Hibernate缓存;最后使用Hibernate技术实现了学生信息管理系统。
第14章:Spring框架。主要介绍了Spring框架概述,以及两个非常重要的概念IoC和AOP。最后结合Struts 2框架实现了用户注册功能。
第15章:交友社区项目。本章通过一个Web项目讲述Struts 2、Hibernate和Spring三大框架的整合,并且详细讲述了各个模块的实现过程和运行结果。
本书特色
本书采用大量的实例进行讲解,力求通过实际操作使读者轻松掌握Java Web技术的使用。本书每章后面都有精选的习题供读者巩固所学知识,每个章节末尾都有实践疑难解答,在这个模块中收集了每章中的重点、难点以及易出错点以问答的形式来告诉读者,使读者更轻松地掌握这些知识。本书难度适中,内容由浅而深、实用性强、覆盖面广、条理清晰。
知识全面:本书全面地介绍了Java Web的各知识点,具有很强的系统性。
示例典型、应用广泛:作者精心挑选了大量示例程序,它们都是根据作者在实际开发中的经验总结而来,涵盖了在实际开发中出现的各种问题。而且有些程序可以直接在项目中使用,无须二次开发。
快速掌握:注重技术原理和实际应用的高度融合,通过循序渐进的内容组织,帮助读者快速掌握和应用Java Web技术。
随书光盘:本书为实例配备了视频教学文件,读者可以通过视频文件更加直观地学习Java Web相关知识。
网站技术支持:读者在学习或者工作的过程中,如果遇到实际问题,可以直接登录www.itzcn.com与我们取得联系,作者会在第一时间内给予帮助。
读者对象
本书具有知识全面、实例精彩、指导性强的特点,力求以全面的知识及丰富的实例来指导读者透彻地学习Java Web方面的知识。本书可以作为JSP的入门书籍,也可以帮助中级读者提高技能,对高级读者也有一定的启发意义。
本书适合以下人员阅读学习:
有志于从事软件开发的初学者
高等院校计算机相关专业的老师和学生
准备从事软件开发的求职者
JSP初学者
MVC框架编程人员
除了封面署名人员之外,参与本书编写的人员还有马海军、李海庆、陶丽、王咏梅、康显丽、郝军启、朱俊成、宋强、孙洪叶、袁江涛、张东平、吴鹏、王新伟、刘青凤、汤莉、冀明、王超英、王丹花、闫琰、张丽莉、李卫平、王慧、牛红惠、丁国庆、黄锦刚、李旎、王中行、李志国等。在编写过程中难免会有漏洞,欢迎读者通过我们的网站www.itzcn.com与我们联系,帮助我们改正提高。
编 者
2008年2月
第1章 构建Java Web应用程序
1.1 初识Java Web
1.2 Java Web开发环境概述
1.2.1 开发工具包JDK
1.2.2 Web服务器
1.2.3 数据库
1.2.4 Web浏览器
1.3 JDK
1.3.1 JDK的下载和安装
1.3.2 配置JDK
1.4 安装配置Tomcat服务器
1.4.1 Tomcat的下载和安装
1.4.2 配置Tomcat应用程序服务器
1.5 使用MyEclipse开发Web应用
1.5.1 创建项目 第1章 构建Java Web应用程序
1.1 初识Java Web
1.2 Java Web开发环境概述
1.2.1 开发工具包JDK
1.2.2 Web服务器
1.2.3 数据库
1.2.4 Web浏览器
1.3 JDK
1.3.1 JDK的下载和安装
1.3.2 配置JDK
1.4 安装配置Tomcat服务器
1.4.1 Tomcat的下载和安装
1.4.2 配置Tomcat应用程序服务器
1.5 使用MyEclipse开发Web应用
1.5.1 创建项目
1.5.2 创建JSP文件
1.5.3 发布项目到Tomcat并运行
1.6 习题
1.7 实践疑难解答
1.7.1 在网页设计中JSP和HTML有什么区别
1.7.2 启动Tomcat出现java.net.BindException异常
第2章 JSP页面元素
2.1 JSP指令元素
2.1.1 page指令
2.1.2 include指令
2.1.3 taglib指令
2.2 JSP脚本元素
2.2.1 声明
2.2.2 表达式
2.2.3 脚本程序
2.3 JSP动作元素
2.3.1 <jsp:include>动作
2.3.2 <jsp:useBean>动作
2.3.3 <jsp:forward>动作
2.3.4 <jsp:setProperty>动作和<jsp:getProperty>动作
2.3.5 <jsp:param>动作
2.3.6 <jsp:plugin>动作和<jsp:fallback>动作
2.3.7 JSP注释
2.4 项目案例:求圆的周长和面积
2.5 习题
2.6 实践疑难解答
2.6.1 被include引入的页面有什么要求或规范
2.6.2 如何获取跳转页面的参数
2.6.3 JSP中动作元素include和forward的差别
第3章 JSP内置对象
3.1 request对象
3.1.1 request对象方法
3.1.2 获取客户端请求参数
3.1.3 获取HTTP请求头
3.2 response对象
3.2.1 response对象方法
3.2.2 重定向
3.3 out对象
3.4 session对象
3.4.1 session对象的方法
3.4.2 session对象的ID
3.4.3 session对象的应用
3.5 application对象
3.6 page与config对象
3.7 pageContext对象
3.8 exception对象
3.9 综合案例:在线考试系统
3.10 习题
3.11 实践疑难解答
3.11.1 JSP内置对象为什么可以直接使用
3.11.2 JSP中的request对象可以设置多个属性
3.11.3 JSP中的内置对象的作用域是什么意思
第4章 JavaBean编程技术
4.1 JavaBean概述
4.1.1 JavaBean技术介绍
4.1.2 JavaBean的分类
4.1.3 JavaBean规范
4.2 JavaBean的属性
4.2.1 Simple属性
4.2.2 Indexed属性
4.2.3 Bound属性
4.2.4 Constrained属性
4.3 更加对象化的JSP开发
4.3.1 创建JavaBean
4.3.2 创建注册页面
4.3.3 创建用户信息显示页面
4.3.4 运行结果
4.4 JavaBean与JSP的完美结合
4.4.1 创建JavaBean
4.4.2 创建学生档案录入页面
4.4.3 在JSP页面中使用useBean标签
4.4.4 运行结果
4.5 JavaBean的作用域
4.5.1 JavaBean的作用域简介
4.5.2 Page作用域
4.5.3 Request作用域
4.5.4 Session作用域
4.5.5 Application作用域
4.6 项目案例:对用户登录信息进行检测
4.7 习题
4.8 实践疑难解答
4.8.1 JavaBean出现找不到属性值的问题
4.8.2 为JavaBean属性赋值时出现错误
第5章 数据库访问技术
5.1 JDBC概述
5.1.1 什么是JDBC
5.1.2 JDBC的API介绍
5.1.3 JDBC驱动程序
5.2 JDBC连接数据库常用类
5.2.1 管理驱动程序类DriverManager
5.2.2 Connection接口
5.3 JDBC-ODBC桥连Access数据库
5.4 使用连接池连接数据库
5.5 JDBC访问数据库的常用接口
5.5.1 Statement接口
5.5.2 PreparedStatement接口
5.5.3 CallableStatement接口
5.5.4 ResultSet接口
5.6 在JSP页面中直接访问数据库
5.7 项目案例:会员增删改查
5.8 习题
5.9 实践疑难解答
5.9.1 关于Connection接口的问题
5.9.2 JDBC连接数据库传递参数的问题
5.9.3 不同的数据库需要不同的驱动程序吗
第6章 Servlet技术
6.1 Servlet概述
6.2 Servlet的配置
6.2.1 Servlet的名字及类的配置
6.2.2 Servlet初始化参数的配置
6.3 Java Servlet API
6.4 会话跟踪技术
6.4.1 三种会话机制
6.4.2 HTTP会话
6.5 Servlet过滤器和监听器
6.5.1 过滤器
6.5.2 监听器
6.6 项目案例:根据条件查询用户
6.7 习题
6.8 实践疑难解答
6.8.1 forward和response.sendRedirec的区别
6.8.2 关于Servlet过滤器的问题
6.8.3 Servlet容器调用自定义
Servlet的问题
第7章 使用EL表达式
7.1 EL简介
7.2 EL语法
7.2.1 EL变量
7.2.2 EL运算符
7.2.3 运算符的优先级
7.2.4 EL表达式中的保留字
7.2.5 自动转换类型
7.3 EL隐含对象
7.3.1 与范围有关的隐含对象
7.3.2 与输入有关的隐含对象
7.3.3 访问环境信息的隐含对象
7.4 EL函数
7.5 项目案例:使用EL表达式显示留言信息
7.6 习题
7.7 实践疑难解答
7.7.1 EL函数报错
7.7.2 EL表达式能否直接引用
javaBean中的方法
7.7.3 如何使用EL表达式获取
参数值
第8章 JSTL标签库
8.1 JSTL标签库简介
8.2 核心标签库
8.2.1 一般用途的标签
8.2.2 流程控制标签
8.2.3 循环控制标签
8.2.4 URL相关标签
8.3 I18N标签库
8.3.1 数字格式化标签
8.3.2 日期时间格式化标签
8.3.3 Web应用和消息的国际化标签
8.4 SQL标签库
8.5 XML标签库
8.6 函数标签库
8.7 项目案例:保留登录信息
8.8 习题
8.9 实践疑难解答
8.9.1 JSTL标签库异常
8.9.2 JSTL格式化输出下午时间却显示为上午
第9章 JSP操作XML
9.1 XML概述
9.1.1 XML文档结构
9.1.2 XML语法特点
9.1.3 XML元素属性
9.1.4 字符和实体引用
9.2 XML的两种语法规则
9.2.1 文档类型定义
9.2.2 元素属性的定义
9.2.3 Schema文档规则
9.3 DOM解析XML文档
9.3.1 DOM接口
9.3.2 DOM读取XML文件
9.4 SAX解析XML文档
9.4.1 SAX常用接口
9.4.2 SAX读取XML文件
9.5 DOM4J解析XML文档
9.5.1 DOM4J介绍
9.5.2 使用DOM4J创建XML文档
9.5.3 使用DOM4J解析XML文件
9.6 项目案例:学生信息管理
9.7 习题
9.8 实践疑难解答
9.8.1 DOM4J怎样获取节点属性
9.8.2 DOM4J生成的XML文件没有格式
9.8.3 DOM4J中文乱码问题
第10章 文件的上传与下载
10.1 文件上传
10.1.1 Common-FileUpload组件的下载
10.1.2 Common-FileUpload组件核心
10.1.3 简单文件上传
10.1.4 限制文件上传类型
10.1.5 读取表单信息
10.2 文件下载
10.2.1 文件类(File)
10.2.2 文件字节输入流
10.2.3 字节输出流
10.3 项目案例:音乐收藏夹
10.4 习题
10.5 实践疑难解答
10.5.1 使用Common-fileUpload上传获取文本框值的问题
10.5.2 在文件上传的时候报错
第11章 应用Ajax技术
11.1 Ajax简介
11.1.1 Ajax开发模式与传统开发模式的比较
11.1.2 Ajax技术的特点
11.1.3 Ajax需要注意的几个问题
11.1.4 Ajax使用的技术
11.2 使用XMLHttpRequest对象
11.2.1 初始化XMLHttpRequest对象
11.2.2 XMLHttpRequest对象的常用方法
11.2.3 XMLHttpRequest对象的常用属性
11.3 发送请求与处理响应
11.3.1 发送请求
11.3.2 处理服务器响应
11.4 Ajax重构
11.5 项目案例:验证用户名是否被注册
11.6 习题
11.7 实践疑难解答
11.7.1 XMLHttpRequest状态为0的问题
11.7.2 Ajax路径问题
第12章 Struts 2框架
12.1 Struts 2简介
12.1.1 MVC设计模式
12.1.2 MVC的优点
12.1.3 Struts 2的结构体系
12.2 配置Struts 2运行环境
12.3 Struts 2配置文件
12.3.1 web.xml配置
12.3.2 struts.xml配置
12.4 Action配置
12.4.1 Action的实现类
12.4.2 Action配置
12.4.3 动态方法调用
12.4.4 使用method属性
12.5 Result配置
12.5.1 Result映射
12.5.2 Result类型
12.6 Struts 2的拦截器
12.6.1 拦截器概述
12.6.2 配置拦截器
12.6.3 使用拦截器
12.6.4 拦截器应用
12.7 Struts 2标签库
12.7.1 Struts 2标签库概述
12.7.2 表单标签
12.7.3 非表单标签
12.7.4 控制标签
12.7.5 数据标签
12.8 输入校验
12.8.1 手动输入校验
12.8.2 定义校验规则
12.8.3 校验文件的配置风格
12.9 文件上传与下载
12.9.1 在Struts 2中实现文件上传
12.9.2 Struts 2实现文件下载
12.10 项目案例:对客户信息进行校验
12.11 习题
12.12 实践疑难解答
12.12.1 package配置的命名空间问题
12.12.2 Struts 2中迭代List时的迭代次数问题
第13章 Hibernate技术
13.1 ORM简介
13.1.1 ORM的概念
13.1.2 ORM优缺点
13.2 Hibernate简介
13.2.1 Hibernate的发展
13.2.2 Hibernate的下载与安装
13.3 简单的Hibernate程序
13.3.1 创建项目
13.3.2 创建持久化类
13.3.3 Hibernate映射文件
13.3.4 Hibernate配置文件
13.3.5 运行程序
13.4 Session接口
13.4.1 Configuration
13.4.2 SessionFactory
13.4.3 Session
13.4.4 Transaction
13.4.5 Query和Criteia
13.5 Hibernate数据持久化
13.5.1 Hibernate实例状态
13.5.2 Hibernate的增删改查操作
13.5.3 加载对象
13.6 Hibernate的缓存
13.6.1 一级缓存
13.6.2 二级缓存
13.7 映射文件配置
13.7.1 <hibernate-mapping>元素
13.7.2 <class>元素
13.7.3 <id>元素
13.7.4 <property>元素
13.8 映射关系
13.8.1 映射单向多对一关联
13.8.2 基于外键单向一对一关联
13.8.3 基于主键单向一对一关联
13.8.4 映射双向一对一关联
13.8.5 映射双向一对多关联
13.8.6 映射单向多对多关联
13.8.7 映射双向多对多关联
13.9 HQL语言
13.9.1 HQL查询语言
13.9.2 连接查询
13.9.3 子查询
13.9.4 参数绑定机制
13.9.5 分页查询
13.10 学生信息管理系统
13.10.1 功能概述
13.10.2 Hibernate映射文件
13.10.3 Hibernate配置文件
13.10.4 系统实现
13.11 习题
13.12 实践疑难解答
13.12.1 uniqueResult的使用问题
13.12.2 update更新操作
第14章 Spring框架
14.1 Spring概述
14.1.1 Spring体系结构
14.1.2 Spring的下载与安装
14.1.3 使用BeanFactory管理Bean
14.1.4 ApplicationContext应用
14.2 Spring依赖注入
14.2.1 依赖注入和控制反转
14.2.2 IOC的类型
14.2.3 Bean的配置
14.2.4 Setter注入
14.2.5 构造器注入
14.2.6 引用其他Bean
14.2.7 集合类型属性
14.3 AOP
14.3.1 AOP简介
14.3.2 通知(advice)
14.3.3 切入点
14.4 自动代理
14.4.1 使用BeanNameAutoProxy-
Creator
14.4.2 使用DefaultAdvisorAutoProxy-
Creator
14.5 项目案例:整合Struts 2实现用户注册
14.6 习题
14.7 实践疑难解答
14.7.1 用了Spring之后能否使用new创建对象
14.7.2 IOC和AOP有什么作用,为什么要用它们
第15章 交友社区项目
15.1 系统概述
15.1.1 需求分析
15.1.2 系统用例图
15.1.3 系统设计
15.2 数据库设计
15.3 搭建Hibernate+Struts2+Spring开发环境
15.3.1 整合Struts2
15.3.2 加载Hibernate
15.3.3 加载Spring
15.4 系统实现
15.4.1 个人中心
15.4.2 好友管理
15.4.3 个性空间
习题答案