网上购物 货比三家
您现在的位置:快乐比价网 > 图书 > 计算机与网络 > 程序设计 > 商品详情

深入分析Java Web技术内幕

分享到:
深入分析Java Web技术内幕

最 低 价:¥51.80

定 价:¥69.00

作 者:许令波

出 版 社:电子工业出版社

出版时间:2012-9-1

I S B N:9787121179907

价格
51.80元
价格
58.40元

商品详情

编辑推荐

内容简介

本书围绕Java Web相关技术从三方面全面深入地进行阐述。首先介绍前端知识,主要介绍Java Web开发中涉及的一些基本知识,包括Web请求过程、HTTP协议、DNS技术和CDN技术。其次深入介绍Java技术,包括I/O技术、中文编码问题、Javac编译原理、class文件结构解析、ClassLoader工作机制及JVM的内存管理等。最后介绍Java服务端技术,主要包括Servlet、Session与Cookie、Tomcat与Jetty服务器、Spring容器、Ibatis框架和Velocity框架等原理介绍。本书不仅介绍这些技术和框架的工作原理,而且结合示例来讲解,通过通俗易懂的文字和丰富生动的配图,让读者充分并深入理解它们的内部工作原理,同时还结合了设计模式来介绍这些技术背后的架构思维。

作者简介

许令波,毕业于合肥工业大学,获计算机硕士学位。热爱Java Web技术,关注服务端性能优化,热衷开源技术的研究和分享,曾获developerWorks最佳作者称号。2009年进入淘宝工作,目前从事模板渲染框架与MVC框架的开发与应用、Java Web的性能优化、高访问量系统静态化和商品详情系统的业务改造等工作。

个人博客:http://xulingbo.net

目录

1  深入Web请求过程       1

1.1  B/S网络架构概述       2

1.2  如何发起一个请求      4

1.3  HTTP协议解析    6

1.3.1  查看HTTP信息的工具    8

1.3.2  浏览器缓存机制       9

1.4  DNS域名解析     12

1.4.1  DNS域名解析过程   12

1.4.2  跟踪域名解析过程   15

1.4.3  清除缓存的域名       18

1.4.4  几种域名解析方式   19

1.5  CDN工作机制     20

1.5.1  CDN架构  20

1.5.2  负载均衡   21

1.6  总结      24

2  深入分析Java I/O的工作机制    25

2.1  JavaI/O类库的基本架构       25

2.1.1  基于字节的I/O操作接口 26

2.1.2  基于字符的I/O操作接口 27

2.1.3  字节与字符的转化接口   28

2.2  磁盘I/O工作机制       29

2.2.1  几种访问文件的方式       29

2.2.2  Java访问磁盘文件   33

2.2.3  Java序列化技术       34

2.3  网络I/O工作机制       36

2.3.1  TCP状态转化   37

2.3.2  影响网络传输的因素       39

2.3.3  Java Socket的工作机制   39

2.3.4  建立通信链路   40

2.3.5  数据传输   41

2.4  NIO的工作方式   41

2.4.1  BIO带来的挑战       41

2.4.2  NIO的工作机制       42

2.4.3  Buffer的工作方式    45

2.4.4  NIO的数据访问方式       47

2.5  I/O调优 49

2.5.1  磁盘I/O优化    49

2.5.2  TCP网络参数调优   50

2.5.3  网络I/O优化    52

2.6  设计模式解析之适配器模式      56

2.6.1  适配器模式的结构   56

2.6.2  Java I/O中的适配器模式 57

2.7  设计模式解析之装饰器模式      57

2.7.1  装饰器模式的结构   58

2.7.2  Java I/O中的装饰器模式 58

2.8  适配器模式与装饰器模式的区别      59

2.9  总结      59

3  深入分析Java Web中的中文编码问题      60

3.1  几种常见的编码格式   60

3.1.1  为什么要编码   60

3.1.2  如何翻译       61

3.2  Java中需要编码的场景      63

3.2.1  I/O操作中存在的编码     63

3.2.2  内存操作中的编码   65

3.3  Java中如何编解码      66

3.3.1  按照ISO-8859-1编码      68

3.3.2  按照GB2312编码    69

3.3.3  按照GBK编码  70

3.3.4  按照UTF-16编码     70

3.3.5  按照UTF-8编码      71

3.3.6  UTF-8编码代码片段       71

3.3.7  几种编码格式的比较       73

3.4  Java Web中涉及的编解码  73

3.4.1  URL的编解码   75

3.4.2  HTTP Header的编解码    78

3.4.3  POST表单的编解码 78

3.4.4  HTTP BODY的编解码     79

3.5  JS中的编码问题  80

3.5.1  外部引入JS文件     80

3.5.2  JSURL编码 81

3.5.3  其他需要编码的地方       83

3.6  常见问题分析      83

3.6.1  中文变成了看不懂的字符       83

3.6.2  一个汉字变成一个问号   84

3.6.3  一个汉字变成两个问号   84

3.6.4  一种不正常的正确编码   85

3.7  总结      86

4  Javac编译原理      87

4.1  Javac是什么 88

