Vous êtes sur la page 1sur 8

Filière 

: SMI&LP2I
Module : Java 2
Durée Epreuve: 1h30mn
Responsable : K.AFDEL
NOTE!!!: STRICTEMENT INTERDIT D'UTILISER LE DOCUMENTS.
PROBLÈME
On souhaite développer une application respectant le pattern MVC. Cette application doit être extensible et réutilisable. Un
produit est caractérisé par les attributs suivants : son ref(String), son Description(String), son Prix (float) et sa Etat
(boolean).

Figure1
Figure 2
1- Donnez la signification du pattern MVC, Expliquez l'architecture MVC;
2- Ecrire un fichier JSP nommé "SaisieProduit.jsp"présentant un formulaire de saisi des informations liées aux Produits
3- Écrire le contrôleur représenté par une servlet nommé "ProduitServlete.java" permettant d'afficher dans le navigateur
les données saisies par le formulaire "SaisieProduit.jsp"(en redéfinissant la méthode DoPost())
On souhaite que les données saisie par la servlet soient transmises au modèle représenté par une classe java Bean
nommée "ProduitBeanModel.java". Le javaBeanModel est une classe représentant les attributs de Produit décrit ci-
dessus. Le constructeur avec argument permettant de initier les attributs aux valeurs suivantes : (PC", "PC Portable",
8000,12587) les accesseur et les mutateurs.
4- Écrire le fichier testeBean.jsp permettant d'accéder à la propriété de la composantes JavaBean
"ProduitBeanModel.java" (utilisez <jsp:useBean...>, <jsp:getProperty> et <jsp:setProperty>)
5- Écrire une classe TesteProduitCollection.java permettant d'enregistre et l'affichage des objets suivants :
Produit1: ("PC", "PC Portable", 8000, 12587)
Produit2 : ("CLAVIER", "PC Portable", 200,17894)
Produit3 : ("SOURIS", "PC Portable", 80,13697)
Produit4 : ("USB", "PC Portable", 30,5897)
dans la collection HashMap avec l'attribut référence comme clé de l'objet Produit. Affichez les objets de la collection
HasMap en utilisant à la fois les clés et les valeurs.
Note !!! En utilisant les méthode get() et put () pour saisir et lires les données dans un conteur HashMap.
6- Reprendre la servlet ProduitServlet de la question 3.Nous allons la modifier de manière à créer un objet Produit1 à le
transmettre au jsp "ProduitView.jsp". pour cela il faut utiliser la méthode setAttribute() sur request ou une sur une
Session et un dispatcher :
getServletContext().getRequestDispatcher("/ProduitView.jsp").forward(req, res);
A. Quelle la différence entre une request, une session et ServletContext?
B. A quoi sert un dispatcher ?
C. Réécrire la servlet "ProduitServlete.java" en prenant en compte ces modifications
7- Ecrire le code de la vue "ProduitView.jsp" permettant d'afficher l'objet transmis par le contrôleur
ProduitServlete au JSP "ProduitView.jsp".

8- Lors de développement d’une application, on utilise les interfaces graphiques. La figure2 montre une interface
graphique d’une application. Ce dernier est composé des composants graphiques suivantes : Label, TextFiled,
List, Checkbox,Button, TextArea. Ecrire le code source java réalisant l’interface de la figure 2.
Solution

Question 2:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"


pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Entrez le Id-ref du Medicament</title>
</head>
<body>
<form method="post" action="MedicamentServlet">
<br> Id-ref-Medicament : <input type="text" name="id_medica"/>
<br> Nom : <input type="text" name="Labelle"/>
<br> E-mail : <input type="text" name="Prix"/>
<br> <input type="submit"/>
</form>
</body>
</html>

