Red de conocimiento informático - Conocimiento sistemático - Catálogo de libros que analiza en profundidad la historia interna de la tecnología web Java

Catálogo de libros que analiza en profundidad la historia interna de la tecnología web Java

Capítulo 1 Proceso de solicitud de la Deep Web 1

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

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

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

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

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

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

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

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 390

15.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