JEE - Spring - Spring Boot 2 Flashcards

1
Q

C’est quoi le pattern MVC JEE ?

A

*Après que le client envoie une requête HTTP de type GET ou POST, la Servlet qui joue le rôle d’un controller traite la requête en utilisant l’objet request de type HttpServletRequest
*Le controller envoie la requête à la couche métier qui effectue des traitements et extrait les données à partir de la couche DAO. qui envoie ensuite une réponse R au controller,
*Le controller stocke R dans l’objet Model ( le controller stocke le Model dans l’objet request ou session) ,
*Le controller appelle la Vue JSP en lui transmettant les mêmes objets request et response (cette opération s’appelle Forwarding)
*La Vue JSP récupère le résultat à partir du Model
*La Vue JSP génère dynamiquement du HTML qui contient les résultats du Model en utilisant l’objet response et l’envoie au controller
*Le controller envoie la réponse au client dans le corps de la réponse HTTP
*Le Browser Web affiche le rendu de la page HTML reçu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

C’est quoi Serveur d’application ?

A

Serveur d’application = conteneur web (le serveur Tomcat)+Framework qui effectue IoC ( Spring )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quelle est la relation entre Hibernate et JPA ?

A

Hibernate est l’implémentation de JPA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quelle est la différence entre l’approche coté serveur et client ?

A

*Dans l’approche coté serveur : le controller reçoit une requête HTTP à partir du client , il fait appelle à la couche métier qui effectue des traitements et appelle la couche DAO pour extraire les données. A la fin le serveur renvoie du HTML au client.
*Dans l’approche coté client : après que le client renvoie une requête HTTP au serveur , le serveur renvoie une réponse au format JSON ( non pas HTML ) qui est traitée au niveau du client par un Framework ( React , Angular … ) et converti en HTML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

C’est quoi un moteur du template ?

A

Le moteur du Template (Framework) permet de générer du HTML coté serveur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

C’est quoi un conteneur Web dans JEE ?

A

Un conteneur Web est un moteur de Servlet (Tomcat,Jetty,Netty,JBoss,Wildfly…) qui permet de gérer le cycle de vie des composants JEE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quel est l’intermediaire entre un Client HTTP et une Servlet ?

A

le Serveur Tomcat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quelle est la première chose que le conteneur web Tomcat effectue après son démarrage ?

A

Il va chercher à lire le fichier Web.xml, qui possède le descripteur du déploiement de Servlet, c’est un fichier dont on va déclarer une Servlet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Combien de fois une Servlet est instancié après son démarrage ? Quelle est son utilité ?

A

Une seule fois, d’où on va partager les données de la Servlet avec plusieurs Clients , c’est cela ce qu’on appelle le contexte de l’application (ServletContext).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quand on démarre une application JEE , c’est quoi la premère chose qui démarre ?

A

Le premier qui va démarrer est Spring , pour faire l’inversion de contrôle ( IoC ), il va être démarré par le contexte de Servlet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Multi Threads avec IO bloquantes ?

A

C’est un modèle où chaque client qui envoie une requête HTTP est traité par un Thread.
Multi Threads avec IO bloquantes ,bloquantes puisque le Thread reste bloquer jusqu’à ce qu’il reçoit une réponse à la requête, ce qui diminue les performances du serveur quoi que ce soit le nombre de resource qu’on a.
_____________________________________
Package java.io:
*InputStream
*OutputStream
*Reader
*Writer
_____________________________________
Spring MVC avec Tomcat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Que faire en cas du problème de monté en charge pour Multi Threads avec IO bloquantes ?

A

La scalabilité horizontale (au lieu d’utiliser un seul serveur il faut utiliser plusieurs serveurs) et utilisé un Load Balancer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Multi Single Thread avec IO non bloquantes ?

A

