• Aide
  • Eurêkoi Eurêkoi

Livre

Jakarta EE : développez des applications web en Java

Résumé

Guide suivant les différentes étapes de réalisation d'une application web : l'analyse, la modélisation, le codage, la mise en production, les tests et la maintenance. Version en ligne offerte.


  • Éditeur(s)
  • Date
    • C 2022
  • Notes
    • Précédemment paru sous le titre : Java EE : développez des applications web en Java
    • La couv. porte en plus : "En téléchargement : code source des exemples" ; "Informatique technique" ; "Version en ligne offerte ! pendant 1 an"
    • La 4e de couv. indique : "Sur www.editions-eni.fr : le code source de tous les exemples du livre"
    • Contient un "flashcode" permettant d'accedéer à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (616 p.) : ill. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-03623-1
  • Indice
  • Quatrième de couverture
    • Jakarta EE

      Développez des applications web en Java

      Ce livre s'adresse aux développeurs souhaitant monter en compétences sur le développement d'applications web, côté serveur, avec les technologies essentielles de Jakarta EE. Des connaissances sur le langage Java sont un prérequis nécessaire à la bonne compréhension du livre.

      Tout au long des chapitres, l'auteur aide le lecteur à mettre en place des projets au travers de l'IDE Eclipse lui permettant d'explorer le fonctionnement des technologies décrites.

      Le premier chapitre présente Jakarta EE, le protocole HTTP et l'environnement de développement utilisé (Java, Eclipse, Tomcat et MySQL). Les deux chapitres suivants présentent en détail les fondamentaux du développement web avec les servlets et les JSP ainsi que les technologies suivantes : les filtres, les événements, les sessions, les cookies, TEL et les balises JSTL. Le quatrième chapitre traite de la persistance des données, un élément incontournable pour créer une application. La première partie de ce chapitre détaille l'utilisation de TAPI JDBC et la seconde partie montre la puissance d'un ORM en présentant la spécification JPA. À l'issue de ces quatre premiers chapitres, le lecteur est capable de créer ses premières applications web en Java.

      Pour aller encore plus loin dans la connaissance et la maîtrise des technologies Java liées au développement web, le cinquième chapitre présente la notion de Framework qui permet d'architecturer les applications et d'industrialiser le développement. À ce titre, les bases du Framework JSF sont présentées. Les deux chapitres suivants sont dédiés à la mise en oeuvre de technologies complémentaires : les Services Web REST et les WebSockets. Enfin, le dernier chapitre s'attarde sur le déploiement d'une application sur Tomcat en traitant des sujets incontournables que sont la sécurité (l'authentification, l'autorisation, HTTPS) et la journalisation. Un focus est aussi réalisé sur la mise en place du HTTP/2.


  • Tables des matières
      • Jakarta EE

      • Développez des applications web en Java

      • Editions ENI

      • Avant-propos
      • Chapitre 1
      • Introduction à Jakarta EE
      • 1. Introduction17
      • 2. L'écosystème Java18
      • 3. La plateforme Java SE19
      • 3.1 Introduction19
      • 3.2 Les différentes implémentations de la plateforme21
      • 3.3 Installation du JDK sur Windows22
      • 3.3.1 Installation de la plateforme OpenJDK22
      • 3.3.2 Installation de la plateforme Oracle JDK22
      • 3.3.3 Configuration des variables d'environnement23
      • 3.3.4 Tester le bon fonctionnement24
      • 3.4 Installation du JDK sur Linux25
      • 3.4.1 Installation de la plateforme OpenJDK25
      • 3.4.2 Installation de la plateforme Oracle JDK25
      • 3.4.3 Configuration de la variable JAVA_HOME27
      • 3.4.4 Tester le bon fonctionnement28
      • 4. La plateforme Jakarta EE28
      • 4.1 Introduction28
      • 4.2 Le processus d'évolution de la plateforme30
      • 4.3 Les serveurs d'applications30
      • 4.3.1 La notion de conteneur30
      • 4.3.2 Différents serveurs d'applications31
      • 4.4 Les spécifications Jakarta EE32
      • 4.5 La répartition des spécifications33
      • 5. Le protocole HTTP34
      • 5.1 Introduction34
      • 5.2 Les URI37
      • 5.3 La requête38
      • 5.3.1 La structure38
      • 5.3.2 Les types de requêtes39
      • 5.3.3 Les attributs de requêtes40
      • 5.4 La réponse42
      • 5.4.1 La structure42
      • 5.4.2 Les codes de statut43
      • 5.4.3 Les attributs de réponses45
      • 5.5 La gestion du cache45
      • 5.6 La gestion de l'authentification47
      • 5.7 Les types de médias48
      • 6. L'environnement de développement49
      • 6.1 Tomcat49
      • 6.1.1 Téléchargement49
      • 6.1.2 Installation sur Windows50
      • 6.1.3 Installation sur Linux51
      • 6.2 MySQL53
      • 6.2.1 Téléchargement53
      • 6.2.2 Installation sur Windows53
      • 6.2.3 Installation sur Linux62
      • 6.3 Eclipse63
      • 6.3.1 Téléchargement et installation63
      • 6.3.2 Premier démarrage64
      • 6.3.3 Configuration65
      • 6.3.4 Création d'un projet d'application web70
      • 6.3.5 Déploiement et exécution d'une application web75
      • 6.4 Gradle77
      • 6.4.1 Présentation77
      • 6.4.2 La gestion des dépendances78
      • 7. Les exemples du livre81
      • 7.1 Introduction81
      • 7.2 Description fonctionnelle81
      • 7.3 Le diagramme de classes d'analyses82
      • 7.4 La base de données83
      • 8. Conclusion84
      • Chapitre 2
      • Les servlets
      • 1. Introduction85
      • 2. La structure d'une application web86
      • 2.1 Présentation86
      • 2.2 La structure logique d'une application web86
      • 2.3 La structure physique d'une application web87
      • 2.3.1 Présentation87
      • 2.3.2 Le paramétrage90
      • 3. Le projet92
      • 4. Les servlets93
      • 4.1 Qu'est-ce qu'une servlet ?93
      • 4.2 Le cycle de vie d'une servlet94
      • 4.3 La première servlet95
      • 4.3.1 La création de la servlet95
      • 4.3.2 La déclaration d'une servlet99
      • 4.3.3 Les paramètres d'initialisation d'une servlet101
      • 4.3.4 La mise en évidence du cycle de vie d'une servlet102
      • 4.4 La classe HttpServlet104
      • 4.5 Les différents contextes105
      • 4.5.1 Le contexte d'application105
      • 4.5.2 Le contexte de session106
      • 4.5.3 Le contexte de requête106
      • 4.6 La lecture de la requête106
      • 4.6.1 Lecture des informations de l'URL106
      • 4.6.2 Lecture de l'en-tête de la requête107
      • 4.6.3 Lecture des paramètres109
      • 4.7 La création de la réponse114
      • 4.7.1 Ecriture de l'en-tête de la réponse115
      • 4.7.2 Écriture du corps de la réponse117
      • 4.7.3 La gestion de l'envoi de la réponse117
      • 4.7.4 Premier exemple de mise en oeuvre118
      • 4.7.5 Déléguer la création de la réponse120
      • 4.7.6 Second exemple de mise en oeuvre123
      • 4.7.7 La redirection126
      • 4.7.8 La gestion des erreurs128
      • 4.8 Les servlets asynchrones129
      • 5. Le suivi de l'activité de l'utilisateur133
      • 5.1 Présentation133
      • 5.2 Les cookies134
      • 5.2.1 Présentation134
      • 5.2.2 La création d'un cookie135
      • 5.2.3 La lecture d'un cookie137
      • 5.3 La session138
      • 5.3.1 Présentation138
      • 5.3.2 Le suivi de session139
      • 5.3.3 La création d'une session141
      • 5.3.4 L'utilisation d'une session142
      • 5.3.5 La liaison d'attributs145
      • 6. Les filtres145
      • 6.1 Présentation145
      • 6.2 Mise en oeuvre146
      • 6.2.1 La création d'un filtre146
      • 6.2.2 La déclaration du filtre151
      • 6.2.3 L'utilisation d'un filtre153
      • 7. Les événements155
      • 7.1 Présentation155
      • 7.2 Le paramétrage des classes155
      • 7.3 Les événements liés au contexte d'application156
      • 7.4 Les événements liés au contexte de session157
      • 7.5 Les événements liés au contexte de requête158
      • 8. La sécurité160
      • 9. Conclusion160
      • Chapitre 3
      • La présentation avec les JSP
      • 1. Introduction161
      • 2. Le projet162
      • 2.1 La création du projet162
      • 2.2 La création d'une JSP163
      • 3. Le principe d'exécution166
      • 4. Le paramétrage d'une JSP170
      • 5. Les directives172
      • 5.1 Présentation172
      • 5.2 La directive page173
      • 5.2.1 Présentation173
      • 5.2.2 Les attributs de la directive173
      • 5.2.3 Un exemple de mise en oeuvre174
      • 5.3 La directive taglib175
      • 5.3.1 Présentation175
      • 5.3.2 Les attributs de la directive175
      • 5.3.3 Un exemple de mise en oeuvre175
      • 5.4 La directive include176
      • 5.4.1 Présentation176
      • 5.4.2 Les attributs de la directive176
      • 5.4.3 Un exemple de mise en oeuvre176
      • 6. Les éléments de script178
      • 6.1 Présentation178
      • 6.2 Les déclarations179
      • 6.2.1 Présentation179
      • 6.2.2 Un exemple de mise en oeuvre179
      • 6.3 Les scriptlets180
      • 6.3.1 Présentation180
      • 6.3.2 Un exemple de mise en oeuvre181
      • 6.4 Les expressions183
      • 6.4.1 Présentation183
      • 6.4.2 Un exemple de mise en oeuvre183
      • 6.5 Les commentaires183
      • 6.6 L'EL (Expression Language)184
      • 7. Les objets disponibles dans une JSP184
      • 7.1 Présentation184
      • 7.2 Un exemple de mise en oeuvre186
      • 8. La gestion des erreurs188
      • 8.1 Présentation188
      • 8.2 Les erreurs à la transformation188
      • 8.3 Les erreurs à l'exécution190
      • 8.4 L'utilisation de l'instruction try/catch191
      • 8.5 L'utilisation des pages d'erreur JSP191
      • 8.6 L'utilisation des pages d'erreur globales193
      • 9. L'utilisation de fragments194
      • 9.1 Présentation194
      • 9.2 L'inclusion statique194
      • 9.3 L'inclusion dynamique194
      • 9.4 Un exemple d'inclusion195
      • 9.5 Une inclusion variable197
      • 10. Les actions standards197
      • 10.1 Présentation197
      • 10.2 Qu'est-ce qu'un JavaBean ?198
      • 10.3 <jsp:useBean>199
      • 10.3.1 Présentation199
      • 10.3.2 Exemple200
      • 10.4 <jsp:setProperty>201
      • 10.4.1 Présentation201
      • 10.4.2 Exemple202
      • 10.5 <jsp:getProperty>203
      • 10.5.1 Présentation203
      • 10.5.2 Exemple203
      • 10.6 <jsp:include>203
      • 10.7 <jsp:forward>203
      • 10.8 <jsp:param>204
      • 11. L'EL (Expression Language)205
      • 11.1 Présentation205
      • 11.2 La syntaxe205
      • 11.3 Les objets disponibles206
      • 11.4 La recherche dans les différents contextes209
      • 11.5 Les opérateurs209
      • 11.5.1 Les opérateurs arithmétiques209
      • 11.5.2 L'opérateur de concaténation des chaînes de caractères210
      • 11.5.3 Les opérateurs de comparaison210
      • 11.5.4 Les opérateurs logiques210
      • 11.5.5 L'opérateur empty211
      • 11.5.6 L'opérateur conditionnel211
      • 11.5.7 L'opérateur d'assignation211
      • 11.5.8 L'opérateur point-virgule211
      • 11.5.9 Les parenthèses212
      • 11.5.10 La précédence des opérateurs212
      • 11.6 La manipulation des énumérés212
      • 11.7 La manipulation des variables et méthodes statiques213
      • 11.8 La manipulation des collections213
      • 11.8.1 La création213
      • 11.8.2 L'exploitation214
      • 11.9 La gestion des erreurs218
      • 12. Les balises JSTL220
      • 12.1 Présentation220
      • 12.2 Les modifications du projet222
      • 12.3 L'utilisation d'une librairie dans une JSP222
      • 12.4 La librairie de base (core)222
      • 12.4.1 <c:out>223
      • 12.4.2 <c:set>223
      • 12.4.3 <c:remove>224
      • 12.4.4 <c:catch>224
      • 12.4.5 <c:if>224
      • 12.4.6 <c:choose>, <c:when>, <c:otherwise>224
      • 12.4.7 <c:forEach>225
      • 12.4.8 <c:forTokens>226
      • 12.4.9 <c:import>227
      • 12.4.10 <c:url>227
      • 12.4.11 <c:redirect>228
      • 12.4.12 <c:param>228
      • 12.5 La librairie d'internationalisation et de formatage (fmt)228
      • 12.5.1 Les principes228
      • 12.5.2 La définition de la Locale231
      • 12.5.3 Le chargement des ressources231
      • 12.5.4 L'affichage des messages233
      • 12.5.5 Un exemple de mise en oeuvre234
      • 12.5.6 <fmt:timeZone> et <fmt:setTimeZone>236
      • 12.5.7 <fmt:formatDate> et <fmt:parseDate>237
      • 12.5.8 <fmt:formatNumber> et <fmt:parseNumber>239
      • 12.6 La librairie de fonctions (fn)241
      • 12.6.1 fn:contains242
      • 12.6.2 fn:containsIgnoreCase242
      • 12.6.3 fn:endsWith242
      • 12.6.4 fn:xscapeXml242
      • 12.6.5 fn:indexOf242
      • 12.6.6 fn:join243
      • 12.6.7 fn:length243
      • 12.6.8 fn:replace243
      • 12.6.9 fn:split243
      • 12.6.10 fn:startsWith243
      • 12.6.11 fn:substring244
      • 12.6.12 fn:substringAfter244
      • 12.6.13 fn:substringBefore244
      • 12.6. 4 fn:toLowerCase244
      • 12.6.15 fn:toUpperCase245
      • 12.6.16 fn:trim245
      • 13. Les balises personnalisées245
      • 13.1 Présentation245
      • 13.2 La création d'une balise personnalisée246
      • 13.3 L'utilisation d'une balise personnalisée248
      • 13.4 L'envoi d'informations à une balise personnalisée248
      • 13.5 La récupération d'informations d'une balise personnalisée250
      • 14. Conclusion253
      • Chapitre 4
      • La persistance des données avec JDBC et JPA
      • 1. Introduction255
      • 2. La spécification JDBC256
      • 2.1 Description256
      • 2.2 Les différents types de pilotes256
      • 2.3 L'API JDBC257
      • 2.4 Le projet259
      • 2.4.1 La création du projet259
      • 2.4.2 Le référencement du pilote JDBC260
      • 2.5 La connexion260
      • 2.5.1 Introduction260
      • 2.5.2 La première connexion260
      • 2.5.3 La mise en place d'un pool de connexion266
      • 2.5.4 Compléments sur l'interface Connection270
      • 2.6 L'exploitation des données272
      • 2.6.1 L'interface Statement272
      • 2.6.2 L'interface PreparedStatement278
      • 2.6.3 L'interface CallableStatement283
      • 2.6.4 L'utilisation du ResultSet284
      • 2.6.5 La gestion des exceptions290
      • 2.7 La gestion des transactions293
      • 2.8 Conclusion295
      • 3. La spécification JPA295
      • 3.1 Description295
      • 3.2 Les principales implémentations295
      • 3.3 L'API JPA296
      • 3.3.1 Les entités296
      • 3.3.2 Le gestionnaire d'entités297
      • 3.3.3 Les transactions299
      • 3.4 Le projet299
      • 3.5 La connexion302
      • 3.5.1 Le fichier persistence.xml302
      • 3.5.2 L'EntityManager et l'EntityManagerFactory306
      • 3.6 Le mappage309
      • 3.6.1 Le contexte309
      • 3.6.2 Les annotations indispensables:@Entity et @Id310
      • 3.6.3 La gestion des tables:@Table, @SecondaryTable311
      • 3.6.4 La gestion des variables membres:@Column, @Basic, @Transient314
      • 3.6.5 La gestion avancée des variables membres316
      • 3.6.6 La gestion de l'héritage318
      • 3.6.7 La gestion des clés primaires simples:@Id, @GeneratedValue320
      • 3.6.8 La gestion des clés primaires composites avec @IdClass321
      • 3.6.9 La gestion des clés primaires composites avec @EmbeddedId, @Embeddable et @MapsId326
      • 3.6.10 La gestion des relations 1:1328
      • 3.6.11 La gestion des relations 1:n333
      • 3.6.12 La gestion des relations n:m338
      • 3.6.13 Les annotations @JoinColumn et @JoinTable340
      • 3.6.14 La gestion des collections341
      • 3.6.15 La gestion des Map342
      • 3.7 L'exploitation des données342
      • 3.7.1 Les méthodes de l'EntityManager342
      • 3.7.2 L'utilisation des transactions344
      • 3.7.3 L'enregistrement d'une entité345
      • 3.7.4 La recherche d'une entité par son identité347
      • 3.7.5 La modification d'une entité348
      • 3.7.6 La suppression d'une entité350
      • 3.7.7 Les traitements complexes351
      • 3.7.8 Le chargement différé356
      • 3.7.9 Le tri360
      • 3.7.10 La manipulation d'une entité détachée360
      • 3.7.11 La validation des données363
      • 3.8 Le JPQL363
      • 3.8.1 Présentation363
      • 3.8.2 L'exécution d'une requête JPQL364
      • 3.8.3 Les requêtes simples365
      • 3.8.4 Les requêtes avec restrictions366
      • 3.8.5 Les requêtes imbriquées367
      • 3.8.6 Les requêtes paramétrées367
      • 3.8.7 Les requêtes avec jointure368
      • 3.8.8 Les calculs d'agrégats369
      • 3.8.9 Les requêtes nommées370
      • 3.8.10 Les fonctions disponibles370
      • 3.8.11 L'exploitation du résultat372
      • 3.9 L'API Criteria374
      • 3.10 JPA et l'injection de dépendances376
      • 3.10.1 Présentation376
      • 3.10.2 L'implémentation376
      • 3.10.3 La mise en place376
      • 4. Conclusion383
      • Chapitre 5
      • Le framework de présentation JSF
      • 1. Présentation générale385
      • 2. Présentation de JSF386
      • 2.1 Généralités386
      • 2.2 Principes de fonctionnement386
      • 2.3 Le projet388
      • 3. Le paramétrage général390
      • 3.1 Le fichier faces-config.xml390
      • 3.2 Le fichier beans.xml390
      • 3.3 Le fichier web.xml391
      • 4. L'exemple392
      • 5. Les managedBeans393
      • 5.1 Présentation393
      • 5.2 Mise en oeuvre393
      • 6. Les facelets396
      • 6.1 Les librairies396
      • 6.2 L'EL (Expression Language)400
      • 6.3 Mise en oeuvre400
      • 7. Les conversions406
      • 8. Les validations410
      • 8.1 La validation dans la facelet411
      • 8.2 La validation dans un validateur413
      • 8.3 La validation avec la spécification Bean Validation415
      • 9. L'internationalisation418
      • 9.1 La création des fichiers .properties418
      • 9.2 La déclaration dans le fichier faces-config.xml419
      • 9.3 La modification des facelets419
      • 9.4 L'internationalisation des validateurs423
      • 9.5 Bean Validation et l'internationalisation424
      • 9.6 L'utilisation des messages paramétrés425
      • 10. Conclusion426
      • Chapitre 6
      • Les services web REST
      • 1. Introduction427
      • 2. Présentation des services web REST428
      • 2.1 Les principes428
      • 2.2 Les caractéristiques429
      • 2.3 Vers les services web REST430
      • 2.4 Les limitations430
      • 3. La mise en place de l'environnement de développement431
      • 3.1 Le choix d'une implémentation431
      • 3.2 La mise en place du projet et des dépendances431
      • 4. La spécification JAX-RS433
      • 4.1 Introduction433
      • 4.2 Le fonctionnement général433
      • 5. La configuration de l'application436
      • 6. L'exposition des ressources437
      • 6.1 Présentation437
      • 6.2 La classe ressource et ses méthodes437
      • 6.3 L'extraction et l'injection d'informations438
      • 6.4 Les types de retours des méthodes ressources447
      • 7. La validation des données451
      • 7.1 Les annotations451
      • 7.2 Le paramétrage des implémentations JAX-RS452
      • 7.3 La validation des informations élémentaires452
      • 7.4 La validation des entités454
      • 8. Les providers455
      • 8.1 Présentation455
      • 8.2 Les entity providers455
      • 8.3 Les exceptions providers470
      • 9. Les filtres et les intercepteurs472
      • 9.1 Les filtres472
      • 9.2 Les intercepteurs476
      • 10. Complément sur le déploiement479
      • 11. L'API cliente480
      • 11.1 Introduction480
      • 11.2 Le fonctionnement général481
      • 11.3 La mise en place du projet et des dépendances482
      • 11.4 La mise en oeuvre482
      • 12. Le côté client en JavaScript490
      • 12.1 Introduction490
      • 12.2 La mise en place du projet491
      • 12.3 Une requête GET retournant un contenu JSON493
      • 12.4 Une requête POST envoyant un contenu JSON495
      • 13. Conclusion497
      • Chapitre 7
      • Introduction aux WebSockets
      • 1. Introduction499
      • 2. Le fonctionnement500
      • 2.1 Les étapes de la communication500
      • 2.2 L'établissement de la communication500
      • 3. La spécification WebSocket502
      • 4. L'exemple502
      • 5. Le côté serveur503
      • 5.1 La mise en place de l'environnement de développement503
      • 5.2 Le développement par annotations504
      • 5.3 La session506
      • 5.4 Les encodeurs et les décodeurs507
      • 6. Le côté serveur de l'exemple510
      • 7. Le côté client en Java512
      • 7.1 Introduction512
      • 7.2 La mise en place de l'environnement de développement512
      • 7.3 Le développement par annotations513
      • 7.4 La mise en place de la communication514
      • 8. Le côté client en JavaScript515
      • 8.1 Introduction515
      • 8.2 L'interface WebSocket516
      • 8.3 Le côté client de l'exemple516
      • 9. Conclusion518
      • Chapitre 8
      • Déploiement d'applications sur Tomcat
      • 1. Introduction519
      • 2. L'installation de l'environnement519
      • 2.1 L'installation de Java519
      • 2.2 L'installation de Tomcat520
      • 2.2.1 La vérification préalable520
      • 2.2.2 Le téléchargement de Tomcat521
      • 2.2.3 L'installation à partir d'une archive522
      • 2.2.4 L'installation à partir d'un installeur sur un environnement Windows524
      • 2.2.5 La vérification du bon fonctionnement531
      • 3. L'architecture531
      • 3.1 L'organisation physique531
      • 3.2 L'organisation logique533
      • 4. L'administration générale534
      • 4.1 L'application à déployer534
      • 4.1.1 Le projet534
      • 4.1.2 La livraison536
      • 4.1.3 La gestion du nom de domaine536
      • 4.2 Vue d'ensemble537
      • 4.3 Le fichier server.xml537
      • 4.3.1 La structure générale537
      • 4.3.2 La balise <Server>538
      • 4.3.3 La balise <Service>539
      • 4.3.4 La balise <Connector>539
      • 4.3.5 La balise <Executor>542
      • 4.3.6 La balise <Engine>543
      • 4.3.7 La balise <Host >544
      • 4.3.8 La balise <Alias>547
      • 4.3.9 La balise < Context>547
      • 4.3.10 La balise <Valve>550
      • 4.3.11 Les balises <Resource> et <ResourceLink>552
      • 5. La mise en place de la sécurité553
      • 5.1 La restriction d'accès554
      • 5.1.1 La restriction sur l'adresse IP de l'émetteur554
      • 5.1.2 La restriction sur l'adresse IP du serveur556
      • 5.2 L'authentification et l'autorisation556
      • 5.2.1 Présentation556
      • 5.2.2 Les ressources à protéger557
      • 5.2.3 Les autorisations559
      • 5.2.4 Le schéma d'authentification560
      • 5.2.5 La base de comptes563
      • 5.3 Le chiffrement568
      • 5.3.1 La théorie568
      • 5.3.2 La mise en oeuvre569
      • 5.4 L'utilisation du HTTP/2576
      • 5.4.1 Introduction576
      • 5.4.2 Mise en oeuvre576
      • 5.4.3 Focus sur le push577
      • 6. La gestion des logs581
      • 6.1 Les logs d'accès581
      • 6.2 Les logs de l'activité logicielle584
      • 6.2.1 Le mécanisme585
      • 6.2.2 Le paramétrage585
      • 7. Conclusion592
      • Index 593

  • Origine de la notice:
    • BPI
  • Disponible - 681.225 RIC

    Niveau 3 - Informatique