Chap1 Programmation JSP
Chap1 Programmation JSP
JSP et PHP
– ASP.NET – PHP
– C – Python
– Java – Ruby
2/9/16
2018/2019 Dr.-Ing. P. Dayang, Math & Info, Université de Ngaoundéré !3
Configuration typique d'une application web
nom1=val1&nom2=val2&…
Ref : https://developer.mozilla.org/fr/docs/Web/Guide/HTML/HTML5
<html>
<head>
<title>Ma page</title>
<script type="text/javascript" charset="utf-8">
function sayHello() {
document.getElementById('foo').innerHTML = 'Hi there!';
}
</script>
</head>
<body>
<h1 id="foo" onclick ="sayHello()">Clique moi!</h1>
</body>
</html>
<html> ...
<script type="text/javascript"
src=“./mesFichiersJS/myfile.js”></
script>
myfile.js <body>
…..
</body>
</html>
2018/2019 Dr.-Ing. P. Dayang, Math & Info, Université de Ngaoundéré !17
Travaux pratiques individuels
Guide:
–1ère fonction JS calcule la taxe à retenir sur un prix d’un article entré dans
un champs.
● Autre méthode :
<script language=”php”> echo ”Salut” ; </script>
● Incrémenter / Décrémenter
++$a (Incrémente d’un et retourne $a)
$a++ (Retourne $a et incrémente $a d’un)
--$a (Décrémente $a d’un et retourne $a)
$a-- (Retourne $a et décrémente $a d’un)
! while, do-while
! for, foreach
switch ($i) {
case 0:
echo "i equals 0";
break;
if ($i == 0) { case 1:
echo "i equals 0"; echo "i equals 1";
} elseif ($i == 1) { break;
echo "i equals 1"; case 2:
} elseif ($i == 2) { echo "i equals 2";
echo "i equals 2"; break;
} }
2018/2019 Dr.-Ing. P. Dayang, Math & Info, Université de Ngaoundéré 27
Traverser des Arrays
● Créer un champs
$sauce = "sauce1 sauce2 sauce3 sauce4 sauce5 sauce6";
$sauces = explode(" ", $sauce);
– Décription de la position des termes les uns par rapport aux autres:
grammaire
<!DOCTYPE livre
[
<!ELEMENT livre (titre, auteur+, edition?, chapitre+)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT edition (#PCDATA)>
<!ELEMENT chapitre (texte+, image)>
<!ELEMENT texte (#PCDATA)>
<!ELEMENT image EMPTY>
]>
• Technologie servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ServletExemple extends HttpServlet {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE> Titre </TITLE></HEAD>");
out.println("<BODY>");
out.println("Ma première servlet");
out.println("</BODY>");
out.println("</HTML>");
out.close();
}
}
● Servlet : Code Java contenant des morceaux de code HTML pour l'affichage
– Faciliter la portabilité
Graphiste:
partie présentation des données
(code html)
Développeur:
partie logique, c.a.d le traitement et
l'accès aux données (code java)
JSP Servlets
html
code html + code java code java + code html
– Deuxième variante
● Directive taglib
<%@ taglib uri="maTagLib.tld" prefix="tagExemple" %>
● Directive Page
<%@ page import="java.util.List, java.util.Date" %>
● Directive include
<%@ include file="uneAutreJSP.jsp" %>
attributs
${ expression }
● Tests
– opérateurs arithmétiques : +, -, *, /, % ; et opérateurs logiques: &&, ||, ! ;
opérateurs relationnels : == ou eq, != ou ne, < ou lt, > ou gt, <= ou le, >= ou ge.
<%
/* Création d'une liste de fruits et insertion de quatre fruits */
java.util.List<String> fruits = new java.util.ArrayList<String>();
fruits.add( "mangue" );
fruits.add( "avocat" );
fruits.add( "orange");
fruits.add( "ananas" );
request.setAttribute( "fruits" , fruits );
%>
● Avantages
– Lisibilité du code produit
– Moins de code à écrire
JSTL_test.jsp, JSTL_villes.jsp,
processVilles.jsp
Application Java
{ ...
"SELECT ... FROM ... WHERE"
... }
SGBB
4. Exécution la requête
5. Recherche des résultats et leur affichage
7. Déconnexion de MySQL
● Connection : La connexion
● PreparedStatement : Interface, instructions SQL pré-compilée
…
if ( statement != null ) {
try {
/* Puis on ferme le Statement */
statement.close();
} catch ( SQLException ignore ) {
}
}
if ( connexion != null ) {
try {
/* Et enfin on ferme la connexion */
connexion.close();
} catch ( SQLException ignore ) {
}
}
}
loadDriver
getConnection
createStatement
yes
session.setAttribute("name", username);
session.setAttribute("uservalidation", uservalidation);
<p>Bienvenu, <%=session.getAttribute("name")%></p>
Servlets
2018/2019 Dr.-Ing. P. Dayang, Math & Info, Université de Ngaoundéré !68