Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble1 STRUTS Introduction Technologies Java Architecture Développement Enseigner quoi ?

Slides:



Advertisements
Présentations similaires
- Formation STRUTS 1 1.
Advertisements

Serveur d’applications JEE
DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
Architecture. Architecture Enjeux Les Enjeux Trouver une solution e-Business Accessible à partir d’un navigateur Web Accédant au système via un Portail.
Servlet JSP & © Philippe Poulard.
Assister lutilisateur dans sa tâche ? Vers une gestion des connaissances et de l'expérience pour leur réutilisation « en situation » Alain Mille LISI Université
Programmation Web Les JSP.
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
Toolkit Web Framework Java pour les IHMs Cédric Dumas mars 2008 contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage.

UV JSP JSP : Java Server Page
UV Servlets Les Servlets
JSP Java Server Pages. Introduction Afin dimplémenter les règles métiers, coté serveur dans une application Web, larchitecture Java propose trois solutions.
Servlet JAVA.
JSP 2 Crash Course Michel Buffa UNSA
Connexion base de données
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Forum JEE: framework STRUTS 1 et iBATIS
Université de Versailles-Saint-Quentin
CGI, Servlet. Script CGI, Servlet Motivation Exécution dun traitement coté serveur web Traitement de formulaire Génération de pages html à la volée Ex.
Michel Buffa UNSA 2012 JSP 2 Crash Course Michel Buffa UNSA 2012.
JAVA SERVER FACES (JSF)
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
pour les applications Web :
Applications Internet
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
JAVASERVER FACES Un framework Java pour le développement Web.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
Documents > J2SE APIs > J2EE APIs
Cours GLG203 Cours J2EE JDBC, RMI, IIOP, Sécurité, XML
SERVLETS PRESENTATION
Développement Web en J2EE (Servlet & JSP)
Composants web (web tiers)
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
JSTL JSP Standard Tag Library
Servlets.
JSP (Java Server Pages)
Servlets. 2 H. Fauconnier M2-Internet Contenu dynamique Perl/cgi indépendant de la plateforme Extensions du serveur exemple ASP M2-Internet 3 H. Fauconnier.
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes APACHE/VELOCITY.
Adaptée du cours de Richard Grin
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Initiation au web dynamique - TP
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
GWT - QuickStart V 1.0 / May. Mise en place de l’environnement Java : Version 1.4 minimum IDE Eclipse 3.3 Europa : lien (Eclipse J2EE recommandée)‏lien.
Utilisation avancée.
Marc Le BihanStruts 1.x1 Marc Le Bihan. Struts 1.x2 Plan I)Développement web par Servlets et JSP. II)Prise en charge de Struts. III)Principe de fonctionnement.
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 11 Services Web et plateforme J2EE.
Les servlets Java Les bases de la génération dynamique HTML en Java Sébastien Limet etGérard Rozsavolgyi Licence Professionnelle
Module I-C3 : Applications Web IUT R&T 2e année
© 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des.
Chapitre 2 Développement Web avec les technologies JSP/Servlets
UV J2EE Module Java Expert
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
Struts.
1 / / 01 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB ARCHITECTURE WEB – COURS III
Développer des applications WEB avec Struts
M2 – MIAGE/SID Servlet et session M2 – MIAGE/SID
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Serveurs Web à contenu dynamique Emmanuel Cecchet INRIA Rhône-Alpes, Projet Sardes Rice University, Systems lab
Les Java Server Pages Dans ce chapitre, nous allons :
IFT 6800 Atelier en Technologies d’information Chapitre 5 Introduction aux Servelets & JSP.
JAVA EE 5 Q.R. C’est quoi une servlets?
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
MVC et applications Web
Transcription de la présentation:

Michel Coletta - Journées PATTERNS Avril Grenoble1 STRUTS Introduction Technologies Java Architecture Développement Enseigner quoi ?

Michel Coletta - Journées PATTERNS Avril Grenoble2 Historique 2001: première version : version 1.1 OpenSource Apache Jakarta Craig McClanahan Apache Jserv Tomcat JSF, JSTL 2003:supporté par Tomcat, weblogic,...

Michel Coletta - Journées PATTERNS Avril Grenoble3 Application Web Protocole HTTP: requete/reponse, sans état Programmation coté serveur CGI java

Michel Coletta - Journées PATTERNS Avril Grenoble4 Technologies Java Servlets JSP TagLib Bean & EJB Conteneur web

Michel Coletta - Journées PATTERNS Avril Grenoble5 Exemple

