Partage de technologie

Principe, structure, modèle de conception de Tomcat

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1 Quoi

Un serveur Web qui exécute le servlet Java et la technologie jsp peut fournir un environnement d'exécution pour Java Web et gérer les demandes des clients via le protocole http. C'est Tomcat = serveur http + conteneur de servlet. Les produits similaires incluent la jetée

  • application Web : Les applications Web font référence aux applications accessibles via un navigateur Web, qui utilisent des technologies et des normes Web (telles que HTTP, HTML, CSS, JavaScript, etc.) pour fournir des interfaces utilisateur et interagir avec les utilisateurs. Les applications Web peuvent inclure des composants front-end et back-end. Le front-end est responsable de l'interface utilisateur et de la présentation, et le back-end est responsable de la logique métier et du traitement des données.
  • Servlet : Le servlet fait partie de la spécification Java EE. Il s'agit d'un programme Java exécuté côté serveur. Il est utilisé pour recevoir des requêtes de clients (tels que des navigateurs Web), traiter ces requêtes (y compris accéder aux bases de données, appeler la logique métier, etc. ) et retournez Répondre au client. Servlet est l'une des technologies de base pour créer du contenu Web dynamique

2Structure

connecteur connecteur+conteneur

Les conteneurs sont le moteur, l'hôte, le contexte, le servlet/wrapper

L'architecture est donc le service (port 8080), le connecteur, le moteur, l'hôte (http:localhost.com), le contexte (/mvc, une application Web), le servlet/wrapper (/add, un servlet)

f090bd57045f4088948e1e7da63585ca.png

 

3 composants clés

Connecteur 3.1

3.1.1 Point final

Utilisé pour : communication de couche réseau TCP/IP, telle que NIONIO2

3.1.2 Processeur

Utilisé pour : l'analyse du protocole de la couche application, tel que http

3.1.3 Adaptateur

Utilisé pour : conversion unifiée. La requête/réponse Tomcat est convertie en requête/réponse de servlet, puis transmise au conteneur conteneur.

  • La requête de servlet est une interface clé de l'API Java Servlet.
  • L'API Java Servlet est un ensemble d'interfaces et de classes en Java EE (maintenant connu sous le nom de Jakarta EE) permettant de développer des applications Java côté serveur. Servlet est l'un des trois composants majeurs de JavaWeb (Servlet, Filter, Listener). Il est principalement utilisé pour traiter les requêtes des clients et générer des réponses.

3.2 Modèles de conception

3.2.1 Idées de conception de points changeants et de points constants

Les points invariants sont implémentés avec des classes et des interfaces abstraites (telles que ProtocolHanlder, AbstractProtocol), et les points de changement sont implémentés avec des classes concrètes (telles que Http11NioProtocol, Http11Nio2Protocol).

47fd583736914b5e9911f0e38c739565.png

27e141a1618a4d7b8977cd9fc5a4f24a.png

f646124c6f57416c8648621ea75dbfa3.png

2357e1b0231e4de2b32e8c70f79b00b6.png

6fc9747fa2b14a649d16a3e70e00650d.png

d81414cef6f5481a87660f58599c0e96.png

3.2.2 Mode adaptateur

Adaptateur, Tomcat ou CoyoteAdapter.


Conteneur 3.2

3.2.1 Comment gérer le moteur, l'hôte, le contexte et le servlet, et utiliser le mode combinaison pour les laisser tous implémenter Container

  • Le modèle composite est un modèle de conception structurelle qui vous permet de combiner des objets dans une structure arborescente pour représenter une hiérarchie « partie-tout ». Dans ce mode, l'utilisation par le client d'objets uniques et d'objets composites est cohérente, c'est-à-dire que le client peut gérer les objets uniques et leurs combinaisons de la même manière.

Pour parler franchement, une classe/interface est utilisée pour assembler une structure arborescente (avec une relation parent-enfant). Il s'agit d'une combinaison, et comme elles implémentent toutes la même interface, les appels à chaque partie sont les mêmes.Comme indiqué ci-dessous

d785e0ea64ad4fb6952f9460fcbef154.png

3.2.2 Le moteur, l'hôte, le contexte et le servlet sont appelés séquentiellement, en utilisant le modèle de chaîne de responsabilité Pipeline-Valve.

Le pipeline est une chaîne de responsabilité et une file d'attente, et les éléments de la file d'attente sont des vannes. La vanne peut exécuter la logique de traitement et la transférer à la valeur suivante.

La différence entre la valve et le filtre : la valve vient de Tomcat, le filtre provient de l'API du servlet Java. La valve fonctionne au niveau du conteneur Web et intercepte toutes les demandes d'application. Le filtre fonctionne au niveau de l'application et intercepte une certaine demande d'application Web.

08b1200a4585496e98a08c964952573a.png

3635bb9b0a7c46a1997621631c00212c.png

acb7a18568bd41c1b4ded295aeee2060.png

d28296d8ebba41d5acc6c209df8c0538.png

3.2.3 Cycle de vie de la gestion moteur et demandes d'allocation

Demande d'allocation : composant mappeur de cartographie. Recherchez le wrapper correspondant couche par couche en fonction de l'URL.

Cycle de vie : Responsable de la création, de l'initialisation, du démarrage, de la destruction des conteneurs, etc. Chaque conteneur hérite de LifeCycle. C'est donc aussi un mode combiné.

Le modèle d'observateur est également utilisé (surveillance des changements dans l'état du cycle de vie),

Mode combinaison (la structure arborescente a une relation parent-enfant),

Modèle de conception de modèle (écrire des modèles universels (logique générale), appeler de nouvelles méthodes dans le modèle et implémenter les nouvelles méthodes de manière concrète)

 

4 Conception architecturale

  1. Liste des besoins
  2. Cours de conception orientée objet
  3. Trouver les points changeants et inchangés de la demande
  4. Les points de changement sont implémentés avec des classes abstraites et les points invariants sont implémentés avec des classes concrètes.