Question n°3
A-
package com.fsa.model;
public class Medicament {
private static final long serialVersionUID = 1L;
public Medicament (long id_medica, String Labelle, double Prix) {
super();
this.id_medica= id_medica ;
this. Labelle= Labelle;
this.Prix= prix;
}
public Medicament () {
super();
this.id_medica= id_medica ;
this. Labelle= Labelle;
this.Prix= prix;
}
private long id_medica;
private String Labelle;
private double Prix;

public void setid_medica (long id_medica) { this.id_medica = id_medica;}


public long getid_medica () {return id_medica;}
public void setLabelle(String Labelle) {this.Labelle = Labelle;}
public String getLabelle() {return Labelle;}
public void setPrix (double Prix) { this. Prix = Prix;}
public double getPrix() {return Prix;}

B- ClamoxineObj.jsp

<html>
<title>Java bean example in jsp</title>
<head>
<h1>Java bean example in jsp</h1>
<hr></hr>
</head>
<body>
<jsp:useBean id="mybeanMedica" class=" com.fsa.model.Medicament" scope="session" >
<jsp:setProperty name=" mybeanMedica " property="id_medica" value=2 />
</jsp:useBean>
<jsp:setProperty name=" mybeanMedica " property="Labelle" value="Clamoxine" />
</jsp:useBean>
<jsp:setProperty name=" mybeanMedica " property="Labelle" value="Clamoxine" />
</jsp:useBean>
<jsp:setProperty name=" mybeanMedica " property="Prix" value=5.5 />
</jsp:useBean>

</body>
</html>

Question n°3
Q-3-A

package com.fsa.controller;
import com.fsa.model.*;
import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class MedicamentServlet
*/
@WebServlet({ "/MedicamentServlet", "/do" })
public class MedicamentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public EmployeServlet() {
super();
// TODO Auto-generated constructor stub
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException


{
long id_medica;
String Labelle;
double Prix;
PrintWriter out = response.getWriter();
response.setContentType("text/html");
String title = "Pharmacie";

id_medica =request.getParameter(id_medica);
Labelle=request.getParameter("Labelle");
Prix=request.getParameter(Prix);

out.println(
"<html"
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1 ALIGN=CENTER>" + title + "</H1>\n" +
"<br> Id-ref-Medicament: "+ id_medica + "</br> \n"
"<br> Labelle : "+ Matricule + "</br> \n"
"<br> Prix: "+ Prix + "</br> \n"
"</BODY"
"</html>");

}}

Q-3-B
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>MVC_prj</display-name>
<servlet>
<servlet-name>MedicamentServlet</servlet-name>
<servlet-class>com.fsa.controller. MedicamentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> MedicamentServlet </servlet-name>
<url-pattern> Medicament </url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>saisiForm.jsp</welcome-file>
</welcome-file-list>
</web-app>

Question n°4
Q-4- A
package com.fsa.model;
import java.util.HashMap;
public class MedicamentService {
HashMap<long, Medicament> MedicaHashMap=new HashMap<long, Medicament>();

Medicament medicament1=new Medicament(1,"Aspirine",2.55);


Medicament medicament2=new Medicament(2,"Clamoxine", 5.5);
Medicament medicament3=new Medicament(3,"Sibelium", 15.5);
public MedicamentService(){
MedicaHashMap.put(1, medicament1);
MedicaHashMap.put(2, medicament2);
MedicaHashMap.put(3, medicament3);
}
public Medicament getMedicamentInfos(long id_medica)
{ return(Medicament)Medicaments.get(id_medica); }
}
Q4-B
public class DemoMedicament{
public static void main(String[] args) throws IOException, ClassNotFoundException {

HashMap<long, Medicament> MedicaHashMap=new HashMap<long, Medicament>();

Medicament medicament1=new Medicament(1,"Aspirine",2.55);


Medicament medicament2=new Medicament(2,"Clamoxine", 5.5);
Medicament medicament3=new Medicament(3,"Sibelium", 15.5);
public MedicamentService(){
MedicaHashMap.put(1, medicament1);
MedicaHashMap.put(2, medicament2);
MedicaHashMap.put(3, medicament3);
}
Iterator it = MedicaHashMap.entrySet().iterator();
while(it.hasNext()){
Map.Entry mEntry = (Map.Entry)it.next();
System.out.println(mEntry.getKey() + " : " + mEntry.getValue() );
} }

Question 5

public class MedicamentServlet extends HttpServlet {


private static final long serialVersionUID = 1L;

public MedicamentServlet() { super();


}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException


{}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException


{

long id_medica;
String Labelle;
double Prix; out = response.getWriter();
response.setContentType("text/html");
String title = "Pharmacie";

id_medica =request.getParameter(id_medica);
Labelle=request.getParameter("Labelle");
Prix=request.getParameter(Prix);

MedicamentService MedicaService= new MedicamentService();


Medicament Medicament1= MedicaService. getMedicatInfos(2);
request.getSession().setAttribute("medica1", Medicament1);
RequestDispatcherdispatcher= request.getRequestDispatcher("MedicamentInfos.jsp");
dispatcher.forward(request, response);
}}

Question-6
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="com.fsa.model.Medicament" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2> Medicaments Information</h2>
<% Medicament Medicament1 = (Medicament)request.getAttribute("medica1"); %>
<table border="1">
<tr>
<td><%= Medicament1. getid_medica()%></td>
<td><%= Medicament1.getPrix()%></td>
<td><%= Medicament1.getLabelle()%></td>
</tr>
</table>

</body>
</html>

import java.awt.*;
import java.awt.event.*;
class Fenetre extends Frame implements ActionListener{
private Panel p1,p2,p3,p4;
private TextField tfNom,tfPrenom;
private Label lNom,lPrenom,lCouleur,lSave;
private List lsCouleur;
private TextArea taCouleur;
private Button btSubmit;
private Checkbox chMasc, chFimi;
private CheckboxGroup rgb;
public Fenetre(String s){
super(s);
addWindowListener(new clExit());
p1=new Panel(new FlowLayout(FlowLayout.CENTER));
p3=new Panel(new FlowLayout(FlowLayout.CENTER));
p4=new Panel(new FlowLayout(FlowLayout.CENTER));
p2=new Panel(new BorderLayout());
lNom=new Label("Nom: ");
tfNom=new TextField(16);
lPrenom=new Label("Prénom: ");
tfPrenom=new TextField(16);
lCouleur=new Label("Couleur");
lsCouleur=new List(4,false);
lsCouleur.addItem("Bleu");
lsCouleur.addItem("Rouge");
lsCouleur.addItem("Blanc");
lsCouleur.addItem("Vert");
lsCouleur.addItem("Noir");
lsCouleur.addItem("Bleu ciel");
taCouleur=new TextArea ("", 4, 30,TextArea.SCROLLBARS_BOTH);

btSubmit=new Button("Submit");
btSubmit.addActionListener(this);
lSave=new Label("Sexe");
rgb=new CheckboxGroup();
chMasc=new Checkbox("Masculin",rgb,true);
chFimi=new Checkbox("Féminin",rgb,false);
p1.add(lNom);
p1.add(tfNom);
p1.add(lPrenom);
p1.add(tfPrenom);

p3.add(lCouleur);
p3.add(lsCouleur);
p3.add(taCouleur);
p4.add(btSubmit);
p4.add(lSave);
p4.add(chMasc);
p4.add(chFimi);
p2.add(BorderLayout.NORTH,p1);
p2.add(BorderLayout.CENTER,p3);
p2.add(BorderLayout.SOUTH,p4);
p2.setBackground(Color.getHSBColor(116,153,180));

add(p2);
setSize(500,300);
setVisible(true);

}
public void actionPerformed(ActionEvent e){
if(e.getSource().equals(btSubmit)){
String s=new String();
s+=tfNom.getText()+"\n"+tfPrenom.getText()+"\n"+lsCouleur.getSelectedItem()+"\
n"+rgb.getSelectedCheckbox().getLabel();
taCouleur.setText(s);
tfNom.setText("");
tfPrenom.setText("");
}
}
public static void main(String[] arg){
Fenetre F=new Fenetre("Fenetre");
}
}
import java.awt.*;
import java.awt.event.*;

class clExit extends WindowAdapter{


public void windowClosing(WindowEvent e) {
System.exit(0);
}
}

Vous aimerez peut-être aussi