您好,欢迎来到聚文网。 登录 免费注册
TOMCAT与JAVA WEB开发技术详解(第3版)(含DVD光盘1张)

TOMCAT与JAVA WEB开发技术详解(第3版)(含DVD光盘1张)

  • 字数: 1290.4千字
  • 装帧: 平装
  • 出版社: 电子工业出版社
  • 作者: 孙卫琴
  • 出版日期: 2019-07-01
  • 商品条码: 9787121361555
  • 版次: 1
  • 开本: 其他
  • 页数: 804
  • 出版年份: 2019
定价:¥129 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
本书全面深刻揭示Java Web开发的核心思想,全面阐述Java Web开发的全新技术和实用技巧,详细介绍Tomcat高级配置方法,贯穿面向对象编程思想,穿插UML常用设计模式,提供精心设计的习题,是Java初学者的优质研习参考。
内容简介
本书结合近期新的Tomcat 9版本,详细介绍了开发Java Web应用的各种技术。主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术,在Java Web应用中运用第三方提供的实用软件(如Spring、Velocity和Log4J)的方法,以及Tomcat的各种高级功能。书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用实例,并提供了详细的开发和部署步骤。由于Java Web技术是Oracle公司在Java Servlet规范中提出的通用技术,因此本书讲解的Java Web应用例子可以运行在任何一个实现Oracle的Servlet规范的Java Web服务器上。随书附赠光盘内容为本书所有范例源程序,视频教程,以及本书涉及的部分软件的近期新版本的安装程序。本书语言深入浅出,通俗易懂。无论对于Java Web开发的新手还是行家来说,本书都是精通Tomcat和开发Java Web应用的推荐的实用手册。本书还可作为高校的学习Java Web开发的教材,以及企业Java Web培训教材。
作者简介
"孙卫琴,知名IT作家和Java专家,毕业于上海交通大学,随后主要从事基于Java的软件开发工作,在此其间还从事Java方面的培训和咨询工作。2002年开始Java技术领域的创作,文风清晰严谨、深入浅出,深受读者欢迎,其多部作品的销量在同类书籍中一度位居全国榜首。代表著作有: 《大话Java程序设计从入门到精通》 《Java面向对象编程》 《Java网络编程精解》 《Java逍遥游记》 《Hibernate逍遥游记》 《精通Hibernate: Java对象持久化技术详解》 《精通Struts: 基于MVC的Java Web设计与开发》 《Tomcat与Java Web开发技术详解》 《Java 2认证考试指南与试题解析》 "
目录
第1篇 Java Web开发技术详解 第1 章 Web 运作原理探析.......................1 1.1 Web 的概念.............................................2 1.2 HTML简介.............................................3 1.3 URL简介................................................5 1.4 HTTP 简介..............................................6 1.4.1 HTTP 请求格式..........................8 1.4.2 HTTP 响应的格式....................10 1.4.3 正文部分的MIME类型...........12 1.4.4 HTTP 各个版本的特点.............12 1.5 用Java 套接字创建HTTP 客户与服务器 程序.......................................................14 1.5.1 演示异构系统之间用HTTP 协议 通信..............................................18 1.5.2 演示对网页中超链接的处理过程 ......................................................21 1.5.3 演示对网页中图片的处理过程22 1.6 Web 的发展历程...................................22 1.6.1 发布静态HTML文档..............23 1.6.2 发布静态多媒体信息................23 1.6.3 提供浏览器端与用户的动态交互 功能..............................................24 1.6.4 提供服务器端与用户的动态交互 功能..............................................25 1.6.5 发布Web应用..........................30 1.6.6 发布Web服务..........................31 1.6.7 Web2.0:全民共建的Web.......34 1.6.8 Web3.0:智能化处理海量信息35 1.7 处理HTTP 请求参数以及HTML表单35 1.8 客户端向服务器端上传文件................38 1.9 小结.......................................................44 1.10 思考题.................................................44 第2章 Tomcat简介................................49 2.1 Tomcat 概述...........................................50 2.2 Tomcat 作为Servlet 容器的基本功能..51 2.3 Tomcat 的组成结构...............................52 2.4 Tomcat 的工作模式...............................55 2.5 Tomcat 的版本.......................................57 2.6 安装和配置Tomcat 所需的资源..........59 2.7 安装Tomcat...........................................60 2.8 启动Tomcat 并测试Tomcat 的安装....61 2.9 Tomcat 的运行脚本...............................63 2.10 小结.....................................................64 2.11 思考题.................................................64 第3章 第一个JavaWeb应用.................67 3.1 JavaWeb 应用简介................................67 3.2 创建JavaWeb 应用...............................68 3.2.1 JavaWeb 应用的目录结构........68 3.2.2 创建HTML文件......................70 3.2.3 创建Servlet 类..........................70 3.2.4 创建JSP 文件...........................72 3.2.5 创建web.xml 文件....................72 3.3 在Tomcat 中发布JavaWeb应用74 3.3.1 Tomcat 的目录结构..................74 3.3.2 按照默认方式发布JavaWeb 应用 .....................................................75 3.3.3 Web组件的URL......................76 3.3.4 配置Tomcat 的<Context>元素.80 3.3.5 配置Tomcat 的虚拟主机..........82 3.4 创建、配置和使用自定义JSP 标签....85 3.5 用批处理文件或ANT编译范例..........89 3.6 小结.......................................................90 3.7 思考题...................................................91 第4章 Servlet技术(上).....................93 4.1 Servlet API.............................................94 4.1.1 Servlet接口...............................95 4.1.2 GenericServlet 抽象类...............96 4.1.3 HttpServlet 抽象类....................98 4.1.4 ServletRequest接口................101 4.1.5 HttpServletRequest接口.........102 4.1.6 ServletResponse 接口..............104 4.1.7 HttpServletResponse接口.......106 4.1.8 ServletConfig 接口..................108 4.1.9 ServletContext 接口................110 4.2 JavaWeb 应用的生命周期.................. 113 4.2.1 启动阶段.................................113 4.2.2 运行时阶段.............................113 4.2.3 终止阶段.................................114 4.2.4 用Tomcat 的管理平台管理Web 应用的生命周期........................114 4.3 Servlet 的生命周期............................. 116 4.3.1 初始化阶段.............................116 4.3.2 运行时阶段.............................117 4.3.3 销毁阶段.................................117 4.3.4 演示Servlet 的生命周期的范例 ....................................................118 4.4 ServletContext 与Web 应用范围........121 4.4.1 在Web 应用范围内存放共享数据 的范例........................................122 4.4.2 使用ServletContextListener 监听 器................................................124 4.5 Servlet 的服务方法抛出异常..............127 4.6 防止页面被客户端缓存......................128 4.7 使用Annotation 标注配置Servlet......129 4.8 处理HTTP 请求参数中的中文字符编码 .............................................................131 4.9 小结.....................................................133 4.10 思考题...............................................135 第5章 Servlet技术(下).....................139 5.1 下载文件.............................................139 5.2 上传文件.............................................141 5.2.1 利用Apache开源类库实现文件上 传................................................142 5.2.2 利用Servlet API中的Part 接口实 现文件上传................................146 5.3 动态生成图像.....................................149 5.4 读写Cookie.........................................152 5.5 访问Web 应用的工作目录.................159 5.6 转发和包含.........................................161 5.6.1 请求转发.................................162 5.6.2 包含.........................................166 5.6.3 请求范围.................................168 5.7 重定向.................................................168 5.8 访问Servlet 容器内的其他Web 应用172 5.9 避免并发问题.....................................173 5.9.1 合理决定在Servlet中定义的变量 的作用域类型............................176 5.9.2 使用Java 同步机制对多线程同步 ...................................................178 5.9.3 被废弃的SingleThreadModel接口 ...................................................179 5.10 对客户请求的异步处理....................181 5.10.1 异步处理的流程...................181 5.10.2 异步处理的范例...................182 5.10.3 异步监听器...........................186 5.10.4 非阻塞I/O.............................187 5.11 服务器端推送....................................191 5.12 小结...................................................193 5.13 思考题...............................................196 第6章 JSP 技术....................................199 6.1 比较HTML、Servlet 和JSP..............199 6.1.1 静态HTML文件....................199 6.1.2 用Servlet 动态生成HTML 页面 ....................................................200 6.1.3 用JSP 动态生成HTML页面201 6.2 JSP 语法..............................................205 6.2.1 JSP 指令(Directive)............206 6.2.2 JSP 声明..................................208 6.2.3 Java程序片段(Scriptlet)....209 6.2.4 Java表达式.............................210 6.2.5 隐含对象.................................212 6.3 JSP 的生命周期...................................214 6.4 请求转发.............................................216 6.5 包含.....................................................218 6.5.1 静态包含.................................218 6.5.2 动态包含.................................220 6.5.3 混合使用静态包含和动态包含 ....................................................222 6.6 JSP 异常处理.......................................229 6.7 再谈发布JSP.......................................232 6.8 预编译JSP ..........................................232 6.9 PageContext 类的用法........................234 6.10 在web.xml 中配置JSP.....................236 6.11 JSP 技术的发展趋势.........................237 6.12 小结...................................................238 6.13 思考题...............................................238 第7章 bookstore 应用简介..................243 7.1 bookstore 应用的软件结构.................243 7.1.1 Web服务器层.........................244 7.1.2 数据库层.................................244 7.2 浏览bookstore 应用的JSP 网页........244 7.3 JavaBean 和实用类.............................248 7.3.1 实体类.....................................248 7.3.2 购物车的实现.........................249 7.4 发布bookstore 应用............................252 7.5 小结.....................................................253 第8章 访问数据库...............................255 8.1 安装和配置MySQL数据库...............255 8.2 JDBC 简介...........................................257 8.2.1 java.sql包中的接口和类........260 8.2.2 编写访问数据库程序的步骤..263 8.2.3 事务处理.................................266 8.3 通过JDBC API访问数据库的JSP范例程 序.........................................................267 8.4 bookstore 应用通过JDBC API 访问数据 库.........................................................269 8.5 数据源(DataSource)简介...............274 8.6 配置数据源.........................................276 8.6.1 在context.xml 中加入<Resource> 元素............................................276 8.6.2 在web.xml 中加入<resource-ref> 元素............................................277 8.7 程序中访问数据源..............................277 8.7.1 通过数据源连接数据库的JSP 范 例程序........................................278 8.7.2 bookstore 应用通过数据源连接数 据库............................................279 8.8 处理数据库中数据的中文字符编码..282 8.9 分页显示批量数据..............................283 8.10 用可滚动结果集分页显示批量数据287 8.11 小结...................................................290 8.11 思考题...............................................291 第9章 HTTP 会话的使用与管理........295 9.1 会话简介.............................................295 9.2 HttpSession 的生命周期及会话范围..299 9.3 使用会话的JSP 范例程序..................301 9.4 使用会话的Servlet 范例程序............305 9.5 通过重写URL来跟踪会话................308 9.6 会话的持久化......................................312 9.6.1 标准会话管理器StandardManager ....................................................315 9.6.2 持久化会话管理器 PersistentManager ......................315 9.7 会话的监听.........................................320 9.7.1 用HttpSessionListener 统计在线 用户人数....................................324 9.7.2 用HttpSessionBindingListener 统 计在线用户人数........................326 9.8 小结.....................................................330 9.9 思考题.................................................331 第10章 JSP 访问JavaBean..................335 10.1 JavaBean 简介...................................335 10.2 JSP 访问JavaBean 的语法...............336 10.3 JavaBean 的范围...............................338 10.3.1 JavaBean 在页面(page)范围内 ....................................................339 10.3.2 JavaBean 在请求(request)范围 内................................................341 10.3.3 JavaBean 在会话(session)范围 内................................................343 10.3.4 JavaBean 在Web 应用 (application)范围内..............344 10.4 在bookstore 应用中访问JavaBean..345 10.4.1 访问BookDB 类...................345 10.4.2 访问ShoppingCart 类...........346 10.5 小结...................................................350 10.6 思考题...............................................351 第11章 开发JavaMail Web应用.........355 11.1 E-mail 协议简介................................355 11.1.1 SMTP 简单邮件传输协议....356 11.1.2 POP3邮局协议.....................356 11.1.3 接收邮件的新协议IMAP.....356 11.2 JavaMail API 简介.............................357 11.3 建立JavaMail 应用程序的开发环境359 11.3.1 获得JavaMail API的类库....360 11.3.2 安装和配置邮件服务器........360 11.4 创建JavaMail 应用程序...................362 11.5 JavaMail Web 应用简介....................366 11.6 JavaMail Web 应用的程序结构........367 11.6.1 重新封装Message数据........368 11.6.2 用于保存邮件账号信息的 JavaBean ....................................371 11.6.3 定义所有JSP 文件的相同内容 ...................................................373 11.6.4 登录IMAP服务器上的邮件账号 ...................................................375 11.6.5 管理邮件夹...........................377 11.6.6 查看邮件夹中的邮件信息....380 11.6.7 查看邮件内容.......................384 11.6.8 创建和发送邮件....................385 11.6.9 退出邮件系统.......................388 11.7 在Tomcat 中配置邮件会话(Mail Session).............................................388 11.7.1 在context.xml 中配置Mail Session 资源...............................388 11.7.2 在web.xml 中加入对JNDI Mail Session 资源的引用...................389 11.7.3 在javamail 应用中获取JNDI Mail Session 资源......................389 11.8 发布和运行javamail 应用................391 11.9 小结...................................................392 11.10 思考题..............................................392 第12章 EL表达式语言.......................395 12.1 基本语法...........................................395 12.1.1 访问对象的属性及数组的元素 ...................................................396 12.1.2 EL运算符.............................396 12.1.3 隐含对象...............................398 12.1.4 命名变量...............................399 12.2 使用EL表达式的JSP 范例.............400 12.2.1 关于基本语法的例子............400 12.2.2 读取HTML表单数据的例子402 12.2.3 访问命名变量的例子............403 12.3 定义和使用EL函数.........................403 12.4 小结...................................................406 12.5 思考题...............................................407 第13章 自定义JSP 标签.....................409 13.1 自定义JSP 标签简介........................409 13.2 JSP Tag API........................................410 13.2.1 JspTag接口...........................411 13.2.2 Tag接口................................411 13.2.3 IterationTag 接口...................413 13.2.4 BodyTag接口........................414 13.2.5 TagSupport类和BodyTagSupport 类................................................416 13.3 message 标签范例(访问标签属性) .............................................................420 13.3.1 创建message 标签的处理类 MessageTag................................421 13.3.2 创建标签库描述文件............425 13.3.3 在Web应用中使用标签......427 13.3.4 发布支持中、英文版本的 helloapp 应用.............................429 13.4 iterate 标签范例(重复执行标签主体) .............................................................431 13.5 greet 标签范例(访问标签主体内容) .............................................................435 13.6 小结...................................................439 13.7 思考题...............................................440 第14章 采用模板设计网上书店 应用443 14.1 如何设计网站的模板........................443 14.2 创建负责流程控制的Servlet............444 14.3 创建模板标签和模板JSP 文件........446 14.3.1 <parameter>标签和其处理类448 14.3.2 <screen>标签和处理类.........451 14.3.3 <definition>标签和处理类....453 14.3.4 <insert>标签和处理类..........457 14.4 修改JSP 文件....................................459 14.5 发布采用模板设计的bookstore 应用 .............................................................460 14.6 小结...................................................463 第15章 JSTL Core 标签库...................465 15.1 使用第三方提供的标签库的步骤....465 15.2 JSTL标签库简介..............................466 15.3 一般用途的标签................................467 15.3.1 <c:out>标签...........................468 15.3.2 <c:set>标签...........................469 15.3.3 <c:remove>标签....................470 15.3.4 <c:catch>标签........................471 15.4 条件标签...........................................471 15.4.1 <c:if>标签.............................471 15.4.2 <c:choose> 、<c:when> 和 <c:otherwise>标签.....................472 15.5 迭代标签...........................................473 15.5.1 <c:forEach>标签...................473 15.5.2 <c:forTokens>标签................477 15.6 URL相关的标签...............................478 15.6.1 <c:import>标签.....................478 15.6.2 <c:url>标签...........................479 15.6.3 <c:redirect>标签....................480 15.7 小结...................................................481 15.8 思考题...............................................481 第16章 JSTL I18N 标签库..................485 16.1 国际化的概念....................................485 16.2 Java语言对I18N 的支持.................486 16.2.1 Locale类...............................486 16.2.2 ResourceBundle类................490 16.2.3 MessageFormat 类和复合消息 ....................................................492 16.3 国际化标签........................................494 16.3.1 <fmt:setLocale>标签.............494 16.3.2 <fmt:setBundle>标签............495 16.3.3 <fmt:bundle>标签.................496 16.3.4 <fmt:message>标签...............496 16.3.5 <fmt:param>标签..................497 16.3.6 <fmt:requestEncoding>标签..498 16.4 创建国际化的Web 应用...................498 16.4.1 创建支持国际化的网页........499 16.4.2 创建资源文件.......................502 16.5 格式化标签........................................503 16.5.1 <fmt:setTimeZone>标签.......503 16.5.2 <fmt:timeZone>标签.............503 16.5.3 <fmt:formatNumber>标签.....504 16.5.4 <fmt:parseNumber>标签.......505 16.5.5 <fmt:formatDate>标签..........506 16.5.6 <fmt:parseDate>标签............507 16.6 小结...................................................508 16.7 思考题...............................................509 第17章 JSTL Sql标签库.....................513 17.1 <sql:setDataSource>标签..................513 17.2 <sql:query>标签................................514 17.2.1 设置数据源...........................514 17.2.2 设置select 查询语句............515 17.2.3 控制实际取出的记录............515 17.2.4 访问查询结果.......................515 17.2.5 使用<sql:query>标签的范例516 17.3 <sql:param>标签...............................519 17.4 <sql:dateParam>标签.........................519 17.5 <sql:update>标签...............................520 17.6 <sql:transaction>标签........................521 17.7 小结...................................................522 17.8 思考题...............................................523 第18章 JSTL Functions标签库...........525 18.1 fn:contains 函数.................................525 18.2 fn:containsIgnoreCase 函数...............525 18.3 fn:startsWith 函数..............................526 18.4 fn:endsWith 函数...............................526 18.5 fn:indexOf函数.................................526 18.6 fn:replace 函数...................................527 18.7 fn:substring函数...............................527 18.8 fn:substringBefore 函数.....................528 18.9 fn:substringAfter 函数.......................528 18.10 fn:split 函数.....................................528 18.11 fn:join 函数......................................529 18.12 fn:toLowerCase 函数.......................529 18.13 fn:toUpperCase 函数.......................530 18.14 fn:trim函数.....................................530 18.15 fn:escapeXml 函数..........................530 18.16 fn:length 函数..................................531 18.17 小结.................................................532 18.18 思考题.............................................533 第19章 简单标签和标签文件.............535 19.1 实现SimpleTag 接口........................535 19.1.1 创建和使用<hello>简单标签537 19.1.2 创建和使用带属性和标签主体 的<welcome>简单标签.............538 19.1.3 创建和使用带动态属性的 <max>简单标签........................540 19.2 使用标签文件....................................541 19.2.1 标签文件的隐含对象...........545 19.2.2 标签文件的指令...................546 19.2.3 标签文件的<jsp:invoke> 和 <jsp:doBody>动作元素.............547 19.2.4 创建和使用带属性和标签主体 的display标签文件..................548 19.2.5 创建和使用带属性和标签主体 的welcome标签文件................549 19.2.6 创建和使用带变量的precode 标 签文件........................................551 19.3 小结...................................................552 19.4 思考题...............................................552 第20章 过滤器.....................................555 20.1 过滤器简介........................................555 20.2 创建过滤器........................................556 20.3 发布过滤器........................................560 20.3.1 在web.xml 文件中配置过滤器 ....................................................560 20.3.2 用@WebFilter 标注来配置过滤 器................................................561 20.3.3 用NoteFilter 来过滤NoteServlet 的范例........................................562 20.4 串联过滤器........................................566 20.4.1 包装设计模式简介...............567 20.4.2 ServletOutputStream 的包装类 ....................................................569 20.4.3 HttpServletResponse 的包装类 ....................................................572 20.4.4 创建对响应结果进行字符串替 换的过滤器................................573 20.4.5 ReplaceTextFilter 过滤器工作的 UML时序图..............................574 20.4.6 发布和运行包含 ReplaceTextFilter 过滤器的Web 应 用................................................576 20.5 异步处理过滤器................................579 20.6 小结...................................................582 20.7 思考题...............................................582 第21章 Web应用中访问EJB 组件....587 21.1 JavaEE 体系结构简介.......................587 21.2 安装和配置WildFly服务器.............589 21.3 创建EJB 组件...................................590 21.3.1 编写Remote 接口.................591 21.3.2 编写Enterprise Java Bean 类591 21.4 在Web 应用中访问EJB组件..........593 21.5 发布JavaEE 应用..............................595 21.5.1 在WildFly上发布EJB组件595 21.5.2 在WildFly上发布Web应用596 21.5.3 在WildFly 上发布JavaEE 应用 ...................................................597 21.6 小结...................................................598 21.7 思考题...............................................600 第22章 Web应用中访问Web 服务....601 22.1 SOAP 简介........................................601 22.2 在Tomcat 上发布Axis Web 应用....603 22.3 创建SOAP 服务...............................604 22.3.1 创建提供SOAP 服务的Java 类 ...................................................605 22.3.2 创建SOAP服务的发布描述文件 ...................................................605 22.4 发布和管理SOAP 服务...................606 22.4.1 发布SOAP 服务...................606 22.4.2 管理SOAP 服务...................607 22.5 创建和运行SOAP 客户程序............609 22.6 在bookstore 应用中访问SOAP 服务 ............................................................. 611 22.6.1 对SOAP服务方法的参数和返回 值的....................................611 22.6.2 创建BookDB 服务类及 BookDBDelegate代理类...........612 22.6.3 发布BookDBService 服务和 bookstore应用...........................617 22.7 小结...................................................619 22.8 思考题...............................................620 第23章 Web应用的MVC 设计 模式623 23.1 MVC 设计模式简介..........................623 23.2 JSP Model1 和JSP Model2...............625 23.3 Spring MVC 概述..............................627 23.3.1 Spring MVC的框架结构......627 23.3.2 Spring MVC的工作流程......630 23.4 创建采用Spring MVC的Web 应用630 23.4.1 建立Spring MVC的环境.....630 23.4.2 创建视图...............................631 23.4.3 创建模型...............................632 23.4.4 创建Controller组件.............633 23.4.5 创建web.xml 文件和Spring MVC 配置文件.........................636 23.5 运行helloapp 应用............................637 23.6 小结...................................................638 23.7 思考题...............................................638 第2篇 Tomcat配置及第三方实用软件的用法 第 24章 Tomcat的管理平台................641 24.1 访问Tomcat 的管理平台..................641 24.2 Tomcat 的管理平台...........................642 24.2.1 管理Web应用......................642 24.2.2 管理HTTP 会话...................644 24.2.3 查看Tomcat 服务器信息......645 24.3 小结...................................................646 第25章 安全域.....................................647 25.1 安全域概述........................................647 25.2 为Web 资源设置安全约束...............648 25.2.1 在web.xml 中加入 <security-constraint>元素..........649 25.2.2 在web.xml中加入<login-config> 元素............................................651 25.2.3 在web.xml 中加入 <security-role>元素...................654 25.3 内存域...............................................655 25.4 JDBC 域.............................................656 25.4.1 用户数据库的结构...............656 25.4.2 在MySQL 中创建和配置用户数 据库............................................657 25.4.3 配置<Realm>元素.................658 25.5 DataSource 域....................................659 25.6 在Web 应用中访问用户信息...........660 25.7 小结...................................................661 25.8 思考题...............................................661 第26章 Tomcat与其他HTTP 服务器集成 ...................................................................663 26.1 Tomcat 与HTTP 服务器集成的原理663 26.1.1 JK插件..................................664 26.1.2 AJP 协议................................665 26.2 在Windows下Tomcat与Apache服务器 集成.....................................................665 26.3 在Linux下Tomcat 与Apache服务器集 成.........................................................668 26.4 Tomcat 与IIS 服务器集成................670 26.4.1 安装和启动IIS服务器.........670 26.4.2 准备相关文件.......................671 26.4.3 编辑注册表...........................672 26.4.4 在IIS 中加入“jakarta”虚拟目 录................................................673 26.4.5 把JK 插件作为ISAPI 筛选器加 入到IIS......................................674 26.4.6 测试配置...............................675 26.5 Tomcat 集群.......................................675 26.5.1 配置集群系统的负载平衡器676 26.5.2 配置集群管理器...................678 26.6 小结...................................................682 26.7 思考题...............................................683 第27章 在Tomcat中配置SSI.............685 27.1 SSI 简介.............................................685 27.1.1 #echo指令.............................686 27.1.2 #include指令.........................688 27.1.3 #flastmod 指令......................689 27.1.4 #fsize 指令.............................690 27.1.5 #exec指令.............................690 27.1.6 #config指令..........................690 27.1.7 #if、#elif、#else 和#endif 指令 ....................................................692 27.2 在Tomcat 中配置对SSI 的支持......692 27.3 小结...................................................694 27.4 思考题...............................................694 第28章 Tomcat阀................................697 28.1 Tomcat 阀简介...................................697 28.2 客户访问日志阀................................698 28.3 远程地址过滤阀................................700 28.4 远程主机过滤阀................................701 28.5 错误报告阀........................................702 28.6 小结...................................................703 28.7 思考题...............................................703 第29章 在Tomcat中配置SSL...........705 29.1 SSL简介............................................705 29.1.1 加密通信...............................706 29.1.2 安全证书...............................706 29.1.3 SSL握手...............................707 29.2 在Tomcat 中使用SSL......................709 29.2.1 准备安全证书.......................709 29.2.2 配置SSL连接器...................710 29.2.3 访问支持SSL的Web站点..711 29.3 小结...................................................712 29.4 思考题...............................................712 第30章 用ANT工具管理Web 应用..715 30.1 安装配置ANT ..................................715 30.2 创建build.xml 文件..........................715 30.3 运行ANT..........................................721 30.4 小结...................................................722 30.5 思考题...............................................723 第31章 使用Log4J 进行日志操作.....725 31.1 Log4J简介........................................725 31.1.1 Logger 组件...........................726 31.1.2 Appender组件.......................727 31.1.3 Layout 组件...........................728 31.1.4 Logger 组件的继承性...........729 31.2 Log4J 的基本使用方法.....................730 31.2.1 创建Log4J的配置文件........730 31.2.2 在程序中使用Log4J ............731 31.3 在helloapp 应用中使用Log4J .........734 31.4 小结...................................................736 31.5 思考题...............................................736 第32章 Velocity模板语言...................739 32.1 获得与Velocity相关的类库............739 32.2 Velocity的简单例子.........................740 32.2.1 创建Velocity模板................740 32.2.2 创建扩展VelocityViewServlet的 Servlet 类...................................740 32.2.3 发布和运行基于Velocity的Web 应用............................................741 32.3 注释...................................................743 32.4 引用...................................................743 32.4.1 变量引用...............................744 32.4.2 属性引用...............................744 32.4.3 方法引用...............................746 32.4.4 正式引用符...........................747 32.4.5 安静引用符...........................747 32.4.6 转义符...................................747 32.4.7 大小写替换...........................748 32.5 指令...................................................748 32.5.1 #set指令................................748 32.5.2 字面字符串...........................750 32.5.3 #if指令..................................750 32.5.4 比较运算...............................751 32.5.5 #foreach 循环指令................752 32.5.6 #include指令.........................753 32.5.7 #parse指令............................754 32.5.8 #macro 指令..........................754 32.5.9 转义VTL指令......................755 32.5.10 VTL的格式.........................756 32.6 其他特征...........................................756 32.6.1 数学运算...............................756 32.6.2 范围操作符...........................757 32.6.3 字符串的连接.......................757 32.7 小结...................................................758 32.8 思考题...............................................758 第33章 创建嵌入式Tomcat服务器...761 33.1 将Tomcat 嵌入Java 应用.................761 33.2 创建嵌入了Tomcat 的Java 示范程序 .............................................................763 33.3 终止嵌入式Tomcat 服务器..............766 33.3.1 调用Tomcat类的stop()方法终止 服务器........................................766 33.3.2 通过SHUTSDOWN 命令终止服 务器............................................766 33.4 运行嵌入式Tomcat 服务器..............768 33.5 小结...................................................771 33.6 思考题...............................................771 附录A server.xml文件..........................775 A.1 配置Server 元素................................776 A.2 配置Service 元素...............................777 A.3 配置Engine元素...............................777 A.4 配置Host 元素...................................778 A.5 配置Context 元素..............................778 A.6 配置Connector 元素..........................779 A.7 配置Executor 元素............................781 附录B web.xml文件.............................783 B.1 配置过滤器.........................................785 B.2 配置Servlet ........................................786 B.3 配置Servlet 映射................................787 B.4 配置Session........................................787 B.5 配置Welcome 文件清单....................787 B.6 配置Tag Library.................................788 B.7 配置资源引用.....................................788 B.8 配置安全约束.....................................789 B.9 配置安全验证登录界面.....................789 B.10 配置对安全验证角色的引用...........790 附录C XML简介..................................791 C.1 SGML、HTML 与XML的比较......791 C.2 DTD 文档类型定义............................792 C.3 有效XML文档以及简化格式的XML文 档.........................................................793 C.4 XML中的常用术语...........................795 C.4.1 URL、URN和URI ...............795 C.4.2 XML命名空间.......................795 附录D 书中涉及软件获取途径...........799
摘要
    "Java 语言已经被广泛用在Web 应用开发领域,Java Web 应用可以充分发挥Java语言自身的优点:跨 平台、健壮、稳定、高效的分布运算性能。而且在Java Web 领域已经出现了许多开放源代码的Web 容 器、框架软件及工具软件,在开发Web 应用的过程中直接运用这些现成的软件,可以减少开发的成本, 提高开发的效率,降低开发的难度。 Tomcat是在Oracle公司的JSWDK(JavaServer Web DevelopmentKit,Oracle 公司推出的小型 Servlet/JSP 调试工具)的基础上发展起来的一个优秀的Java Web 应用容器,它是Apache开源软件组 织的一个子项目。Tomcat被JavaWorld杂志评选为2001年度拥有创新的Java 产品(Most Innovative Java Product)。同时,它还是Oracle公司官方推荐的Servlet/JSP容器。因此它受到越来越多的软件 公司和开发人员的喜爱。Servlet 和JSP 的近期新规范都在Tomcat的新版本中得到了实现。 Java Web 应用容器的主要功能就是运行Servlet 和JSP,而JSP 本质上就是Servlet。因此本文中提到 的Java Web 应用容器、Servlet/JSP 容器或者Servlet容器,实际上都是同一个概念的不同说法。作 为一个开放源代码的软件,Tomcat 得到了开放源代码志愿者的广泛支持,它可以和 目前大部分的主流HTTP 服务器(如IIS 和Apache 服务器)一起工作,而且运行稳定、可靠、效率高。 作者根据多年的Java Web开发经验,详细阐明了在近期新的Tomcat 9版本上开发Java Web应用涉及的各 种技术,并且介绍了如何将Tomcat 和其他主流HTTP 服务器集成,以及创建具有实用价值的企业Java Web 应用的方案。 本书的组织结构和主要内容 本书内容总体上分为两部分。 l 第1章至第23章:依据Oracle的Java Servlet规范和JSP规范,深入介绍了开发JavaWeb 应用的各种 技术。 l 第 24章至第33章:介绍Tomcat服务器的基本配置和高级配置,从而为Java Web应用创建高效的运行 环境;介绍在Java Web 应用中运用第三方提供的实用软件(如Spring、Velocity和Log4J)的方法。 本书按照由浅到深、前后呼应的顺序来安排内容。本书涉及的内容可以细分为以下5 类: (1)Tomcat的基础知识,如表P-1 所示。 表P-1 Tomcat 的基础知识 知识点参考章 Tomcat 服务器作用、结构和安装步骤 第2 章:Tomcat 简介 配置虚拟主机 第3 章:第一个Java Web 应用 (2)Java Web开发的基础知识,如表P-2 所示。 表P-2 Java Web开发的基础知识 知识点 参考章 HTTP 协议和Web运作原理 第1 章:Web运作原理探析 Java Web 应用的结构和发布 第3 章:第一个Java Web 应用 Servlet的基本原理,创建Servlet 的基本步骤,Servlet API中常用 接口和类的用法 第4 章:Servlet技术(上) JSP 基本语法 第6 章:JSP 技术 bookstore 应用范例 第7 章:bookstore 应用简介 在Java Web 应用中访问数据库,配置数据源 第8 章:访问数据库 在Java Web 应用中使用HTTP 会话 第9 章:HTTP会话的使用与管理 在Java Web 应用中访问JavaBean;JavaBean 在不同范围内的生命周期 第10 章:JSP访问JavaBean EL语言 第12 章:EL表达式语言 (3)Java Web开发高级技术,如表P-3 所示。 表P-3 Java Web开发的高级技术 知识点 参考章 用 Servlet实现文件的上传、文件的下载和生成动态图片 第5 章:Servlet技术(下) ServletContext监听器 HTTP 会话监听器 第5 章:Servlet技术(下) 第9 章:HTTP会话的使用与管理 开发JavaMail Web应用,配置Mail Session 第11 章:开发JavaMail Web 应用 创建自定义JSP标签 第13 章:自定义JSP标签 网站的模板设计 第14 章:采用模板设计网上书店应用 JSTL标签库的用法 第15 章:JSTL Core 标签库 第16 章:JSTL I18N标签库 第17 章:JSTL SQL标签库 第18 章:JSTL Functions标签库 创建国际化的Web 应用 第16 章:JSTL I18N标签库简单标签和标签文件的用法 第19 章:简单标签和 标签文件过滤器 第20 章:过滤器在Web应用中访问EJB组件 第21 章:在Web 应用中访问EJB组件 通过AXIS 发布和访问Web服务 第22 章:在Web 应用中访问Web服务Java Web 应用的MVC 设计模式 第 23 章:Web应用的MVC 设计模式(4)在Web 应用中运用第三方提供的实用软件,如表P-4 所示。表P-4 在Java Web应用中运用第三方提供的实用软件知识点 参考章通过AXIS 发布和访问Web服务 第22 章: 在Web 应用中访问Web服务使用Spring MVC框架 第23 章:Web应用的MVC 设计模式使用ANT工具来管理 Web应用 第30 章:用ANT工具管理Web应用使用Log4J进行日志操作 第31 章:使用Log4J进行日志操作 使用Velocity模板语言 第32 章:Velocity模板语言(5)Tomcat的高级功能,如表P-5 所示。表P-5 Tomcat的高级功能 知识点 参考章 持久性会话管理 第9 章:HTTP会话的使用与管理 Tomcat 的控制和管理平台 第24 章:Tomcat 的控制平台和管理平台 安全域 第25 章:安全域 Tomcat 与其他HTTP 服务器(如Apache HTTP 服务器和IIS 服务器)集成 第26 章:Tomcat 与其他HTTP 服务器集成 Tomcat 集群 第26 章:Tomcat 与其他HTTP 服务器集成 在Tomcat 中配置SSI 第27 章:在Tomcat中配置SSI Tomcat 阀 第28 章:Tomcat 阀 在Tomcat 中配置SSL 第29 章:在Tomcat中配置SSL 创建嵌入式Tomcat 第33 章:创建嵌入式Tomcat服务器 本书的范例程序 本书通过以下3个Web应用范例贯穿全书: l helloapp 应用 l bookstore(网上书店)应用 l JavaMail Web(javamail)应用 1.helloapp应用 本书通过helloapp 应用的例子来讲解Java Web 开发的基础知识。比如,在第3 章以helloapp 应用为 例,讲述了发布Web 应用的步骤。在其他章节中,所有针对单个知识点的Servlet和JSP 的例子,都被 发布到helloapp 应用中。 2.bookstore 应用 bookstore应用是一个充分运用了所有Java Web 开发技术的综合实例,它实现了一个网上书店,更加 贴近实际应用。为了便于读者循序渐进地掌握Java Web 应用技术,在书中提供了bookstore应用的5个 版本,它们分别侧重于某些技术。 (1)bookstore version0:通过这个例子读者可以进一步掌握JSP 编程的技巧,能够灵活地运用 JavaBean和HttpSession,并掌握通过JDBC API访问数据库的技术。 (2)bookstore version1:该例介绍如何在Tomcat中配置JNDI DataSource(数据源),以及如何在 Web 应用中访问JNDI DataSource。 (3)bookstore version2:使读者掌握创建JSP 自定义标签的高级技术,并掌握对网页进行模板设计 的方法。 (4)bookstore version3:实现了基于Java EE 架构的bookstore 应用,并介绍了在WildFly应用服 务器上发布bookstore应用的方法。 (5)bookstore version4:实现了基于Web 服务架构的bookstore 应用。 3.JavaMail Web(javamail)应用 JavaMail Web应用是一个基于Web的邮件客户程序,它向Web 客户提供了访问邮件服务器上的邮件账号、 进行收发邮件和管理邮件夹等功能。通过这个例子,读者可以了解电子邮件的发送和接收协议,掌握 JavaMail API的使用方法,以及通过JavaMail API创建JavaMailWeb 应用的过程。通过这个例子,读 者还可以掌握在Tomcat 中配置Mail Session 的步骤,以及在Web 应用中访问Mail Session的方法。 这本书是否适合你 阅读本书,要求读者具备Java编程的基础知识,作者的另外两本书(《Java 面向对象编程》和《大话、 Java:程序设计从入门到精通》)对此做了详细介绍。 本书面向所有打算或已经开发Java Web 应用的读者。尽管本书在讲解Java Web技术时以Tomcat作为运 行平台,但由于Java Web 技术是Oracle公司在Java Servlet 规范中提出的通用技术,因此本书讲解 的范例可以运行在任何一个实现Oracle的Servlet规范的Java Web服务器上。另一方面,由于Tomcat是 Oracle公司官方推荐的Servlet/JSP 容器,因此在学习Java Web开发技术或进行实际的开发工作时, Tomcat是优选的Java Web应用容器。 如果你是开发Java Web 应用的新手,建议按照本书的先后顺序来学习。如果你已经在开发Java Web 应 用方面有丰富的经验,则可以把本书作为实用的Tomcat 技术和Java Web开发技术的参考资料。本书详 细介绍了Servlet API、JDBC API和JavaMail API等的用法, 还详细介绍了JSTL标签库中各个标签的用法。此外,还介绍了把Tomcat与当前其他通用的HTTP 服务器 集成的步骤,以及Tomcat 的各种高级功能。灵活运用本书介绍的各种开发和配置技巧,将使Java Web 应用开发更加得心应手。 实践是掌握Java Web 技术最迅速、有效的办法。本书提供了大量典型的例子,在本书附赠光盘中提供 了完整的源代码,以及软件安装程序。本书所有程序均在Tomcat 9 版本中测试通过,读者可以按照书 上介绍的详细步骤亲自动手,在本地机器上配置Tomcat 开发和运行环境,然后创建和发布Java Web 应 用。 光盘使用说明 本书附赠光盘包含以下目录。 1.software目录 在该目录下包含了本书涉及的大多数软件的安装程序,主要包括: (1)Tomcat的安装软件 (2)MySQL服务器的安装软件 (3)Apache HTTP服务器的安装软件 (4)Ant的安装软件 (5)AXIS 软件 (6)Log4J 软件 (7)Spring 框架软件 (8)WildFly软件 (9)Velocity软件 除了上述软件,本书还会用到JDK和MerakMailServer软件,受这些软件版权的,光盘中未提供这 两个软件。读者可以到这些软件的官方网站或者JavaThinker.net网站的技术支持网页下载它们。本书 的相关章节详细介绍了获取这些软件的途径。 2.sourcecode 目录 在该目录下提供了本书所有的源程序,每一章的源程序位于相应的sourcecode/chapterX目录下(X 代 表章节号)。bookstore 应用和javamail 应用分别位于sourcecode/bookstores 和 sourcecode/javamails目录下。 3.lesson 目录 在该目录下提供了与本书配套的精品视频课程。 第三版增加内容 第三版保留了第二版的精华内容,并且在内容的深度和广度方面都作了很大的扩展。第三版主要增加 了如下内容: l 根据近期新的Servlet 规范,增加了新的内容,包括:对请求的异步处理、服务器端推送,以及用标 注来配置Servlet和过滤器等。 l 根据近期新的JDK、Servlet4 API以及EJB3 API,更新了本书中所有的程序代码和配置代码。 l 介绍了近期新版本的Tomcat 9、AXIS 2、Velocity、Log4J等软件的用法。介绍了近期新版本的Tomcat与 Apache HTTP服务器,以及IIS 服务器集成的方法。 l 在介绍MVC设计模式时,介绍了Spring MVC框架在Java Web中的具体运用方法。 l 在本书附赠光盘中包含了书中所有的源代码和大部分软件的近期新版本。此外,还提供了与本书配套 的精品视频课程。 l 为本书多数章提供了精心设计的思考题及答案,帮助读者理解和巩固书中阐述的知识。 本书技术支持网址 以下网址是作者为本书提供的技术支持网址,读者可通过它获取近期新的Java Web 开发技术资料,下载 与本书相关的资源(如源代码、软件安装程序、讲义、视频教程等),还可以与其他读者交流学习心 得,与作者联系,以及对本书提出宝贵意见: http://www.javathinker.net/javaweb.jsp 致谢 本书在编写过程中得到了Apache 软件组织和Oracle公司的大力技术支持,本书第一版和第二版的读者 以及JavaThinker.net网站的网友为本书的编写提供了有益的帮助,在此表示衷心的感谢!尽管我们尽 了优选努力,但本书难免会有不妥之处,欢迎各界专家和读者朋友批评指正。 "

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网