Catálogo de libros que analiza en profundidad la historia interna de la tecnología web Java
1.1 Descripción general de la arquitectura de red B/S 2
1.2 Cómo iniciar una solicitud 4
1.3 Análisis del protocolo HTTP 6
1 . 3 . 1 Herramientas para ver información HTTP 8
1.3.2 Mecanismo de almacenamiento en caché del navegador 9
1.4 Resolución de nombres de dominio DNS 12
1.4 .1 Proceso de resolución de nombres de dominio DNS 12
1.4.2 Seguimiento del proceso de resolución de nombres de dominio 15
1.4.3 Borrar nombres de dominio almacenados en caché 18
1.4. 4 Varios nombres de dominio Método de análisis 19
1.5 Mecanismo de funcionamiento de CDN 20
1.5.1 Arquitectura de CDN 20
1.5.2 Equilibrio de carga
1.6 Resumen 24
El Capítulo 2 proporciona un análisis en profundidad del mecanismo de trabajo de Java I/O.
2.1 Arquitectura básica de la biblioteca de clases de E/S de Java 25
2.1.1 Interfaz de operación de E/S basada en bytes 26
2.1.2 Basado en caracteres Interfaz de operación de E/S 27
2.1.3 Interfaz de conversión de bytes a caracteres 28
2.2 Mecanismo de trabajo de E/S del disco 29
2.2.1 Varios métodos de acceder a archivos 29
2.2.2 Acceso Java a archivos de disco 33
Tecnología de serialización Java 34
2.3 Mecanismo de trabajo de E/S de red 36
2.3.1 Transición de estado de TCP 37
2.3.2 Factores que afectan la transmisión de la red 39
2 3 3 Mecanismo de funcionamiento del socket Java 39
2.3. .4 Establecimiento de un enlace de comunicación 40
2.3.5 Transmisión de datos 41
2.4 Modo de trabajo de nio 41
2 4 . /p>
2.4.2 Mecanismo de funcionamiento del óxido de níquel
2.4.3 Modo de funcionamiento del buffer 45
2. 4 Modo de acceso a datos de NIO 47
2.5 Ajuste de E/S 49
2.5.1 Optimización de E/S de disco
2.5.2 Ajuste de parámetros de red TCP 50
2.5.3 Optimización de E/S de red 52
2.6 Análisis del patrón de diseño Patrón de adaptador 56
2.6.1 Estructura del patrón de adaptador 56
2. 2 Patrón de adaptador en Java. E/S 57
2.7 Patrón de decoración del análisis de patrones de diseño 57
2.7.1 Estructura del patrón de decoración 58
2 7 . /O 58
2.8 Diferencia entre patrón adaptador y patrón decorador 59
2.9 Resumen 59
El Capítulo 3 proporciona un análisis en profundidad de los problemas de codificación china en Java Web 60
3.1 Varios formatos de codificación comunes 60
3.1.1 ¿Por qué deberíamos codificar 60?
3.1.2 Cómo "traducir" 61
3.2 Escenarios que deben codificarse en Java 63
3.2.1 El código existe en la operación de E/S 63
3.2.2 Operaciones de codificación en memoria 65
3.3 Cómo codificar y decodificar en Java 66
3.3.1 Código compatible con ISO-8859-1 68 .
3.3.2 Cumple con el código 69 del GB2312.
3.3.3 Según especificación GBK 70.
3.3.4 Codificar 70 según UTF-16.
3.3.5 codifica 71 según UTF-8.
3.3.6 Fragmento de código de codificación UTF-8 71
3.3.7 Comparación de varios formatos de codificación 73
3.4 Códecs involucrados en Java Web 73
3.4.1 Codificación y decodificación de URL 75
3. 4. 2 Codificación y decodificación de encabezados HTTP 78
3. 3 Codificación y decodificación de formato de publicación 78 p>
3. 4. 4 Codificación y decodificación del cuerpo http 79
3.5 Problemas de codificación en JS 80
3.5.1 Introducido desde fuera del archivo JS 80
3.5.2 El código URL de JS es 81.
3.5.3 Otros lugares que requieren codificación 83
3.6 Análisis de problemas comunes 83
3.6.1 El chino se ha convertido en caracteres ininteligibles 83
3.6.2 Un carácter chino se convierte en un signo de interrogación 84
3.6.3 Un carácter chino se convierte en dos signos de interrogación 84
3.6.4 La codificación anormal es correcta 85
3.7 Resumen 86
Capítulo 4 Principio de compilación de Javac 87
Qué es 4.1 Javac 88
4.2 La estructura básica del compilador javac 88
4.3 Análisis del principio de funcionamiento de javac 90
4.3.1 Analizador léxico 91
Analizador 98
4.3.3 Analizador semántico 103 p>
4.3.4 Generador de código 113
4.4 Análisis de patrones de diseño del modo invitado 116
4.4.1 Estructura del modo visitante 117
4. 2 Implementación del patrón de visitante en Javac 118
4.5 Resumen 119
El Capítulo 5 profundiza en la estructura del archivo de clase 120.
5.1 Introducción al conjunto de instrucciones JVM 120
5.1.1 Instrucciones relacionadas 122
5.1.2 Definición del método 123
5.1. 3 Definición de atributos 124
5.1.4 Otros conjuntos de instrucciones 125
5.2 Representación del encabezado del archivo de clase 133
5.3 Grupo constante 137
5.3.1 Tipo de constante UTF8 140
5. 2 El tipo de constante del campo ref y Methodref es 141.
5.3.3 Tipos de constantes de clase 141
5.3.4 Nomenclatura y tipos de constantes de tipo 142
5.4 Información de categoría 142
5.5 Campos y definición del método 143
5.6 Descripción del atributo de categoría 147
5.7 Estructura del archivo de clase generada por javap 148
Tabla 150
5.7 .2 Tabla de variables locales 151
5.8 Resumen 153
El Capítulo 6 proporciona un análisis en profundidad del mecanismo de trabajo del cargador de clases 154
6.1 Clases del cargador de clases 155 Análisis estructural
6.2 Mecanismo de carga horizontal del cargador de clases 156
6.3 Cómo cargar archivos de clases 159
6.3.1 Carga de código de bytes en la memoria 159
p>6.3.2 Verificación y análisis 161
6.3.3 Inicializando objetos de clase 161.
6.4 Análisis de errores de clases de carga comunes 161
6 4 . 1 excepción de clase no encontrada 161
6 2 NoClassDefFoundError . p>Error de enlace insatisfactorio 163
6 .4 .4 class castexception 164
Error de inicialización de excepción 165
Análisis de 6.5 cargadores de clases comunes 166
p>6.6 ¿Cómo implementar tu propio cargador de clases 170?
6.6.1 Cargar archivos de clase 170 en rutas definidas por el usuario.
6.6.2 Cargando archivos de clase de formato personalizado 172.
6.7 implementa la implementación en caliente 174.
¿Java debería cargar la clase 176 dinámicamente?
6.9 Resumen 177
Capítulo 7 Arquitectura JVM y modo de trabajo 178
7.1 Arquitectura JVM 178
7.1.1 JVM 178 es lo que ?
7.1.2 Detalles de la arquitectura JVM 181
7.2 Mecanismo de trabajo de JVM 183
7.2.1 ¿Cómo ejecuta la máquina el código 183?
7. 2. 2 ¿Por qué JVM elige la arquitectura basada en pila 184?
7.2.3 Diseño de arquitectura del motor de ejecución 185
7.2.4 Proceso de ejecución del motor de ejecución 186
7.2.5 Pila de llamadas al método JVM 191
7.3 Resumen 195
Capítulo 8 Administración de memoria JVM 196
8.1 Memoria física y memoria virtual 197
8.2 Espacio del kernel y espacio de usuario 198
p>8.3 ¿Qué componentes en Java necesitan usar memoria 199?
8.3.1 Java Heap 199
Subprocesos 199
8.3.3 Clases y cargadores de clases 200
NIO 200
JNI 201
8.4 Estructura de memoria JVM 201
8.4.1 Registro de PC 202
8.4.2 Pila de Java 202
8.4.3 Participación 203
8.4.4 Área de método 203
8.4.5 Grupo constante de tiempo de ejecución 204
8.4.6 Pila de método local 204 p>
8.5 Estrategia de asignación de memoria JVM 204
8.5.1 Estrategia de asignación de memoria pública 205
8. 2 Descripción detallada de la asignación de memoria en Java 205
8.6 Estrategia de reciclaje de memoria JVM 210
8.6.1 Asignación y reciclaje de memoria estática 210
8.6.2 Asignación y reciclaje de memoria dinámica 211
8.6. para detectar basura 211
8.6.4 Algoritmo de recolección de basura basado en la generación 213
8.7 Análisis de problemas de memoria 222
8.7.1 Análisis de registros de cromatografía de gases 222
Análisis de archivos de instantáneas del montón 225
8.7.3 Análisis del registro de fallas de JVM 225
8.8 Ejemplo 1 231
8.9 Ejemplo 2 233 p>
8.10 Ejemplo 3 235
8.11 Resumen 240
Capítulo 9 Análisis de los principios de funcionamiento de Servlet 241
9.1 Hablando de contenedores de Servlet 241
9.1.1 Proceso de inicio del contenedor de servlet 242
9.1.2 Trabajo de inicialización de la aplicación web 245
9.2 Creación de una instancia de servlet 247
Creación de un servlet objeto 248
9.2.2 Inicialización de Servlet 248
9.3 Arquitectura de servlet 250
9.4 Cómo funciona el servlet 253
9.5 Escucha en Servlet 255
¿Cómo funcionan los filtros 9.6? 257
9.7 Patrones de URL en servlets 259
9.8 Resumen 260
Capítulo 10 Comprensión profunda de las sesiones y las cookies 261
10.1 Comprender las cookies 262
10.1.1 Elemento de atributo de cookie 262
Cómo funcionan las cookies 263
10.1.3 Limitaciones en el uso de cookies 266
10.2 Comprender las sesiones 267
10.2.1 Sesiones y cookies 267
Cómo funcionan las sesiones
10.3 Problemas de seguridad de las cookies 271
10.4
Marco de sesión distribuida 272
10.4.1 ¿Cuáles son los problemas con 272?
Qué problemas puede resolver 10.4.2 273
10.4.3 Ideas generales de implementación p >
10.5 Compresión de cookies 278
10.6 Problema de envío repetido de formularios 280
10.7 Resumen 281
Capítulo 11 Arquitectura del sistema Tomcat y patrón de diseño 282 p>
11.1 Diseño general de Tomcat 282
11.1.1 Estructura general de Tomcat 283
11.1.2 Componente conector 289
11.1.3 Contenedor de servlets294
11.1.4 Otros componentes en Tomcat 305
11.2 Patrones de diseño en Tomcat 305
11.2.1 Patrón de diseño de fachada 305
11.2 .2 Patrón de diseño de observador 307
11.2.3 Patrón de diseño de comando 309
11.2.4 Patrón de diseño de cadena de responsabilidad 310
11.3 Resumen 312
Capítulo 12 Análisis del Principio de Funcionamiento del Muelle 313
12.1 Estructura Básica del Muelle 313
12.1.1 Introducción a la Estructura Básica del Muelle 313
12.1.2 Arquitectura del procesador 315
12.2 Proceso de inicio del muelle 316
12.3 Aceptación de solicitudes 317
12.3.1 Trabajo basado en protocolo HTTP 317.
12.3.2 Trabajando basado en AJP 319
12.3.3 Trabajando basado en modo NIO 322
12.4 Procesando solicitudes 323
12.5 e integración de Jboss 326
Comparación entre 12.6 y Tomcat 327
12.6.1 Comparación de arquitectura 327
12.6.2 Comparación de rendimiento
12.6 3 Comparación de características 328
12.7 Resumen 329
Capítulo 13 Concepto de diseño y análisis de patrones de diseño de Spring Framework 330
13.1 Spring Skeleton 330
13.1.1 Concepto de diseño de Spring 31
Cómo funcionan juntos los componentes centrales 332
13.2 Descripción detallada de los componentes centrales 333
13.2.1 Componente Bean 333
13.2.2 Componente de contexto 335
Componente principal 336
¿Funciona el contenedor IOC?
13.3 Spring 348 Descripción detallada de las características de AOP en
13.3.1 Principio de implementación del proxy dinámico 56636.666666666667
13. 2 ¿Cómo implementar 351 en Spring AOP?
13.4 Patrón de proxy de análisis de patrón de diseño 354
13.4.1 Principio del patrón de proxy 354
13.4.2 Implementación del patrón de proxy en Spring 354
13.5 Patrón de estrategia de análisis de patrones de diseño 357
13.5.1 Principios del patrón de estrategia 357
13.5.2 Implementación del patrón de políticas de primavera 358
13.6 Resumen 358
p>Capítulo 14 Mecanismo de trabajo de Spring MVC y patrón de diseño 360
14.1 Diseño general de Spring MVC 360
14.2 Diseño de control 365
1 Procesamiento Inicialización del mapeo del programa 366
14.2.2 Inicialización del adaptador del controlador 368
14.2.3 Llamada a la lógica de control 369
14.3 Diseño del modelo de automóvil 370 p>
14.4 Ver diseño 371
Algunas ideas sobre el diseño del marco 14.5 46636.88868686661
¿Por qué 14.5.1 necesita el marco 373?
Qué tipo de marco se necesita
14.5.3 Principios de diseño del marco 374
14.5.4 "Luz de navegación" 374
El Principios más básicos
14.6 Patrón de plantilla de análisis de patrón de diseño 375
14.6.1 Estructura del patrón de plantilla 375
14. 2 Patrón de plantilla en Spring MVC 376. Ejemplo
14.7 Resumen 377
El Capítulo 15 proporciona un análisis en profundidad de la arquitectura del sistema y los principios de mapeo del marco Ibatis.
15.1 Jerarquía de clases principal de Ibatis frame 378
15.2 Estrategia de diseño de Ibatis frame 379
15.3 Principio de funcionamiento de Ibatis frame381
15.4 Ejemplo 383
15.5 Ibatis analizando la declaración SQL 385
15.6 Asignación de campos de base de datos a objetos Java 386
15.7 Resultados de la ejecución del ejemplo 388
Patrón del método de fábrica 388 de 15.8 Análisis del patrón de diseño
15.8.1 Principio de implementación del patrón del método de fábrica 388
15. 2 Ejemplo del patrón del método de fábrica en ibatis 389
<. p>15.9 Análisis de patrones de diseño Patrón de fábrica 39015.9.1 Principio del patrón de fábrica 390
15. 2 Ejemplos de patrones de fábrica en ibatis 391
15.10 Resumen 392
Capítulo 16 Principio de funcionamiento del análisis de velocidad 394
16.1 Arquitectura de velocidad general 395
16.2 Análisis del proceso de renderizado JJTree 398
16.2.1 #set sintaxis 402
16.2.2 Llamada al método de velocidad 403
16.2.3 #if, #elseif y #else sintaxis 406
16.2.4 Sintaxis #foreach 407
16 2 5 #Sintaxis de análisis 409
16.3 Mecanismo de procesamiento de eventos 410
16.4 Técnicas de optimización comunes 413<. /p >
Reducir el número total de nodos en el árbol en 413.
16.4.2 Reducir el número de nodos que requieren tiempo de renderizado en 413.
Comparación de 16.5 y JSP 414
16.5.1 Mecanismo de renderizado JSP 14
16.5.2 Velocidad y JSP 420
16.6 Diseño Análisis de patrones Patrón de síntesis 420
16.6.1 Estructura del patrón compuesto 420
16 6 2 Implementación del patrón de síntesis en velocidad 421
16.7 Utilizado. para Diseño Patrón de Intérprete 422 para Análisis de Patrones
16.7.1 Estructura del Patrón de Intérprete 422
16.7.2 Implementación del Patrón de Intérprete en Velocidad 423
16.8 Resumen 423
Capítulo 17 Ejercicio de optimización de velocidad 424
17.1 Problemas de la vida real 424
17.2 Bases teóricas de la optimización 56636.88868686661
17.2 1 Estructura triangular del lenguaje de programación 56636.66866686669
17.2.2 La estructura de datos simplifica la abstracción 426
Los programas simples son complejos 426
17.2.4 Reducir los costos de traducción.
17.2.5 se vuelve invariante 427
Implementación de un motor de plantillas eficiente 56438+07.3 566666687
Cómo compilar la plantilla 17.3.1 vm 429
p>17.3.2 Optimización no reflexiva de la llamada al método 436
17.3.3 Cambio de salida de caracteres a salida de bytes 439
17.4 Resultados de la optimización 440
17.4.1 caracteres se convierten a bytes 440.
17.4.2 Ejecución no reflexiva 441
17.5 Otros métodos de optimización 442
17.6 Resumen 442