Programmation des applications financières sous Excel en VBA

Programmation des applications financières sous Excel en VBA

Master Rseaux et Systmes Distribus (RSD) Algorithmique des systmes et applications rparties Introduction aux : Composants logiciels (JavaBeans) && Java Server Pages (JSP) Badr Benmammar [email protected] Plan Introduction aux composants logiciels (JavaBeans) Objet + Pattern = Bean Patterns dun Bean Pattern

des proprits simples Srialisation en XML 2 Plan Introduction aux Java Server Pages (JSP) Pourquoi les JSP ? JSP vs Servlet Code java <% %>

Dclarations <%! %> Expressions <%= %> Utiliser une classe java dans une JSP Directives <%@ page import %> Dboguer les JSP Directives <%@ page errorPage= ...%> <%@ page

isErrorPage="true"%> Enchaner les pages JSP JSP et JavaBeans Interaction avec un formulaire JSP et MySQL 3 Introduction aux composants logiciels (JavaBeans) 4 Objet + Pattern = Bean

Le Bean est un composant logiciel crit en Java. Les Beans sont des objets qui respectent une liste de patterns afin : Davoir une encapsulation plus sure. Doffrir une concernant interface les noms normalise

et et intuitive signatures des mthodes. Dtre srialisable donc dtre des objets persistants. 5 Pattern des proprits simples 6

Pattern des proprits simples Les proprits simples sont des attributs dclars private ou protected, accessibles par les mthodes "accesseurs" : public get() public String getNom () public void valeur) set(

public void setCours (String nouveauCours) Les proprits accessibles que par laccesseur getProprit sont dites "read only", celles accessibles que par laccesseur setProprit sont dites "write only", et celles accessibles par les 2 sont "read-write". Les proprits boolennes ont leur accesseur de lecture sous le nom isProprit() : public boolean is() public boolean isPair() 7 Pattern des proprits simples

Les proprits valeurs multiples indices (les tableaux) ont des accesseurs qui respectent les patterns suivants : public [ ] get() public int [ ] getTab() public void set([ ] valeur) public void setTab(int [ ] valeur) et sil est possible daccder aux lments individuellement : public get(int indice)

public int getTab(int indice) public void set(int indice, valeur) public void setTab(int indice, int valeur) 8

Exemple de Bean qui respecte les proprits simples public class User { private String login; private String passwd; public User(){ login="rsd"; passwd="rsd"; } public void setLogin(String login) { this.login = login; } public String getLogin() { return login; } public void setPasswd(String passwd) {

this.passwd = passwd; } public String getPasswd() { return passwd; } } 9 Srialisation en XML package enseignant9; public class Enseignant5 { private String nom = null; private String enseignement = null; public Enseignant5 () { nom = ""; enseignement = ""; } public Enseignant5 (String sonNom) {

nom = sonNom; enseignement = ""; } public String getNom () { return nom; } public void setNom (String sonNom) { nom = sonNom; } public String getEnseignement () { return enseignement; } public void setEnseignement (String nouveauCours) { enseignement = nouveauCours; } public String toString () { return "Enseignant "+nom+" dit : "+enseignement; } } 10 Srialisation en XML package enseignant9;

import java.beans.*; import java.io.*; public class SerialXML { public static void main(String[] args) { try { XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("enseignant.xml"))); Enseignant5 ens = new Enseignant5("Badr"); ens.setEnseignement("JAVA"); e.writeObject(ens); e.close(); } catch (Throwable t) { System.out.println("erreur encodage"); t.printStackTrace(); System.exit(1); } System.out.println("encodage termine"); 11

Srialisation en XML try { XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream("enseignant.xml"))); Object o = d.readObject(); d.close(); System.out.println(o); } catch (Throwable t) { System.out.println("erreur decodage"); t.printStackTrace(); } } } 12 Srialisation en XML Excution :

encodage termine Enseignant Badr dit : JAVA Le contenu de enseignant.xml JAVA Badr 13

