具体描述
内容提要
用Java进行客户端的applet(小程序)开发的技术已广为使用,而用Java进行服务器端的Servlet(服
务器小程序)开发则尚需揭开其神秘的面纱,本书正是基于这样的目的编写的。全书从Java服务器的
体系结构、开发工具和管理工具、编程技术、安全机制等四个方面全面介绍Java服务器的开发技术。通
过阅读本书,读者不仅能够知道用Java服务器体系结构开发Servlet与用传统CGI编写程序的好处,而且
还能够掌握编写JavaServlet的各种技术和技巧。
本书适用于所有对Java和Web感兴趣的读者使用和参考。
作者简介
目录信息
第1部分 Java服务器基础
第1章 Java计算的体系结构
1.1传统的计算模式
1.1.1集中式计算模式
1.1.2胖客户机/服务器计算模式
1.1.3瘦客户机/服务器计算模式
1.1.4JavaDesktop与X终端
1.2Java计算
1.3小结
第2章 Java服务器与Servlet
2.1JavaServer的结构
2.1.1服务
2.1.2服务器
2.1.3服务构架
2.1.4服务器处理构架
2.1.5HTTP服务
2.1.6核心Servlet
2.1.7AGL
2.2Servlet及其功能
2.2.1什么是Servlet
2.2.2Servlet与applet的区别
2.2.3Servlet的应用
2.3Servlet与CGI的比较
2.3.1CGI
2.3.2Servlet的优点
2.4运行Servlet
2.5小结
第2部分 Java服务器的开发工具和管理工具
第3章 使用Java Server与Servlet开发工具
3.1JavaWebServer的安装与启动
3.1.1在Windows95或WindowsNT上安装
3.1.2在UNLX上安装
3.1.3JavaServer环境变量的设置
3.1.4启动JavaServer
3.1.5在端口80上启动JavaServer
3.1.6结束JavaServer的运行
3.1.7删除JavaServer
3.1.8显示缺省主页
3.1.9使用随机文档
3.2Servlet的加载和调用
3.2.1加载Servlet
3.2.2Servlet的标识
3.2.3调用Servlet
3.3JSDK的安装与使用
3.3.1ServletRunner
3.3.2在Netscape服务器上安装JSDK
3.3.3在Apache服务器上安装
3.4小结
第4章 Java Web Server 的管理
4.1进入管理工具
4.2设置
4.2.1设置WebService
4.2.2设置ProxyService
4.2.3设置管理服务
4.3监视
4.3.1记录输出
4.3.2记录统计
4.3.3资源的使用
4.4安全控制
4.4.1用户管理
4.4.2用户组
4.4.3访问控制表
4.4.4资源保护
4.5Servlet管理
4.5.1增加Servlet
4.5.2设置Servlet属性
4.5.3修改Servlet属性
4.5.4删除Servlet
4.6小结
第3部分 Java服务器编程
第5章 Servlet包介绍
5.1avax.servlet包
5.1.1接口Servlet
5.1.2接口ServletConfig
5.1.3接口ServletContext
5.1.4接口ServletRequest
5.1.5接口ServletResponse
5.1.6类GenericServlet
5.1.7类ServletlnputStre am
5.1.8类ServetOutputStream
5.2javax.servlet.http包
5.2.1接口httpServletRequest
5.2.2接口httpServletResponse
5.2.3类HttpSe rvlet
5.2.4类HttpUtils
5.3sun.servlet包介绍
5.3.1接口ServletConnection
5.3.2类ServletLoader
5.4小结
第6章 Sunserrlethttp包介绍
6.1类Cookie
6.2类HttpDate
6.3类HttpInputStream
6.4类HttpOutputStream
6.5类HttPRequest
6.6类HttpResponse
6.7类HttpServer
6.8类HttpServerHandler
6.9类HttpServletConfig
6.10类MessageBytes
6.11类MessageString
6.12类MimeHeaderField
6.13类MimeHeaders
6.14小结
第7章 GenericServlet编程
7.1Servlet编程的一个小例子
7.1.1GenericServlet在JSDK中的地位
7.1.2从Helloworld学习GenericServlet编程
7.1.3Servlet的两个生命周期函数
7.2Servlet中的对象
7.2.1Servlet中的请求和应答对象
7.2.2Servlet中的ServletConfig对象
7.3Servlet输出HTML文件
7.4小结
第8章 HttpServlet编程介绍
8.1HTTP简介
8.1.1HTTP协议基本概念及其特点
8.1.2HTTP协议的请求和应答
8.1.3HTTP协议的信息处理方法
8.2HttpServlet编程入门
8.2.1一个简单例子
8.2.2HttpServlet的常用对象介绍
8.3Cookie编程介绍
8.3.1Cookie简介
8.3.2一个Cookie例子程序
8.4小结
第9章 Servlet高级编程
9.1Servlet与Form
9.1.1Form简介
9.1.2一个完整的Form
9.2编写一个SHTML文本
9.3异常处理
9.4Servlet与applet的通信
9.5小结
第10章 聊天室
10.1“聊天室”客户程序
10.2“聊天室”服务器程序
10.3“聊天”
10.4 小结
第11章 RMI与Servlet
11.1RMI概述
11.2如何编写RMI
11.2.1定义一个远程接口
11.2.2实现远程接口
11.2.3写一个applet
11.2.4写HTML文本
11.2.5编译和执行
11.3RMI与Servlet
11.3.1定义远程接口
11.3.2实现远程接口
11.3.3调用RMI的Servlet
11.3.4调用Servlet的applet
11.3.5三个超文本文件
11.3.6编译和执行
11.4小结
第12章 Servlet与JDBC
12.1JDBC简介
12.1.1实现JDBC
12.1.2JDBC类细节
12.2JDBC与Servlet结合
12.2.1基本过程
12.2.2Servlet的同步
12.2.3应用举例
12.3小结
第13章 开发服务
13.1服务
13.2实现服务的核心
13.3安装服务
13.3.1创建属性文件
13.3.2创建Jamfile
13.4创建日志
13.4.1日志文件类型
13.4.2在自己的服务中加入日志文件
13.5服务的参数管理
13.5.1系统参数
13.5.2增加新的参数
13.5.3创建存放参数的域
13.5.4实现访问方法
13.5.5构造器
13.5.6Update方法
13.6使用Realm来创建安全服务
13.6.1查找Realm
13.6.2设置Realm
13.6.3收集用户数据的对象
13.6.4给服务增加身份验证代码
13.7小结
第14章 PageCompile
14.1生成动态主页
14.1.1创建第一个主页
14.1.2从HTML文档到Java源文件
14.2语法
14.2.1声明变量
14.2.2条件语句
14.2.3循环语句
14.2.4注释
14.2.5使用BackQuotes
14.2.6使用Servlet标记
14.2.7输出Java表达式
14.3使用Java类
14.3.1重用Java类
14.3.2创建自己的类
14.3.3访问Request和Response对象
14.4Servlet初始化参数
14.5PageCompile中使用的标记
14.6小结
第4部分Java服务器安全机制
第15章 JavaWebServer的安全机制
15.1安全综述
15.1.1常见的攻击形式
15.1.2JavaWebServer的安全机制
15.1.3其他特点
15.1.4UNLX上的独有特点
15.2WebRealm机制
15.2.1Realm模型
15.2.2用户和授权
15.2.3用户组
15.3访问控制表(ACL)
15.3.1访问控制表结构
15.3.2计算权限的规则
15.3.3例子
15.3.4用法举例
15.4SSL机制
15.4.1什么是SSL
15.4.2建立安全的Web服务
15.4.3使用认证许可
15.5沙盒
15.6小结
附录A FAQ
A.1安装和配置
A.2服务器
A.3Servlet
附录B CGI工作原理
B.1CGI工作机理
B.2环境变量
附录C JavaWebServer中的MIME类型
附录D 站点参考
· · · · · · (收起)
读后感
用户评价
这本书的排版和示例代码的质量,让我作为一名对细节有洁癖的读者感到非常愉悦。很多技术书籍的排版混乱不堪,代码块中常常出现缩进错误或者变量命名含糊不清的问题,但这本《JAVA服务器程序设计》则完全没有这个问题。每一个代码片段都经过了精心的打磨,变量名和函数名都力求语义清晰,注释虽少但到位,更重要的是,所有的示例都可以在主流的Spring Boot或Spring Cloud环境中无缝运行,这极大地节省了我搭建环境进行验证的时间。我尤其喜欢其中关于性能调优的部分,作者没有采用那种空泛的“多优化”的口号,而是提供了一套完整的火焰图(Flame Graph)分析流程,指导读者如何利用JProfiler或VisualVM来定位CPU热点和内存泄漏的源头。跟随书中的步骤,我成功地定位并修复了项目中一个长期存在的、由某个第三方库引入的微妙的内存碎片问题,这单方面的收获就值回了书本的价格。
这本书的深度和广度令人印象深刻,简直就像是给每一个想在Java后端领域站稳脚跟的开发者量身定做的一本武林秘籍。我尤其欣赏作者在讲解基础概念时那种由浅入深的耐心,完全没有那种高高在上的技术精英腔调。比如,它对并发编程的阐述,不是简单地堆砌`synchronized`和`Lock`的API文档,而是深入剖析了JVM内存模型在多线程环境下的实际表现,以及如何通过CAS操作来构建更高效的无锁结构。读完相关章节,我感觉自己对线程安全问题的理解提升到了一个新的维度,不再是靠猜测或复制粘贴别人的代码片段来解决问题。更值得称赞的是,书中对设计模式在服务器应用中的实战应用做了详尽的分析,特别是对于那些在大型系统中频繁出现的如服务注册与发现、负载均衡策略的实现,作者提供了多个不同粒度的代码示例,每一个例子都清晰地展示了理论如何转化为生产力代码。这对于我这种在实际项目中经常需要权衡性能与可维护性的工程师来说,无疑是极大的帮助。这种理论与实践紧密结合的写作风格,使得这本书不仅是工具书,更像是一本能指导职业成长的教科书。
坦白讲,我一开始对市面上琳琅满目的Java服务器编程书籍有些审美疲劳,觉得它们大多在重复讲述Servlet 3.0之后的那些标准功能。然而,翻开这本著作后,我立刻感受到了它在“新一代”技术栈上的聚焦。书中花了不少笔墨讲解Netty这类非阻塞I/O框架如何从根本上改变服务器模型的效率,以及如何利用其强大的事件驱动模型来处理高并发连接。作者的讲解不是停留在“使用”Netty,而是深入到Reactor设计模式的实现细节,这对于想要跳出Tomcat/Jetty容器限制,构建自有网络协议服务的开发者来说,是不可多得的宝贵资料。此外,关于安全性的讨论也十分到位,从HTTPS的握手过程到JWT在微服务间的鉴权实践,都给出了非常具体的代码实现和安全考量,让我对如何构建一个既快速又安全的服务器有了更清晰的蓝图。这本书的价值在于,它不仅教会你如何把服务器跑起来,更重要的是,它教你如何把服务器跑得“又快又稳又安全”。
这本书给我的整体感觉是,它不是写给初学者的入门指南,而更像是一份为经验丰富的工程师准备的“查漏补缺”和“视野拓宽”的工具箱。作者似乎深谙大型系统维护中的痛点,比如配置管理的复杂性、日志收集的标准化,以及如何构建一个优雅的健康检查机制。书中对Spring框架底层机制的剖析,尤其是在AOP和IoC容器初始化过程中的黑魔法,解释得深入且直观,打破了我之前对Spring“万能黑盒”的迷信。更让人眼前一亮的是,作者还涉猎了一些更偏向DevOps和SRE(站点可靠性工程)的实践内容,比如如何利用Prometheus和Grafana来构建实时的服务器性能监控仪表盘,并结合实际的告警规则,说明了Java应用在不同负载下的指标变化。这种跨越传统开发边界的知识融合,让我意识到,一个优秀的后端工程师绝不能仅仅停留在写业务逻辑的层面,必须对整个运行环境有着全面的掌控力。
当我打开这本关于Java服务器编程的著作时,我本以为会看到一堆陈词滥调的Servlet/JSP教程,但事实证明我的顾虑完全是多余的。作者似乎对现代微服务架构有着深刻的洞察力,书中的大部分篇幅都聚焦于如何构建高可用、高伸缩性的分布式系统。特别是关于RPC框架的深入探讨,从早期的RMI到如今流行的Dubbo或gRPC的底层原理,作者没有放过任何一个技术演进的关键节点。他详细拆解了序列化与反序列化的性能瓶颈,并提供了优化建议,这部分内容对于优化我们线上服务的网络传输效率至关重要。此外,书中关于消息队列(MQ)选型和使用的章节,也是一笔宝贵的财富。它不仅仅教你如何发送和接收消息,更关键的是讲解了事务性保证、消息重复消费的幂等性处理,以及如何设计死信队列(DLQ)来保证业务流程的健壮性。这种对系统韧性的强调,远超出了普通技术书籍的范畴,它真正关注的是系统如何在“失败”时依然能保持正常运行。