Statement & PreparedStatement

Statement & PreparedStatement

Statement : c’une interface qui nous fournit des méthodes pour exécuter des requêtes avec une bd. Cette dernière est une usine de Resultset.

Les méthodes qu’on peut utiliser sont les suivantes :

– public ResultSet executeQuery(String sql) : on l’utilise pour executer une requete de type select, elle nous retourne un objet de type ReseltSet.

public int executeUpdate(String sql) : utiliser pour executer une requete de type create, drop, insert, update ou delete.

public boolean execute(String sql) : pour executer des requetes qui vont retourner plusieurs résultats.

public int[] executeBatch() : pour executer des commandes batch.

PreparedStatement : c’une sous interface de Statement, on l’utilise pour exécuter des requêtes paramètres. L’utilisation de PreparedStatement rend l’application rapide car les requêtes paramètres sont compilées une seule fois.

L’interface Connection

Connection : L’interface Connection est une interface qui joue en fait le rôle de session entre une application et une bd, et c’est via cette interface qu’on peut fabriquer des Statement, PreparedStatement, and DatabaseMetaData.

Les classes qui implémentent cette interface doivent obligatoirement redéfinir les méthodes suivantes :

public Statement createStatement() : créer un objet de type statement pour executer des requetes SQL.

public Statement createStatement(int resultSetType,int resultSetConcurrency) : Crée un objet Statement qui va générer des objets ResultSet avec le type et la simultanéité donnée

public void setAutoCommit(boolean status) : on l’utilise pour modifier l’etat du commit, il est true par défaut.

public void commit() : souvegarder toutes les modifications faites après le dernier commit.

public void rollback() : supprimer toutes les modifications faites après le dernier commit.

public void close() : fermer la connexion et libérer les ressources JDBC.

Maven, c’est quoi?

Maven, c’est quoi?

Ce tuto fournit des concepts de bases et avancés de la technologie apache maven3. Notre tutoriel maven est développé pour les débutants et les professionnels.

Maven est un outil de gestion de projet puissant qui est basé sur POM (modèle d’objet du projet ) . Il est utilisé pour des projets build, la dépendance et la documentation .

Il simplifie le processus de construction comme ANT. Mais il est trop avancé que ANT .

Il y a beaucoup de problèmes auxquels nous sommes confrontés lors de l’élaboration du projet. Ils sont décrits ci-dessous:

  • Ajout d’ ensemble de Jars dans chaque projet : dans le cas des frameworks struts, Spring, Hibernate, il faut ajouter un ensemble de fichiers JAR dans chaque projet ainsi l’inclusion de toutes les dépendances de ces fichiers JAR.
  • Création de la structure de projet : Nous devons créer la bonne structure du projet sinon il ne sera pas exécuté.
  • Construction et déploiement du projet : Nous devons avoir à construire et à déployer le projet afin qu’il puisse travailler.

Maven simplifie tous les problèmes mentionnés ci-dessus, et vous aidez également à faire les points ci-dessous :

  • Construire les projets facilement.
  • Il fournit des processus de construction uniforme(un projet maven peut être partagé par tous les autres projets maven).
  • Il fournit des informations sur les projets (documents log, liste de dépendances, rapports de tests unitaires, etc… ).
  • la migration est facile pour les nouvelles versions de Maven.

Cycle de vie d’une JSP

Un cycle de vie d’une JSP peut être définie comme l’ensemble du processus depuis sa création jusqu’à la destruction qui est similaire à un cycle de vie d’une servlet avec une étape supplémentaire qui est nécessaire pour compiler une JSP en servlet.

jsp_lifecycle

Une Page Jsp passe par les étapes suivantes :

  • Compilation : Lorsqu’un navigateur demande une page JSP, le moteur JSP vérifie d’abord pour voir s’il a besoin de compiler la page. Si la page n’a jamais été compilée, ou si la JSP a été modifié depuis la dernière compilation, le moteur JSP compile la page.
  • Initialisation : Quand un conteneur charge une JSP, il invoque la méthode jspInit () avant d’intervenir sur toutes les demandes.
  • Exécution : Chaque fois qu’un navigateur demande une JSP et la page a été chargée et initialisée, le moteur JSP appelle la méthode _jspService () dans la JSP, la méthode _jspService () est invoquée une fois par une demande et responsable de la génération de la réponse à cette demande et elle est également responsable de générer des réponses à toutes les autres méthodes HTTP.
  •  Nettoyage : La méthode jspDestroy () est l’équivalente de la méthode destroy() pour les servlets. Charger jspDestroy lorsque vous devez effectuer un nettoyage, comme la libération des connexions de base de données ou la fermeture des fichiers ouverts.

     

JSP, c’est quoi

JSP, c’est quoi ?
Java Server Pages (JSP) est une technologie de programmation côté serveur, elle permet de développer des pages Web dynamiques à partir d’un squelette HTML qui contient des bouts de code Java (scriptlets).
Une page JSP est transformée en classe Java puis compilée en Servlet par le serveur d’applications.

Architecture JSP
JSP-architecture (1)Avantages :
– Les JSP reposent sur un le langage JAVA(un langage de programmation puissant, portable, sécurisé…).
– Si la page JSP est modifiée, nous n’avons pas besoin de recompiler et redéployer le projet.
– Une très bonne intégration du code Java et du HTML.