Srialisation en XML package enseignant9; import java.beans.*; import java.io.*; public class SerialXML { public static void main(String[] args) { try { XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("enseignant.xml"))); Enseignant5 ens = new Enseignant5("Badr"); ens.setEnseignement("JAVA"); Enseignant5 ens1 = new e.writeObject(ens); Enseignant5("Ben"); e.close();

ens.setEnseignement("C++"); } catch (Throwable t) { System.out.println("erreur encodage"); e.writeObject(en t.printStackTrace(); s1); System.exit(1); } System.out.println("encodage termine"); 14 Srialisation en XML try { XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream("enseignant.xml"))); Object o = d.readObject(); d.close(); System.out.println(o);

} catch (Throwable t) { System.out.println("erreur decodage"); t.printStackTrace(); } } } 15 Srialisation en XML try { XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream("enseignant.xml"))); Object o = d.readObject(); Object o1 = d.readObject(); d.close(); System.out.println(o); System.out.println(o1); } catch (Throwable t) {

System.out.println("erreur decodage"); t.printStackTrace(); } } } 16 Srialisation en XML java enseignant9/SerialXML encodage termine Enseignant Badr dit : JAVA Enseignant Ben dit : C++

cat enseignant.xml JAVA Badr C++ Ben

17 Srialisation en XML Question : comment faire pour raliser un seul writeObject () et un seul readObject() dans le cas de plusieurs objets? 18 Srialisation en XML Depuis la version Java 1.4 (fvrier 2002), les Beans disposent dune srialisation en document XML : XMLEncoder. XMLDecoder.

Il nest pas ncessaire dimplmenter linterface Serializable. Par contre, il est obligatoire de disposer dun constructeur par dfaut, sinon le dcodeur ne peut pas instancier le Bean. 19 Introduction aux Java Server Pages (JSP) 20 Pourquoi les JSP ? Ncessit davoir des pages HTML dynamiques i.e. pages cres lors dune requte (consultation de compte bancaire, mto, cours de la bourse, vente aux enchres, etc.) JSP : reprsentant un code HTML dans lequel du code Java est appel.

Les parties statiques de la page HTML sont crites en HTML. Besoin dun serveur web. Les parties dynamiques de la page HTML sont crites en Java. Besoin dun conteneur de servlets (conteneur web). 21 Exemple dutilisation de JSP JavaServer Pages (JSP) 22 Exemple : Application web avec les JSP

Serveur Web : Apache (serveur HTTP) (1) : Demande de la page (*.jsp) (4) : Renvoi de la page HTML (2) : Demande daide au conteneur de servlets Crer ; Compiler ; Excuter la servlet en tche de fond

Conteneur de servlets : Tomcat Poste Client (Conteneur Web) (3) : demande des donnes la base de donnes : SQL arque : le conteneur de servlets ne sait pas traiter une requte MySQL , le serveur web ne sait pas excuter un code java. Serveur de base de donnes 23

GlassFish NetBeans dispose nativement dune interface dinteraction avec le serveur dapplication GlassFish (Tools -> Servers). 24 Fonctionnement gnrale dune JSP Clien t Moteur de servlets Phase de translati on

Phase dexcuti on 25 Remaque Le moteur de JSP ne transforme et compile la classe que dans le cas o le script JSP a t mis jour. Le fait que la compilation ne se fasse que lors de la mise jour du script JSP, fait de cette technologies une des plus rapides pour crer des pages dynamiques. Sous NetBeans, les servlets sont stockes dans le dossier : NetBeansProjects\nom_de_votre_projet\build\generated\src\org\

apache\jsp. 26 Pour chaque JSP Moteur de servlets 27 Cration dun nouveau projet 28 Cration de JSP 29

Exemple de JSP <% for (int i = 0 ; i < 3 ; i++) { out.println("Bonjour le monde !");
<% } %> %> Code JAVA Excution : http://localhost:23784/badr/Test.jsp Bonjour le monde ! Bonjour le monde !