Michel Coletta - Journées PATTERNS Avril Grenoble6 Servlet Pur Java, dérivation de ServletHttp public class LookupServlet extends HttpServlet{ public void doGet( HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{ res.setContentType("text/html"); PrintWriter out= res.getWriter(); String theme = req.getParameter("theme"); String lieu = (theme.equalsIgnoreCase("PATTERN"))? "Grenoble":"erreur"; out.println(" ");

Michel Coletta - Journées PATTERNS Avril Grenoble7 Servlet(2) out.println(" "); out.println(" (servlet) "); out.println(" lieu: "); out.println(lieu); out.println(" "); }

Michel Coletta - Journées PATTERNS Avril Grenoble8 Servlet(3)

Michel Coletta - Journées PATTERNS Avril Grenoble9 JSP Html « enrichi » Struts Application <% String theme = request.getParameter("theme"); String lieu = (theme.equals("PATTERN"))?"Grenoble":"erreur"; %>

Michel Coletta - Journées PATTERNS Avril Grenoble10 JSP(2) Avantage: facile à développer (jsp) lieu :

Michel Coletta - Journées PATTERNS Avril Grenoble11 JSP(3)

Michel Coletta - Journées PATTERNS Avril Grenoble12 Tag Alternative aux scriptlets délicat à développer JSTL

Michel Coletta - Journées PATTERNS Avril Grenoble13 Bean Evite de mettre du code métier dans les servlets ou JSP. Utilisation prévue dans JSP avec les balises

Michel Coletta - Journées PATTERNS Avril Grenoble14 Application Web modèle en couches présentation métier persistance

Michel Coletta - Journées PATTERNS Avril Grenoble15 Architecture MVC modèle = contient la logique métier de l application ainsi qu une représentation des données persistantes. Vue = assure l interface avec l utilisateur(saisie et présentation des résultats). Contrôleur = assure l enchainement des vues et les accés au modèle. Core J2EE: pattern Front Controller.

Michel Coletta - Journées PATTERNS Avril Grenoble16 Core J2EE pattern catalog

Michel Coletta - Journées PATTERNS Avril Grenoble17 Front Controller

Michel Coletta - Journées PATTERNS Avril Grenoble18 MVC & STRUTS Vue = page JSP + Tag + bean Controleur = servlet Modèle = bean,…

Michel Coletta - Journées PATTERNS Avril Grenoble19 Architecture de Struts D après document de C. McClanahan

Michel Coletta - Journées PATTERNS Avril Grenoble20 Structure des répertoires Webappli pages.jsp WEB-INF web.xml struts-config.xml lib fichiers.jar classes fichiers.class

Michel Coletta - Journées PATTERNS Avril Grenoble21 Vue: Index.jsp taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> Struts Application

Michel Coletta - Journées PATTERNS Avril Grenoble22 Index.jsp (2) <html:form action="Lookup" name="lookupForm" type="wiley.LookupForm" > journées thématiques:

Michel Coletta - Journées PATTERNS Avril Grenoble23 Index.jsp(3) struts-html.tld web.xml /WEB-INF/struts-html.tld index.jsp

Michel Coletta - Journées PATTERNS Avril Grenoble24 ActionForm: LookupForm.java public class LookupForm extends ActionForm { private String theme = null; public String getTheme() { return (theme); } public void setTheme(String theme) { this.theme = theme; } public void reset(ActionMapping mapping, HttpServletRequest request) { this.theme = null; }

Michel Coletta - Journées PATTERNS Avril Grenoble25 LookupForm.java(2) déploiement dans WEB-INF/classes struts-config.xml public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors erreurs = new ActionErrors(); if((theme == null) || (theme.length() == 0)){ erreurs.add("theme", new ActionError("erreurs.theme.required")); } return erreurs; }

Michel Coletta - Journées PATTERNS Avril Grenoble26 struts-config.xml <form-bean name="lookupForm" type="wiley.LookupForm"/> <action path="/Lookup" type="wiley.LookupAction" validate="true" input="/index.jsp" name="lookupForm" > <message-resources parameter="wiley.ApplicationResources"/>

Michel Coletta - Journées PATTERNS Avril Grenoble27 Action public class LookupAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String lieu = null; String theme = null; String cible = new String("succes"); if ( form != null ) { LookupForm lookupForm = (LookupForm)form; theme = lookupForm.getTheme(); lieu = getLieu(theme); }

Michel Coletta - Journées PATTERNS Avril Grenoble28 Action(2) if ( lieu == null ) { cible = new String("echec"); ActionErrors erreurs = new ActionErrors(); erreurs.add(ActionErrors.GLOBAL_ERROR, new ActionError("erreurs.theme.inconnu",theme)); if(!erreurs.empty()) saveErrors(request,erreurs); } else { request.setAttribute("LIEU", lieu); } return (mapping.findForward(cible)); }

Michel Coletta - Journées PATTERNS Avril Grenoble29 Enseigner quoi ? Technologies Java patterns exemple simple projet alternative PHP:

Michel Coletta - Journées PATTERNS Avril Grenoble30 Biblio Site officiel: livres:

Michel Coletta - Journées PATTERNS Avril Grenoble31 Annexe public interface Action{ public String execute(HttpServletRequest req); } public class ActionServlet extends HttpServlet { private HashMap actions; public void init(ServletConfig config) { super.init(config); initActions(); } private void initActions() { actions = new HashMap(); actions.put("main-menu", new Action1("menu.jsp")); actions.put("add", new action2("add.jsp")); //... }

Michel Coletta - Journées PATTERNS Avril Grenoble32 Annexe (2) public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String next; Action cmd = lookupAction(req.getParameter("cmd")); next = cmd.execute(req); ActionToken.set(req); RequestDispatcher rd = getServletContext().getRequestDispatcher(next); rd.forward(req, res); } private Command lookupAction(String cmd){ return (Action)actions.get(cmd); }