CSI 2532 Lab6 Application Web et DB Février 27, 2012 1 Sommaire • Architecture JDBC • JSP • Servlet 2 Architecture JDBC • 2-Layer et 3-Layer Dernier Lab Ce Lab 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) . 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 JSP • Mix de HTML et du code Java • Les fichiers JSP sont compilés en servlets avant l’éxécution. • Exemple: myjsp.jsp 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 • <% ……%> <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. 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 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 Exécutez l’application • Composantes de l’application: index.html myjsp.jsp WEB-INF Map entre un servlet et une URL • web.xml • classes – MyJDBCServlet.java/class • lib – postgresql-8.3-604.jdbc4.jar Exécutez l’application • Trouver le serveur:tomcat • Unzip myjdbc.zip, et placez le sur: • D:\apache-tomcat6.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 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() Références • Application developer’s guide sur Tomcat • Servlets and JSP Pages Best Practices