Bonjour le monde ! 30 Exemple de JSP <% for (int i = 0 ; i < 3 ; i++) { out.println("Bonjour le monde !"); Code JAVA
<% } %>

%> Scriptlets <% %> pour contenir du code Java Excution : http://localhost:23784/badr/Test.jsp Bonjour le monde ! Bonjour le monde ! Bonjour le monde ! 31 Exemple de JSP <% for (int i = 0 ; i < 3 ; i++) { out.println("Bonjour le monde !"); } %>

Excution : http://localhost:23784/badr/Test.jsp Bonjour le monde ! Bonjour le monde ! Bonjour le monde ! out : variable utilise pour envoyer la rponse HTTP au client. 32 Dclarations <%! %> Permet de dfinir des mthodes ou des donnes membres. Exemples : <%! int nombre = 12; %> Ou :

<%! int random4() { return (int)(Math.random() * 4); } %> 33 Expressions <%= %> Expression Java qui renvoie un objet String ou un type primitif. Un raccourci pour <% out.println(); %> <%= XXX %> ~ <% out.println(XXX); %>

Pour les commentaires : <%-- Voici un commentaire JSP --%> 34 Scriptlets <% %> : Code Java <%! %> : Dclarations <%= %> : Expressions

<%-- --%> : Commentaires 35 Exemple complet Cours <%! String[] langages = {"Java", "C++", "Delphi", "PHP"}; int random4() { return (int) (Math.random() * 4); } %>

