本书采用理论阐述与项目演示相结合的方式,全面讲解了Java Web编程所需的核心技术,并涵盖一些高级技术主题。主要内容包括Web应用程序运行原理、主流集成开发工具(Eclipse/MyEclipse)和运行环境(Tomcat)的配置和使用、Servlet、JSP、JDBC、JSP表达式语言(EL)、Servlet监听器和过滤器、定制标记库、JSTL、MVC模式、DAO设计模式、数据源和连接池、文件上传、Java Mail和分页显示、Web编程中文乱码问题及解决方案、应用程序的打包和部署等。书中还深入讲解了客户端验证框架JSValidation、在线文本编辑器FCKeditor和Apache Commons的一些类库等功能强大的实用开发工具。另外,书中提供了大量的实例代码,读者可以自由取用,这些代码功能强大,适合解决Java Web开发中的实际问题。 全书论述精准而深刻,程序实例丰富实用。本书要求读者具备Java编程语言和HTML基础,适合用作普通高校教材或相关职业培训教材,更是Java Web初学者和程序员的首选技术参考书。
样章试读
目录
1.1 JDK的安装
1.2 Tomcat的安装和配置
1.2.1 下载Tomcat
1.2.2 修改context.xml和server.xml
1.2.3 修改tomcat-users.xml
1.2.4 启动和关闭Tomcat
1.2.5 Tomcat的目录结构
1.3 Eclipse的安装与使用
1.3.1 Eclipse的历史
1.3.2 Eclipse的架构
1.3.3 Eclipse版本说明
1.3.4 Eclipse的下载与安装
1.3.5 Eclipse的汉化
1.3.6 Eclipse的启动
1.3.7 Eclipse界面说明
1.3.8 Eclipse构建路径调整
1.3.9 Eclipse编译器调整
1.4 实例:Eclipse开发Java应用程序
1.4.1 新建Java项目
1.4.2 新建HelloWorld类
1.4.3 增加属性与方法
1.4.4 格式化源程序
1.4.5 运行输出
1.4.6 调试代码
1.5 MyEclipse
1.5.1 MyEclipse概述
1.5.2 MyEclipse的下载
1.5.3 MyEclipse安装
1.5.4 在MyEclipse中配置Tomcat服务器
1.6 更多参考信息
第2章 Web编程技术基础
2.1 Internet的起源
2.1.1 TCP/IP协议
2.1.2 TCP/IP的四层结构
2.1.3 Application层常用协议
2.2 WWW
2.2.1 URL
2.2.2 HTML
2.2.3 HTTP
2.2.4 Web服务器
2.2.5 浏览器
2.3 Web动态编程
2.4 Servlet
2.5 实例:Java Web服务器
2.5.1 目标
2.5.2 新建Java项目
2.5.3 新建Java文件
2.5.4 运行输出
2.6 更多参考信息
第3章 Servlet编程
3.1 Servlet的发展
3.2 Servlet的结构
3.2.1 javax.servlet.Servlet
3.2.2 javax.servlet.GenericServlet
3.2.3 javax.servlet.http.HttpServlet
3.3 实例(一):编写Servlet
3.3.1 目标
3.3.2 编写Servlet源程序
3.3.3 建立Java Web应用目录结构
3.3.4 编写web.xml文件
3.3.5 运行Servlet
3.4 实例(二):使用MyEclipse开发Servlet
3.4.1 目标
3.4.2 新建Web Project
3.4.3 新建Servlet文件
3.4.4 程序解释
3.4.5 部署Web应用程序
3.4.6 运行输出
3.4.7 Servlet文件调试
3.5 Servlet生命周期描述
3.6 实例(三):Servlet获取初始化的参数
3.6.1 目标
3.6.2 新建GetInitParameterServlet类
3.6.3 运行输出
3.6.4 程序解释
3.7 实例(四):Servlet获取服务器的运行参数
3.7.1 目标
3.7.2 新建GetServerInfoServlet类
3.7.3 运行输出
3.7.4 程序解释
3.8 实例(五):Servlet获得头信息
3.8.1 目标
3.8.2 新建GetHeaderInfoServlet类
3.8.3 运行输出
3.8.4 程序解释
3.9 更多参考信息
第4章 Servlet处理表单数据
4.1 HTML表单
4.1.1 Form
4.1.2 Input text
4.1.3 Input password
4.1.4 Input radio
4.1.5 Input checkbox
4.1.6 Select单选
4.1.7 Select多选
4.1.8 Textarea
4.1.9 Submit按钮
4.1.10 Reset按钮
4.2 Servlet接收HTML表单信息
4.3 实例(一):Servlet处理HTML表单数据(1)
4.3.1 目标
4.3.2 新建webproject2项目
4.3.3 新建LoginFormServlet
4.3.4 运行输出
4.3.5 程序解释
4.3.6 解决表单中文参数乱码问题
4.4 实例(二):Servlet处理HTML表单数据(2)
4.4.1 目标
4.4.2 新建login.htm
4.4.3 新建LoginServlet.java
4.4.4 运行输出
4.4.5 程序解释
4.5 实例(三):网络调查表(1)
4.5.1 目标
4.5.2 新建survey.htm
4.5.3 新建SurveyServlet
4.5.4 运行输出
4.5.5 程序解释
4.6 实例(四):网络调查表(2)
4.6.1 目标
4.6.2 新建survey2.htm
4.6.3 新建SurveyServlet2
4.6.4 运行输出
4.6.5 程序解释
4.7 客户端验证表单输入内容
4.8 实例(五):HTML表单增加JavaScript验证
4.8.1 目标
4.8.2 新建login2.htm
4.8.3 运行输出
4.8.4 程序解释
4.9 JSValidation验证框架
4.9.1 下载JSValidation
4.9.2 validation-config.xml解释
4.10 实例(六):使用JSValidation验证框架
4.10.1 目标
4.10.2 JSvalidation配置
4.10.3 编写survey3.htm
4.10.4 编写validation-config.xml文件
4.10.5 运行输出
4.10.6 程序解释
4.11 FCKeditor
4.11.1 FCKeditor主要功能特性
4.11.2 下载FCKeditor
4.11.3 FCKeditor的使用
4.12 实例(七):使用FCKeditor
4.12.1 新建fckeditordemo项目
4.12.2 新建addContent.htm
4.12.3 新建AddContentServlet
4.12.4 运行输出
4.12.5 FCKeditor类说明
4.12.6 FCKeditor组件文件精简
4.13 更多参考信息
第5章 JDBC、连接池与数据源
5.1 JDBC的历史
5.2 JDBC概述
5.3 JDBC驱动程序
5.4 实例(一):安装和配置Oracle的JDBC驱动程序
5.4.1 目标
5.4.2 获得Oracle驱动程序
5.4.3 配置Oracle驱动程序
5.5 JDBC编程
5.5.1 建立数据库连接
5.5.2 向数据库中提交SQL
5.5.3 处理数据库返回的结果
5.5.4 释放数据库连接
5.6 实例(二):JDBC操作Oracle数据库的例子
5.6.1 目标
5.6.2 建表
5.6.3 新建项目与JDBCExample.java文件
5.7 实例(三):网络留言本 V1.0
5.7.1 目标
5.7.2 建表与建序列
5.7.3 新建guestbook项目
5.7.4 项目核心文件列表
5.7.5 修改validation-framework.js文件
5.7.6 编辑jsvalidation-config.xml
5.7.7 编辑addMessage.htm
5.7.8 编辑StringUtil.java
5.7.9 编辑AddMessageServlet.java
5.7.10 编辑GetMessagesServlet.java
5.7.11 运行输出
5.8 数据库连接池
5.9 实例(四):编写JDBC连接池程序
5.9.1 目标
5.9.2 待解决的核心问题
5.9.3 新建pooling项目
5.9.4 编辑dbpool.properties
5.9.5 编辑ConnectionPool.java
5.9.6 编辑ConnectionPoolTest.java
5.9.7 运行输出
5.9.8 程序待改进的地方
5.10 JDBC数据源
5.11 实例(五):配置Tomcat的连接池和数据源
5.12 实例(六):网络留言本 V1.1
5.12.1 目标
5.12.2 新建guestbook2项目
5.12.3 修改Java Build Path
5.12.4 修改validation-framework.js文件
5.12.5 修改addMessage.htm文件
5.12.6 修改AddMessageServlet.java
5.12.7 修改GetMessagesServlet.java
5.12.8 运行输出
5.13 Commons DbUtils
5.13.1 DbUtils类
5.13.2 ResultSetHandler接口
5.13.3 MapListHandler类
5.13.4 BeanListHandler类
5.13.5 QueryRunner类
5.13.6 DbUtil使用例子
5.14 实例(七):网络留言本 V1.2
5.14.1 目标
5.14.2 新建guestbook3项目
5.14.3 修改addMessage.htm文件
5.14.4 修改AddMessageServlet.java
5.14.5 修改GetMessagesServlet.java
5.14.6 运行输出
5.15 更多内容
第6章 Servlet处理Cookie
6.1 Cookie是什么
6.2 Cookie的典型应用
6.2.1 实现“记住我”功能
6.2.2 定制个性化页面
6.2.3 记录用户访问动作
6.3 Cookie的运行机制
6.4 使用Cookie的注意事项
6.5 Cookie编程
6.5.1 生成Cookie对象
6.5.2 设定Cookie对象有效期
6.5.3 设定Cookie对象的路径与域名
6.5.4 发送Cookie对象
6.5.5 读取Cookie对象
6.5.6 修改Cookie
6.5.7 删除Cookie
6.6 实例:Servlet中Cookie的编程
6.6.1 目标
6.6.2 新建项目
6.6.3 编辑cookieInput.htm
6.6.4 编辑SetCookiesServlet.java
6.6.5 编辑GetCookiesServlet.java
6.6.6 运行输出
第7章 Servlet会话编程
7.1 会话是什么
7.2 会话的典型应用
7.2.1 网店中的购物车功能
7.2.2 用户权限控制
7.2.3 跨Servlet/JSP传递参数
7.3 会话的底层实现方式
7.4 Servlet会话编程
7.5 实例(一):演示会话对象的使用
7.5.1 目标
7.5.2 新建项目
7.5.3 编辑DemoSessionServlet
7.5.4 运行输出
7.6 实例(二):使用会话实现网络购物车
7.6.1 目标
7.6.2 功能说明
7.6.3 新建项目
7.6.4 编辑CartItem.java
7.6.5 编辑ShoppingCart.java
7.6.6 编辑AddShoppingCartServlet.java
7.6.7 编辑GetShoppingCartServlet.java
7.6.8 编辑displayItems.htm
7.6.9 运行输出
7.6.10 需要改进的地方
第8章 JavaServer Pages(JSP)
8.1 JavaServer Pages的起源
8.2 JSP与Servlet的关系
8.3 实例(一):开发第一个JSP页面
8.3.1 目标
8.3.2 新建Webproject项目
8.3.3 新建first.jsp文件
8.3.4 JSP页面的可视化编辑
8.3.5 运行输出
8.3.6 代码解释
8.4 JSP内部运行机制
8.5 JSP语法
8.5.1 JSP代码注释
8.5.2 指令(Directive)标记
8.5.3 声明(Declaration)标记
8.5.4 Scriptlet标记
8.5.5 表达式(Expression)标记
8.6 实例(二):JSP语法演示
8.6.1 目标
8.6.2 新建JSP文件
8.6.3 运行输出
8.7 动作(action)
8.7.1 动作
8.7.2 动作
8.8 JSP内置对象
8.8.1 out对象
8.8.2 request对象
8.8.3 response对象
8.8.4 session对象
8.8.5 application对象
8.8.6 page对象
8.8.7 pageContext对象
8.8.8 exception对象
8.8.9 config对象
8.9 实例(三):网页计数器 V1.0
8.9.1 目标
8.9.2 编辑count.jsp页面
8.9.3 程序解释
8.9.4 运行输出
8.10 实例(四):网页计数器 V1.1
8.10.1 目标
8.10.2 准备数字图形文件
8.10.3 编辑count2.jsp页面
8.10.4 编辑CountFileHandler.java
8.10.5 运行输出
8.11 实例(五):Web应用错误处理解决方案
8.11.1 目标
8.11.2 HTTP常见错误代码
8.11.3 设置web.xml
8.11.4 运行输出
8.12 实例(六):网络留言本 V1.3
8.12.1 目标
8.12.2 新建guestbook4项目
8.12.3 项目核心文件列表
8.12.4 编辑header.jsp
8.12.5 编辑footer.htm
8.12.6 编辑addMessage.jsp
8.12.7 编辑addMessageHandler.jsp
8.12.8 编辑getMessages.jsp
8.12.9 运行输出
8.13 更多参考信息
第9章 JavaBeans
9.1 引入JavaBeans
9.2 JavaBeans的编写
9.3 useBean动作
9.4 setProperty动作
9.5 getProperty动作
9.6 JavaBeans对象的作用范围
9.6.1 page Scope
9.6.2 request Scope
9.6.3 session Scope
9.6.4 application Scope
9.7 使用JavaBeans的好处
9.8 实例(一):JSP页面使用JavaBeans
9.8.1 目标
9.8.2 新建项目
9.8.3 新建Book.java
9.8.4 编辑book.htm
9.8.5 编辑displayBook.jsp
9.8.6 运行输出
9.9 实例(二):网络留言本 V1.4
9.9.1 目标
9.9.2 新建guestbook5项目
9.9.3 项目核心文件列表
9.9.4 新建OracleUtil.java
9.9.5 新建Guestbook.java
9.9.6 修改addMessageHandler.jsp
9.9.7 编辑getMessages.jsp
9.9.8 运行输出
9.9.9 项目需要改进的地方
9.10 Commons BeanUtils
9.10.1 Commons BeanUtils的下载
9.10.2 实例(三):使用BeanUtils的例子
9.10.3 访问JavaBeans属性
9.10.4 设定JavaBeans属性
9.10.5 复制JavaBeans对象的属性
9.10.6 动态创建JavaBeans对象
9.10.7 ResultSetDynaClass
9.10.8 RowSetDynaClass
9.10.9 RowSetDynaClass与MapListHandler的比较
9.11 更多参考信息
第10章 MVC模式
10.1 JSP Model1
10.2 JSP Model2
10.3 MVC架构模式
10.3.1 视图(View)
10.3.2 模型(Model)
10.3.3 控制器(Controller)
10.3.4 MVC的优缺点
10.4 实例:网络留言本 V1.5
10.4.1 目标
10.4.2 新建guestbook6项目
10.4.3 项目核心文件列表
10.4.4 修改AddMessageServlet.java
10.4.5 修改GetMessagesServlet.java
10.4.6 修改addMessage.jsp
10.4.7 修改GetMessages.jsp
10.4.8 新建addResult.jsp
10.4.9 运行输出
10.4.10 程序运行流程分析
10.4.11 两种转向的区别
10.5 基于MVC的Web开发框架
10.5.1 Struts
10.5.2 WebWork
10.5.3 Spring MVC
10.6 更多参考信息
第11章 JSP Expression Language
11.1 JSP EL的基本用法
11.2 JSP EL运算符
11.3 使用JSP EL读取JavaBeans属性
11.4 JSP EL内置对象
11.4.1 作用范围相关对象
11.4.2 param或paramValues对象
11.4.3 header或headerValues对象
11.4.4 cookie内置对象
11.4.5 initParam对象
11.4.6 pageContext对象
11.5 设定JSP不使用JSP EL
11.6 实例:演示JSP EL的用法
11.6.1 目的
11.6.2 新建Web项目
11.6.3 编辑elExample1.jsp
11.6.4 编辑elExample2.jsp
11.6.5 编辑elExample3.jsp
11.6.6 编辑elExample4.jsp
11.6.7 编辑elExample5.jsp
11.6.8 编辑elExample6.jsp
11.6.9 编辑elExample7.jsp
11.6.10 编辑elExample8.jsp
11.6.11 编辑elExample9.jsp
11.6.12 编辑elExample10.jsp
11.6.13 修改web.xml
第12章 定制标记库
12.1 定制标记库概述
12.2 实例(一):编写测量代码运行时间的定制标记
12.2.1 目标
12.2.2 新建Web项目
12.2.3 编辑TimerTag.java
12.2.4 编辑util.tld文件
12.2.5 编辑timerTag.jsp
12.2.6 运行输出
12.3 为定制标记增加属性
12.4 实例(二):编写显示日期时间的标记
12.4.1 目标
12.4.2 编辑DateTimeTag.java
12.4.3 修改util.tld文件
12.4.4 编辑dateTimeTag.jsp
12.4.5 运行输出
12.5 实例(三):编写循环执行的定制标记
12.5.1 目标
12.5.2 编辑LoopTag.java
12.5.3 修改util.tld
12.5.4 编辑loopTag.jsp
12.5.5 运行输出
12.6 定制标记运行原理
12.6.1 JspTag接口
12.6.2 Tag接口
12.6.3 IterationTag接口
12.6.4 TagSupport类
12.7 BodyTag接口
12.8 BodyTagSupport类
12.9 实例(四):编写过滤HTML代码的标记
12.9.1 目标
12.9.2 编辑FilterHtmlTag.java
12.9.3 修改util.tld
12.9.4 运行输出
12.10 脚本变量
12.10.1 使用TagExtraInfo的方式
12.10.2 设置元素
12.10.3 两种设置脚本变量的比较
12.11 实例(五):编写使用Cookie的定制标记
12.11.1 目标
12.11.2 编辑CookieTag.java
12.11.3 编辑CookieTei.java
12.11.4 修改tld文件
12.11.5 编辑cookieTag.jsp
12.11.6 运行输出
12.12 SimpleTag
12.13 SimpleTagSupport
12.14 实例(六):编写实现过滤HTML的标记 V1.1
12.14.1 目标
12.14.2 编辑FilterHtmlSimpleTag.java
12.14.3 配置TLD文件
12.14.4 编辑filterHtmlSimpleTag.jsp
12.14.5 运行输出
12.15 标记处理类编写小结
12.16 Tag文件
12.16.1 编写Tag文件
12.16.2 Tag文件可以使用的指令.
12.17 标记库打包
12.18 常用开源定制标记库介绍
12.18.1 JSTL
12.18.2 Jakarta Taglibs
12.18.3 Display tag
第13章 JSTL
13.1 JSTL概述
13.2 下载安装JSTL
13.3 Core标记库
13.3.1 标记
13.3.2 标记
13.3.3 标记
13.3.4 标记
13.3.5 标记
13.3.6 标记
13.3.7 标记
13.3.8
13.3.9 标记
13.3.10 标记
13.3.11 标记
13.3.12 标记
13.3.13 标记
13.4 Format标记库
13.4.1 国际化
13.4.2 标记
13.4.3 标记
13.4.4 标记
13.4.5 标记
13.4.6 标记
13.4.7 标记
13.4.8 标记
13.4.9 标记
13.4.10 标记
13.4.11 标记
13.4.12 标记
13.4.13 标记
13.5 XML标记库
13.5.1 标记
13.5.2 标记
13.6 SQL标记库
13.6.1 标记
13.6.2 标记
13.6.3 标记
13.6.4 标记
13.6.5 标记
13.6.6 标记
13.7 Functions标记库
13.8 实例:网络留言本 V1.6
13.8.1 目标
13.8.2 新建guestbook7项目
13.8.3 修改header.jsp
13.8.4 修改addMessage.jsp
13.8.5 修改addResult.jsp
13.8.6 修改getMessages.jsp
13.8.7 运行输出
13.9 更多参考信息
第14章 Servlet监听器
14.1 概述
14.2 HttpSession监听器接口
14.2.1 HttpSessionListener
14.2.2 HttpSessionAttributeListener
14.2.3 HttpSessionBindingListener
14.2.4 HttpSessionActivationListener
14.3 实例:统计网站在线人数
14.3.1 目标
14.3.2 新建项目
14.3.3 编辑CounterListener.java
14.3.4 编辑web.xml
14.3.5 编辑display.jsp
14.3.6 运行输出
14.4 ServletContext监听器接口
14.4.1 ServletContextListener
14.4.2 ServletContextAttributeListener
14.5 HttpServletRequest监听器
14.5.1 ServletRequestListener
14.5.2 ServletRequestAttributeListener
第15章 Servlet过滤器
15.1 概述
15.2 javax.servlet.Filter接口
15.2.1 init()方法
15.2.2 destroy()方法
15.2.3 doFilter()方法
15.3 配置过滤器
15.4 过滤器的用途
15.5 实例(一):使用过滤器设定传输参数编码
15.5.1 目标
15.5.2 新建项目
15.5.3 编辑EncodingFilter.java
15.5.4 编辑web.xml
15.5.5 编辑index.jsp
15.5.6 运行输出
15.6 实例(二):网络留言本 V1.7
15.6.1 目标
15.6.2 新增admin表
15.6.3 新建guestbook8项目
15.6.4 编辑AdminUserServlet.java
15.6.5 编辑AuthenticationFilter.java
15.6.6 编辑ManageServlet.java
15.6.7 编辑login.jsp
15.6.8 修改validation-config.xml
15.6.9 编辑loginFail.jsp
15.6.10 编辑list.jsp
15.6.11 编辑edit.jsp
15.6.12 编辑updateResult.jsp
15.6.13 编辑deleteResult.jsp
15.6.14 修改web.xml
15.6.15 运行输出
第16章 文件上传与邮件发送
16.1 文件上传
16.2 实例(一):使用FileUpload实现文件上传
16.2.1 目的
16.2.2 新建webproject12项目
16.2.3 编辑uploadFile.jsp
16.2.4 编辑UploadServlet.java
16.2.5 编辑uploadResult.jsp
16.2.6 修改web.xml文件
16.2.7 程序运行
16.3 JavaMail
16.3.1 JavaMail下载与安装
16.3.2 JavaMail核心类
16.4 实例(二):编写邮件发送程序 V1.0
16.4.1 目标
16.4.2 编辑SendMail.java
16.4.3 程序运行
16.5 实例(三):编写邮件发送程序 V1.1
16.5.1 目标
16.5.2 下载Apache Commons Email组件
16.5.3 编辑sendMail.jsp
16.5.4 编辑SendMailServlet.java
16.5.5 编辑sendResult.jsp
16.5.6 运行输出
16.6 实例(四):编写邮件发送程序 V1.2
16.6.1 目标
16.6.2 编辑SendAttachmentMailServlet.java
16.6.3 新建sendAttachmentMail.jsp
16.6.4 修改web.xml文件
16.6.5 程序运行
16.7 更多参考信息
第17章 DAO设计模式与分页显示
17.1 DAO设计模式
17.1.1 DAO模式的实现
17.1.2 DAO模式的优势
17.2 分页显示
17.2.1 Displaytag标记库
17.2.2 超大记录数的分页显示
17.2.3 Pager标记库
17.3 实例:网络留言本 V1.8
17.3.1 目标
17.3.2 新建guestbook9项目
17.3.3 修改GuestbookDAO.java
17.3.4 修改GuestbookDAOJdbc.java
17.3.5 编写Admin.java
17.3.6 编写AdminDAO.java
17.3.7 编写AdminDAOJdbc.java
17.3.8 修改AddMessageServlet.java
17.3.9 修改GetMessagesServlet.java
17.3.10 修改AdminUserServlet.java
17.3.11 修改ManageServlet.java
17.3.12 修改list.jsp
17.3.13 修改getMessages.jsp
17.3.14 修改web.xml
17.3.15 运行输出
17.4 更多的参考信息
第18章 解决中文乱码
18.1 字符集与编码方法
18.1.1 字符集(Character Set)
18.1.2 字符编码
18.1.3 ASCII
18.1.4 ISO8859-1
18.1.5 GB2312
18.1.6 GBK
18.1.7 GB18030
18.1.8 BIG5
18.1.9 Unicode
18.2 Java中字符的表示与处理
18.3 Java Web编程中文乱码解决方法
18.3.1 调用JSP页面显示乱码
18.3.2 调用Servlet页面显示乱码
18.3.3 POST表单传递参数乱码
18.3.4 URI方式传递参数乱码
18.3.5 Properties文件乱码
18.4 更多参考信息
第19章 Web应用与web.xml
19.1 Web应用
19.1.1 Web应用的目录结构
19.1.2 Web应用打包
19.2 web.xml文件
19.2.1 web.xml的元素说明
19.2.2 Web应用初始化
]]>