Vous êtes sur la page 1sur 4

Examen de rattrapage JEE

Master I SIR (Soir)

Année académique 2017-2018

Durée : 1h 30

NB : le support de cours et l’ordinateur sont autorisés. Les téléphones sont interdits.


Questions : (3 points par question)
1) Quelle est la différence entre un serveur web classique et un serveur d’application en JEE?
Un serveur web classique a pour role de recevoir des requetes http et renvoyer une reponse http
alors que le serveur d’application, en plus de ce que fait le serveur web, permet d’executer le
contenu des requetes http.
2) Quel est le répertoire de déploiement le plus important sous Apache Tomcat ?
webapp
3) Pourquoi une JSP est toujours compilée en une Servlet avant son utilisation ?
Vu que le client(navigateur) ne peut pas interpreter du code java et que la page jsp demandée
contient du code java alors le serveur d’application doit compiler la page en une servelet avant de
generer la page web.
Exercice : (11 points)

Dans ce problème, vous utiliserez PrimeFaces et Hibernate pour répondre aux questions.

On donne une base de données nommée ExamJEE contenant une table users (#login, password).
Toutes les colonnes de cette table sont de type varchar.

On donne un formulaire login.xhtml (avec les propriétés login et mot de passe de type chaîne). On
veut écrire un bean managé nommé LoginBean.java qui permet de vérifier si l’utilisateur qui veut se
connecter existe bien dans la table users. Si l’utilisateur n’existe pas il doit être créé et être enregistré
dans la table users.

Ecrire la classe LoginBean pour réaliser le travail défini (de vérification et de création de l’utilisateur).

NB : vous pouvez, au besoin, vous servir de Beans utilitaires en argumentant.

Solution
La page jsf (xhmtl) dèja implementée
<h:form>
<p:inputText value="#{LoginBean.getUsers().login}"/>

<p:password value="#{LoginBean.getUsers().motDePass}"/>

<p:commandButton action="#{LoginBean.verifierUtilisateur()}" />


</h:form>

Class Users.java (obtenu par reverse inginering) dèja implementée

package examen;

import java.io.Serializable;
public class Users implements Serializable{
private String login;
private String motDePass;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getMotDePass() {
return motDePass;
}
public void setMotDePass(String motDePass) {
this.motDePass = motDePass;
}
}
Class LoginBean.java (à faire)
package examen;

import java.io.Serializable;
import java.util.Iterator;

import javax.faces.bean.ManagedBean;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
@ManagedBean(name="LoginBean")
public class LoginBean implements Serializable{
private Users users=new Users();

public Users getUsers() {


return users;
}

public void setUsers(Users users) {


this.users = users;
}

public void verifierUtilisateur() {


//Configuration config=new Configuration();
//Session session=new Configuration().buildSessionFactory().openSession();
Session session=SessionFactoryProvider.getSessionFactory().openSession();
// Avec Query
// Query query=session.createQuery("from utilisateur where
login='"+users.getLogin()
// +"' and motdepass='"+users.getMotDePass()+"'");
// Iterator resultat=query.iterate();
// if(resultat.hasNext()) {
// System.out.println("L'utilisateur existe dans la base de données");
// }else {
// System.out.println("On crée l'utilisateur");
// session.save(users);
// }
// Avec criteria
Criteria criteria=session.createCriteria(Users.class);
//Criterion criterion= Restrictions.eq("login", this.users.getLogin());
criteria.add(Restrictions.eq("login", this.users.getLogin()));
criteria.add(Restrictions.eq("motdepass", this.users.getMotDePass()));
List l=criteria.list();
if(l.size()!=0) {
System.out.println("L'utilisateur existe dans la base de données");
}else {
System.out.println("On crée l'utilisateur");
session.save(users);
} }
}

Examen de JEE
Section Informatique
Master SIR 1ère Année
Année académique 2017-2018
Durée : 2h
Partie I : question de cours : chaque question est notée sur 3 points.
1) Expliquez brièvement comment un ManagedBean recupère les paramètres de requêtes d’un
formulaire JSF (.xhtml) dans Primefaces?
Le managed bean definit des objets qui pointent directement sur le jsf . Et a l’aide des expressions
langage , toutes informations renseignees sur les vues seront affectees aux proprietes de l’objet
correspondant grace a leurs setters.
2) Pourquoi dit-on qu’une JSP est aussi une servlet ?
Le jsp est aussi une servlet car il peut contenir du code java qui nous permet de faire
les memes traitements qu’une sevlet et elle est compilée comme une servlet.

Exercice 1: (4 points)
Pour qu’une propriété nommée personne d’un objet de type Personne (on suppose que Personne est
un JavaBean déjà créé) puisse être lue correctement dans une page JSF (.xhtml) dans Primefaces,
comment faudrait-il la définir dans la classe du bean managé. Ecrire le code de cette définition
uniquement.
Ici nous considérons que Personne est la classe generée représentre la table Personne qui se trouve
dans la base de données.
Soit PersonneBean la class bean de Personne.
◼ Déjà fait
<h:form>
<p:inputText value="#{LoginBean.getPersonne().login}"/>

<p:password value="#{LoginBean.getPersonne().motDePass}"/>

</h:form>

--- a faire
@ManagedBean
Public Class PersonneBean implements Serializable{
Private Personne personne;
Public void setPersonne(Personne personne){
This.personne =personne;
}
Public String getPersonne(){
Return this.personne;
}

}
Devoir de JEE
section informatique master sir 1 ere annee
(cours du soir) Année académique 2019/2020
Partie 1 :
1°) Quelles sont les exigences a respecter pour que la propriete de reflexion puisse etre
convenablement utilise dans un manageBean dans la technologie jsf en JEE dans le but de recuperer
les parametres de requete des formulaires ?
il faut que les accesseurs de la class bean se conformer au standard JavaBean cad :
- Les attributs declarés en private
- Implementer les getter et setter
- Class
Exemple :
Private String symbol = null;
Public void setSymbol(String symbol)
Public String getSymbol( )

Vous aimerez peut-être aussi