Parmi tous les langages orients objets :

    <% <% out.println(langages[random4()]); % for (int i=0; i < langages.length; i++) { out.println("

  1. " + langages[i] + "
  2. "); } %>

Le prochain que j'apprends est <%= langages[random4()] %>

36 http://localhost:23784/badr/Test.jsp Parmi tous les langages orients objets : 1. Java 2. C++

3. Delphi 4. PHP Le prochain que j'apprends est PHP 37 http://localhost:23784/badr/Test.jsp Parmi tous les langages orients objets : 1. Java 2. C++ 3. Delphi 4. PHP Le prochain que j'apprends est C++ 38

http://localhost:23784/badr/Test.jsp Parmi tous les langages orients objets : 1. Java 2. C++ 3. Delphi 4. PHP Le prochain que j'apprends est Java 39 Utiliser une classe java dans une JSP <%@ page import="Banque.Compte"%> Compte en banque

<% Compte cc = new Compte("aa",13, 30000); out.println("Solde : " + cc.getSolde() + " DA" ); %> 40 http://localhost:23784/badr/Test.jsp Excution : Solde : 30000.0 DA Dans Libraries ajouter le dossier qui contient le package Banque si ce dernier ne se trouve pas dans le mme projet que celui de la jsp. Libraries (clic droit) Add Jar/Folder

41 Autre exemple avec import <%@page import="java.util.*" %> <%= new Date() %> Excution : Sun Mar 09 22:35:38 WAT 2014 Indication : WAT : West Africa Time http://en.wikipedia.org/wiki/West_Africa_Time. 42 @page : directive JSP

@page : dfinit le code gnr durant le traitement de la page JSP. Quelques attributs : import="nomDePackage1, nomDePackage2..." : noms des packages imports dans le code. language="language" : language utiliser dans la jsp. errorPage="url relative" : ressource appele quand une exception est dclenche et quil ny a pas de try{}catch{} dans la page. isErrorPage="boolen" : indique si la page gre les exceptions. contentType="type Mime" : indique le type de documents contenus dans la rponse HTTP gnr par la JSP. pageEncoding="type dencodage" : dtermine le type dencodage des caractres de la rponse HTTP. buffer="taille" : dtermine la taille du buffer utilis par JspWriter de la JSP. La variable "out" est de type JspWriter. 43

Exemple <%@page contentType="text/html" pageEncoding="UTF-8" errorPage="erreur.jsp" import="java.util.*" %> 44 <%@ include : directive JSP Permet dinclure une autre ressource dans la page JSP. <%@page contentType="text/html" pageEncoding="UTF-8" errorPage="erreur.jsp" header.jsp

import="java.util.*" %> Dans une autre JSP, on peut utiliser : <%@ include file="header.jsp" %> 45 Dboguer les JSP Une page JSP peut rfrencer une page erreur par : <%@ page errorPage="page.jsp"%>. La page erreur est indique par lentte : <%@ page isErrorPage="true"%>. Si une exception est leve le traitement est drout vers la page erreur qui connat la rfrence exception qui repre lexception.

46 Exemple <%@ page errorPage="erreur.jsp"%> <%! String[] langages = {"Java", "C++", "Delphi", "PHP"}; %>

Parmi tous les langages orients objets :

<% for (int i=0; i < 10; i++) { out.println("

  • " + langages[i] + "
  • "); } %> 47 Exemple <%@ page isErrorPage="true"%>

    Une exception est leve
    <%= exception %> exception (objet implicite) : comme la variable out. Elle est disponible seulement dans une page ddie aux erreurs et permet de rfrencer Exception qui redirige sur cette page de gestion derreur. 48 http://localhost:23784/badr/Test.jsp Excution : Une exception est leve java.lang.ArrayIndexOutOfBoundsException: 4 49 Sans la gestion par une page derreur

    50 Enchaner les pages JSP Une page JSP peut en appeler une autre par la balise JSP :. Aprs un , le traitement est entirement pris en charge par la nouvelle page. Bonjour.jsp

    (nom du paramtre) et lattribut value (valeur du paramtre). 51 Enchaner les pages JSP <% String rep = request.getParameter("nom"); int i = Integer.parseInt(rep); request, comme out et exception est un objet if ((i % 2) == 0) { implicite qui permet davoir %> une rfrence utilis pour contacter la JSP.

    <% } else { %> getParameter : retourne la valeur de lattribut name <% } %> sous forme dune chane de Test.jsp caractre. Excution : http://localhost:23784/badr/Bonjour.jsp Pair 52 Enchaner les pages JSP <%="Impair" %>

    Impair.j sp Pair.js <%="Pair" %> p 53 JSP et JavaBeans package Log;

    public class User { private String login; private String passwd; public User(){ } public void setLogin(String login) { Un Bean qui this.login = login; reprsente les } donnes dun public String getLogin() { utilisateur return login; } Objectif : remplir les attributs du public void setPasswd(String passwd)

    { this.passwd = passwd; Bean partir dune JSP, et afficher } le contenu de ce Bean dans une autre JSP JS public String getPasswd() { avec deux manires diffrentes. return passwd; } } 54 Linterface 55 index.jsp

    Accès à mon site
    <%out.println(""); %>
    Login:
    Mot de passe:

    56 Premire mthode : authent1.jsp <%@ page language="java" %> <%@ page import="Log.*" %> <% String l=request.getParameter("login"); Rcuprer les String p=request.getParameter("passwd"); valeurs partir du formulaire User u=new User(); u.setLogin(l); Remplir le u.setPasswd(p); Bean %> Votre login : <%=u.getLogin()%>
    Afficher le

    contenu du Votre mot de passe : <%=u.getPasswd()%> Bean 57 index.jsp

    Accés à mon site
    <%out.println(""); %>

    Login:
    Mot de passe:

    58 Deuxime mthode : authent2.jsp <%@ page language="java" %> Crer le Bean Remplir toutes les proprits

    du Bean Votre login :
    Votre mot de passe :
    Afficher le contenu du Bean 59 Affichage Premir e mthod e Deuxi

    me mthod e 60 scope dun Bean Les objets crs dans les JSP ont une certaine porte, cest dire une certaine dure de vie. Les diffrentes portes existantes (scope) sont: page : les objets ne sont accessibles que dans la page o ils sont dfinis, le Bean nest pas transmis aux pages de redirection (). request : les objets sont accessibles pendant toute la dure de la requte. Le Bean est utilisable dans les pages de redirection de la requte ().

    session : le Bean est valide pour la session courante. Sil nexiste pas encore dans la session courante, il est cr et plac dans la session du client. Il est rutilis jusqu ce que la session soit invalide. application : les objets sont accessibles pendant toute la dure de vie de lapplication. Le Bean est cr une fois et partag par tous les clients des JSP. 61 JSP et MySQL On dispose cot MySQL de la base de donne suivante : Objectif : afficher le contenu de la table banque laide dune JSP. 62

    Code <%@ page language="java" import="java.sql.*"%> Read from mySQL Database

    Lecture de la base de donnes banque

    63 Code <% Class.forName("com.mysql.jdbc.Driver"); try{ Connection con = DriverManager.getConnection("jdbc:mysql://localhost/badr", "root", "badr"); Statement stmt=con.createStatement(); ResultSet rst=stmt.executeQuery("select * from banque "); while(rst.next()){ %>

    64 Code <% } rst.close(); stmt.close(); con.close(); }catch(Exception e){ System.out.println(e.getMessage()); } %>

    Nom Numro Solde
    <%=rst.getString(1)%> <%=rst.getInt(2)%> <%=rst.getInt(3)%>

    65

    Recently Viewed Presentations

    • Snímek 1 - zsnastrani.cz

      Snímek 1 - zsnastrani.cz

      (1949) and the allegorical novella Animal Farm (1945), which together have sold more copies than any two books by any other 20th-century . author. GEORGE ORWELL. Elektronická učebnice - Základní škola Děčín VI, Na Stráni 879/2, příspěvková organizace
    • Making Your Case with Persuasive Messages and Proposals

      Making Your Case with Persuasive Messages and Proposals

      Intrinsic. benefit (The pleasure of attending an event), Extrinsic. benefit (A gift at the door), a . Combination. ... based (ethos) uses a spokesperson's voice and projected image to win trust and invite readers to identify with the speaker.
    • COMA COMA CENTAURUS  CENTAURUS Hebrews 1:3 And He

      COMA COMA CENTAURUS CENTAURUS Hebrews 1:3 And He

      Gr. Noun, HUPOSTASIS ( (upostasis) the essential or basic structure/nature of an entity, substantial nature, essence, actual being, reality. John 1:1-2. In . the beginning was the Word, and the Word was with God, and the Word was God. 2)...
    • Sta220 - Statistics Mr. Smith Room 310 Class

      Sta220 - Statistics Mr. Smith Room 310 Class

      Example 4.7. Suppose you work for an insurance company and you sell a $10,000 one-year term insurance policy at an annual premium of $290. Actuary tables show that the probability of death during the next year for a person of...
    • Things fall apart, part 1 discussion - West Ada School District

      Things fall apart, part 1 discussion - West Ada School District

      Things fall apart, part 1 discussion. Work with your egwugwu partner. Part one. Refer back to your 1.1 tragic hero notes, and assess Okonkwo's circumstances against the story archetype. Where do you see his life aligning with the archetype? ......
    • Approximations and Round-Off Errors Chapter 3

      Approximations and Round-Off Errors Chapter 3

      Chapter 3 Approximations and Round-Off Errors Chapter 3 For many engineering problems, we cannot obtain analytical solutions. Numerical methods yield approximate results, results that are close to the exact analytical solution.
    • Medication Administration in the Community Administrative Rule 116

      Medication Administration in the Community Administrative Rule 116

      Communication is very important and must go both ways. It is best if the Nurse-Trainer remains, as much as possible in the teaching ,expert and supervisory role. The likelihood of staff communicating with you if you have termination responsibility is...
    • Notarial Practice

      Notarial Practice

      Scrivener Notaries The Scrivener Notary Bill Kennair Scrivener Notary London, England Scrivener Notaries Historical Background Bologna - Papal emissaries Reformation - Ecclesiastical Licences Act 1533 Role of London as a centre of trade Public Notaries Act 1801, Public Notaries Act...