Inconvénients :
– La technologie JSP demandera un serveur plus puissant avec plus de mémoire pour avoir des temps de réponses rapides.

Création d’une Servlet

Une Servlet est une classe java qui a pour fonction de répondre à une requête d’un client en lui fournissent une réponse. Donc pour créer une Servlet nous avons besoin des éléments suivants :

  • Fichier jar “Servlet.jar”
  • Déclarer la servlet dans le descripteur web “web.xml”
Déclaration d'une servlet dans le descripteur web "web.xml"

Déclaration d’une servlet dans le descripteur web “web.xml”

Nous avons deux importantes balises servlet et servlet-mapping :

– La balise servlet :

servlet-name : le nom de la servlet.
servlet-class : l’emplacement de la classe, si par exemple la servlet existe dans un package”com.opentuto” on devrait écrire <servlet-class>com.opentuto.Tuto</servlet-class>

– La balise servlet-mapping :

servlet-name : le nom de la servlet.
url-pattern : c’est l’url qu’on écrit dans le navigateur web pour accéder à notre servlet (on peut écrire ce qu’on veut, pas forcément le nom de la servlet).

Dans une Servlet, nous avons deux principales méthodes doGet() & doPost().

doGet   : Une requête de type GET est utile avec des liens.
doPost : Une requête de type POST est utilisée avec un formulaire HTML.

Ci-dessous un exemple d’une Servlet :

Résultat :
2015-02-15_221033

 

L’API Servlet

Dans ce tuto, nous allons voir l’ensemble de classes et interfaces nécessaires qu’il faut utiliser avec les Servlets.
L’API Servlet contient plusieurs classes et interfaces qui existent dans deux packages javax.servlet.http & javax.servlet.
Tout d’abord, nous allons faire une petite description des 2 packages ci-dessus :

javax.servlet : Ce package contient des classes et interfaces qui décrivent et définissent les contrats entre une Servlet l’environnement d’exécution,

La liste des classes qui existent dans la package javax.servlet :
AsyncEvent
GenericServlet
MultipartConfigElement
ServletContextAttributeEvent
ServletContextEvent
ServletInputStream
ServletRequestAttributeEvent
ServletRequestEvent
ServletRequestWrapper
ServletResponseWrapper
ServletSecurityElement

La liste des interfaces qui existent dans la package javax.servlet :
 Servlet
ServletRequest
ServletResponse
RequestDispatcher
ServletConfig
ServletContext
SingleThreadModel
Filter
FilterConfig
FilterChain
ServletRequestListener
ServletRequestAttributeListener
ServletContextListener
ServletContextAttributeListener

javax.servlet.http : Ce package contient des classes et interfaces qui décrivent et définissent les contrats entre une Servlet exécutée sous le protocole HTTP et l’environnement d’exécution, les classes et interfaces qui existent sur ce package sont responsables de toutes les requêtes HTTP.

La liste des classes qui existent dans la package javax.servlet.http :
HttpServlet
Cookie
HttpServletRequestWrapper
HttpServletResponseWrapper
HttpSessionEvent
HttpSessionBindingEvent

La liste des interfaces qui existent dans la package javax.servlet.http :
HttpServletRequest
HttpServletResponse
HttpSession
HttpSessionListener
HttpSessionAttributeListener
HttpSessionBindingListener
HttpSessionActivationListener
HttpSessionContext

 

 

Cycle de vie des servlet

Cycle de vie des servlet :
Le conteneur Web maintient le cycle de vie d’une instance de servlet. ci-dessous le cycle de vie d’une servlet :

servlet_cycledevie

– La servlet classe est chargée :
Le chargeur de classe est responsable de charger la classe de servlet . La classe servlet est chargée lorsque la première demande de la servlet est reçue par le conteneur Web.

– Création de l’instance Servlet :
Le conteneur Web crée l’instance d’une servlet après le chargement de la classe de servlet . L’instance servlet est créée seulement une fois dans le cycle de vie de la servlet.

– La méthode Init() :
le conteneur appelle la méthode Init() une seule fois après la création de l’instance servlet et crée les objets Request et Response spécifiques à la requête

– La méthode Service() :
Le conteneur web appelle la méthode service() à chaque requête dans une nouvelle thread.

– La méthode Destroy() :
La méthode destroy() est appelée juste avant que le serveur ne détruise la servlet, cela donne l’occasion  libérer des ressources.

 

 

 

Une Servlet, c’est quoi ?

Une Servlet, c’est quoi ?
La technologie Servlet est utilisée pour créer des applications web (côté serveur et génère des pages Web dynamique), Elle reçoit une requête du client, elle effectue des traitements et renvoie la réponse.

La servlet est :
– Une API qui fournit de nombreuses interfaces et les classes.
– Technologie pour créer des applications WEB.
– Peut être invoquée plusieurs fois en même temps pour répondre à plusieurs requêtes simultanées.
– Elle peut jouer le rôle du controlleur (se positionner au milieu entre un client léger(exemple “navigateur web”) et la source de données).

Architecture Servlet 

Servlet

Avantages :
– Elle crée un thread pour chaque demande.
– La portabilité.
– l’accès à toutes les API de Java.

Inconvénients :
– il y a des difficultés pour créer des pages web (Les gens qui ne savent pas programmer en java, ne puissent pas créer une page web en utilisant une servlet).