4.2  Javac编译器的基本结构     88

4.3  Javac工作原理分析     90

4.3.1  词法分析器       91

4.3.2  语法分析器       98

4.3.3  语义分析器       103

4.3.4  代码生成器       113

4.4  设计模式解析之访问者模式      116

4.4.1  访问者模式的结构   117

4.4.2  Javac中访问者模式的实现     118

4.5  总结      119

5  深入class文件结构      120

5.1  JVM指令集简介  120

5.1.1  类相关的指令   122

5.1.2  方法的定义       123

5.1.3  属性的定义       124

5.1.4  其他指令集       125

5.2  class文件头的表示形式      133

5.3  常量池   137

5.3.1  UTF8常量类型 140

5.3.2  FieldrefMethodref常量类型 141

5.3.3  Class常量类型  141

5.3.4  NameAndType常量类型   142

5.4  类信息   142

5.5  FieldsMethods定义 143

5.6  类属性描述   147

5.7  Javap生成的class文件结构       148

5.7.1  LineNumberTable      150

5.7.2  LocalVariableTable     151

5.8  总结      153

6  深入分析ClassLoader 工作机制  154

6.1  ClassLoader类结构分析      155

6.2  ClassLoader的等级加载机制      156

6.3  如何加载class文件     159

6.3.1  加载字节码到内存   159

6.3.2  验证与解析       161

6.3.3  初始化Class对象     161

6.4  常见加载类错误分析   161

6.4.1  ClassNotFoundException   161

6.4.2  NoClassDefFoundError     162

6.4.3  UnsatisfiedLinkError 163

6.4.4  ClassCastException    164

6.4.5  ExceptionInInitializerError       165

6.5  常用的ClassLoader分析     166

6.6  如何实现自己的ClassLoader      170

6.6.1  加载自定义路径下的class文件      170

6.6.2  加载自定义格式的class文件  172

6.7  实现类的热部署   174

6.8  Java应不应该动态加载类   176

6.9  总结      177

7  JVM体系结构与工作方式   178

7.1  JVM体系结构     178

7.1.1  何谓JVM   178

7.1.2  JVM体系结构详解   181

7.2  JVM工作机制     183

7.2.1  机器如何执行代码   183

7.2.2  JVM为何选择基于栈的架构   184

7.2.3  执行引擎的架构设计       185

7.2.4  执行引擎的执行过程       186

7.2.5  JVM方法调用栈      191

7.3  总结      195

8  JVM内存管理       196

8.1  物理内存与虚拟内存   197

8.2  内核空间与用户空间   198

8.3  Java中哪些组件需要使用内存   199

8.3.1  Java       199

8.3.2  线程   199

8.3.3  类和类加载器   200

8.3.4  NIO    200

8.3.5  JNI     201

8.4  JVM内存结构     201

8.4.1  PC寄存器  202

8.4.2  Java       202

8.4.3         203

8.4.4  方法区       203

8.4.5  运行时常量池   204

8.4.6  本地方法栈       204

8.5  JVM内存分配策略     204

8.5.1  通常的内存分配策略       205

8.5.2  Java中内存分配详解       205

8.6  JVM内存回收策略     210

8.6.1  静态内存分配和回收       210

8.6.2  动态内存分配和回收       211

8.6.3  如何检测垃圾   211

8.6.4  基于分代的垃圾收集算法       213

8.7  内存问题分析      222

8.7.1  GC日志分析     222

8.7.2  堆快照文件分析       225

8.7.3  JVM Crash日志分析 225

8.8  实例1    231

8.9  实例2    233

8.10  实例3  235

8.11  总结     240

9  Servlet工作原理解析    241

9.1  Servlet容器说起     241

9.1.1  Servlet容器的启动过程   242

9.1.2  Web应用的初始化工作   245

9.2  创建Servlet实例  247

9.2.1  创建Servlet对象      248

9.2.2  初始化Servlet   248

9.3  Servlet体系结构  250

9.4  Servlet如何工作  253

9.5  Servlet中的Listener    255

9.6  Filter如何工作     257

9.7  Servlet中的url-pattern 259

9.8  总结      260

10  深入理解SessionCookie       261

10.1  理解Cookie 262

10.1.1  Cookie属性项 262

10.1.2  Cookie如何工作     263

10.1.3  使用Cookie的限制 266

10.2  理解Session       267

10.2.1  SessionCookie    267

10.2.2  Session如何工作    268

10.3  Cookie安全问题 271

10.4  分布式Session框架   272

10.4.1  存在哪些问题  272

10.4.2  可以解决哪些问题  273

10.4.3  总体实现思路  273

10.5  Cookie压缩 278

10.6  表单重复提交问题    280

10.7  总结    281

11  Tomcat的系统架构与 设计模式       282

11.1  Tomcat总体设计 282

11.1.1  Tomcat总体结构     283

11.1.2  Connector组件 289

11.1.3  Servlet容器Container     294

11.1.4  Tomcat中的其他组件

商品评论(0条)

暂无评论!

您的浏览历史

loading 内容加载中,请稍后...