Ce modèle s’agit d’un seul Thread qui reçoit plusieurs requête HTTP , s’appelle IO Selector Thread qui utilise Reactor Event Loop , les requêtes sont mis dans une file d’attente jusqu’à la réception de la réponse sans bloqué les autres entrés , IO Selector Thread utilise aussi Worker Threads qui permet l’ajout d’autre Thread au cas où un CPU atteint sa capacité limite(utilisé un nombre limité suffisant de Thread dans la machine pour exploiter le CPU).
_______________________________________
Package java.nio
Channels:
*SocketChannel
*DataGramChannel
Buffers
Selector
________________________________________
Reactive Spring ou Spring Webflux avec Netty

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Déclaration de Servlet ?

A

*On la déclare dans le fichier Web.xml
Ou:
*On utiliser l’annotation:@WebServlet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Différence entre JSP et Servlet ?

A

Servlet : est une class Java dans laquelle on génère du HTML ( joue le rôle d’un controller)
JSP : Forme d’une page HTML où on écrit du code Java ( joue le rôle de la Vue )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

C’est quoi Forwarding dans JEE ?

A

Forwarding est quand le controller ( Servlet ) joue le rôle d’intermédiaire entre le Client et la Vue JSP , lorsque le Client envoie une requête HTTP , le controller s’en occupe de renvoyer la requête à la vue et récupérer la réponse qu’il envoie après au Client.

17
Q

C’est quoi Redirection dans JEE ?

A

Redirection est lorsque le client envoie une requête HTTP au controller , le controller le renvoie une réponse qui contient le “Status Code” de redirection (302) .
Ensuite le client est redirigé vers la vue JSP ( il envoie une autre requête directement à la vue JSP ) , après la vue JSP envoie la réponse au Client ( le rendu HTML )

18
Q

Quand est ce qu’on utilise Forwarding et Redirection dans JEE ?

A

Dans Forwarding , les objets request et response créé au moment de la requête restent les mêmes puisqu’on reste sur le même Controller, par contre, dans Redirection les deux objets changent ( pertes des données ) , dans ce cas si on a besoin des valeurs des objets précédents il faut les envoyer par URL.
On utilise Redirection lorsqu’on change le domaine (lorsqu’on n’est plus sur le même site c.-à-d. on utilise un Controller et on a besoin d’un autre Controller)

19
Q

Quelle est le code utiliser dans Forwarding et Redirection ?

A

*Dans Forwarding : request.getRequestDispatcher(“View.jsp”).forward(request,response)
______________________________________________
*Dans Redirection :
response.sendRedirect(“View.jsp?param=”+param)

20
Q

C’est quoi l’architecture Spring MVC ?

A

Spring MVC offre DispatcherServlet ( Front Controller ) , d’où on a pas besoin de créer une Servlet manuellement.
______________________________________________
*Après que le client envoie une requête HTTP de type GET ou POST au serveur , cette requête est reçu par DispatcherServlet
*DispatcherServlet traite la requête HTTP. Dans chaque action de l’URL ( ex : GET/action) qui se trouve déjà dans un Controller ( Sub-Controller ), DispatcherServlet devrait exécuter une opération associé à cette action.
*Le Controller exécute le traitement associé à l’action en faisant appel à la couche métier et récupère le résultat R.
*Le Controller stocke R dans l’objet Model
*Le Controller retourne le nom de la vue et Model au Front Controller
*Le Front Controller appelle la Vue JSP et lui transmet Model
*La Vue JSP récupère le résultat à partir du Model
*La Vue JSP génère du HTML à partir des résultats du Model et l’envoie au Front Controller
*Le Front Controller envoie la réponse HTTP au client

21
Q

Quelle est l’avantage d’utiliser un moteur de template comme thymleaf ?

A

*On a pas besoin de créé du code Java
*Quand on utilise JSP , il convertit du code Java au HTML et il n’utilise pas du cache , par contre thymleaf l’utilise , ce qui permet d’améliorer les performances de l’application

22
Q

Exemple de moteur de template pour JEE

A

Thymleaf , Freemaker,Groovy,Mustach…