1 csi 2532 lab6 application web et db février 27, 2012

14
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Upload: regine-seguin

Post on 04-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

1

CSI 2532 Lab6

Application Web et DB

Février 27, 2012

Page 2: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

2

Sommaire

• Architecture JDBC

• JSP

• Servlet

Page 3: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Architecture JDBC

• 2-Layer et 3-Layer

Dernier Lab

CeLab

Page 4: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

JSP et Servlet

• Côté Serveur

• Lorsqu’un client envoie une requête au serveur, le serveur envoie la requête au servlet. Le servlet construit la réponse qui est ensuite retournée par le serveur au client (via le browser) .

Page 5: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Example

• Une application avec JSP et des servlets qui utilise JDBC

• index.html (la page principale) myjsp.jsp (JSP) MyJDBCServlet.java (Servlet) et,

• library: postgresql-8.3-604.jdbc4.jar• Et d’autres fichiers de configuration

• Télécharger ici: myjdbc.zip

Page 6: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

JSP

• Mix de HTML et du code Java

• Les fichiers JSP sont compilés en servlets avant l’éxécution.

• Exemple: myjsp.jsp

Page 7: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Accès à la DB à partir du JSP

• Code Java à l’intérieur d’une page JSP:

Embed java codes with JDBC into a JSP page Import packages:

• <%@ page import=“……"%> Embed running codes or functions

• <% ……%>

Page 8: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

<html>

……

<%@ page import="

java.io.*,java.util.*,java.sql.*"%>

<body>

……

<%

……

String uname = request.getParameter("uname");

String pwd = request.getParameter("pwd");

con = DriverManager.getConnection (url, uname, pwd);

……

out.print(rs.getString(1));

……

out.close();

%>

</html>

• “request” and “out” are pre-defined variables.

• “request” is of type javax.servlet.http.HttpServletRequest

• "out" is of type javax.servlet.jsp.JspWriter.

Page 9: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Servlet

• Un servlet est un objet qui reçois une requête et génere une réponse.

• La réponse contient normalement un fichier html.

• L’API d’un servlet est définie par javax.servlet

• Exemple: MyJDBCServlet.java

Page 10: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

public class MyJDBCServlet extends HttpServlet

{

public void service(HttpServletRequest request,HttpServletResponse response)

throws IOException, ServletException

{

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<html>");

……

Connection con = null;

Class.forName("org.postgresql.Driver");

……

out.close();

}

}Le code d’accès à la db est le même qu’avant

• “HttpServlet” est une classe abstraite

• Dans la méthode “service()” est utiliséê pour traiter la ‘request’ et construire la réponse

Page 11: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Exécutez l’application

• Composantes de l’application: index.html myjsp.jsp WEB-INF

• web.xml• classes

– MyJDBCServlet.java/class

• lib– postgresql-8.3-604.jdbc4.jar

Map entre un servlet et une URL

Page 12: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Exécutez l’application

• Trouver le serveur:tomcat

• Unzip myjdbc.zip, et placez le sur:• D:\apache-tomcat-6.0.18\webapps\myjdbc\

• Démarrer le serveur• cd d:\apache-tomcat-6.0.18\bin• startup.bat

• Démarrer votre explorateur web et naviguez à la page suivante: http://localhost:8080/myjdbc/index.html

Page 13: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Exercice

• Créer votre propre JSP et Servlet Connectez vous à la db Faites de requêtes SQL Affichez les résultats dans un format html

• Tips: Get metadata of the query result:

• ResultSet.getMetaData()

Page 14: 1 CSI 2532 Lab6 Application Web et DB Février 27, 2012

Références

• Application developer’s guide sur Tomcat

• Servlets and JSP Pages Best Practices