Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parRolande Dias Modifié depuis plus de 10 années
2
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble1 STRUTS Introduction Technologies Java Architecture Développement Enseigner quoi ?
3
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble2 Historique 2001: première version 1.0 2002: version 1.1 OpenSource Apache Jakarta Craig McClanahan Apache Jserv Tomcat JSF, JSTL 2003:supporté par Tomcat, weblogic,...
4
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble3 Application Web Protocole HTTP: requete/reponse, sans état Programmation coté serveur CGI java
5
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble4 Technologies Java Servlets JSP TagLib Bean & EJB Conteneur web
6
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble5 Exemple
7
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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(" ");
8
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble7 Servlet(2) out.println(" "); out.println(" (servlet) "); out.println(" lieu: "); out.println(lieu); out.println(" "); }
9
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble8 Servlet(3)
10
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble9 JSP Html « enrichi » Struts Application <% String theme = request.getParameter("theme"); String lieu = (theme.equals("PATTERN"))?"Grenoble":"erreur"; %>
11
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble10 JSP(2) Avantage: facile à développer (jsp) lieu :
12
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble11 JSP(3)
13
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble12 Tag Alternative aux scriptlets délicat à développer JSTL
14
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble13 Bean Evite de mettre du code métier dans les servlets ou JSP. Utilisation prévue dans JSP avec les balises
15
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble14 Application Web modèle en couches présentation métier persistance
16
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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.
17
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble16 Core J2EE pattern catalog
18
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble17 Front Controller http://java.sun.com/blueprints/corej2eepatterns/Patterns/FrontController.html
19
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble18 MVC & STRUTS Vue = page JSP + Tag + bean Controleur = servlet Modèle = bean,…
20
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble19 Architecture de Struts D après document de C. McClanahan
21
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble20 Structure des répertoires Webappli pages.jsp WEB-INF web.xml struts-config.xml lib fichiers.jar classes fichiers.class
22
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble21 Vue: Index.jsp <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> Struts Application
23
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble22 Index.jsp (2) <html:form action="Lookup" name="lookupForm" type="wiley.LookupForm" > journées thématiques:
24
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble23 Index.jsp(3) struts-html.tld web.xml /WEB-INF/struts-html.tld index.jsp
25
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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; }
26
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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; }
27
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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"/>
28
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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); }
29
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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)); }
30
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble29 Enseigner quoi ? Technologies Java patterns exemple simple projet alternative PHP: http://phrame.itsd.ttu.edu/
31
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - Grenoble30 Biblio Site officiel: http://jakarta.apache.org/struts/ livres:
32
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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")); //... }
33
Michel Coletta - Journées PATTERNS - 3-4 Avril 2003 - 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); }
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.