javaee:td1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
javaee:td1 [2013/11/05 00:37] jcheronjavaee:td1 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== TD n°1, éléments de correction ======+====== TD n°1 Java EE, éléments de correction ======
 ===== Exercice 1 ===== ===== Exercice 1 =====
 Corrigé dans l'énoncé Corrigé dans l'énoncé
Ligne 86: Ligne 86:
 JSP et servlets, mise en place d’un contrôleur JSP et servlets, mise en place d’un contrôleur
  
 +|< 100% 20% - - - >|
 +^Package ^Classe/fichier ^Description^
 +|<html><div class="folder">net.td.metier</div></html> |<html><div class="class">Link</div></html> |Représente un lien Internet |
 +|<html><div class="folder">net.td.utils</div></html> |<html><div class="class">Gateway</div></html> |Classe passerelle entre métier et la Session |
 +|::: |<html><div class="class">Gui</div></html> |Classe technique destinée à l'affichage |
 +|<html><div class="folder">net.td.controller</div></html> |<html><div class="class">SLink</div></html> |Contrôleur de l'application |
 +|<html><div class="folder">WEB-INF/</div></html> |<html><div class="class">*.jsp</div></html> |Vues de l'application |
 +
 +__**Documentation :**__
 +
 +  * [[http://api.kobject.net/doc-td2/|Documentation des classes]]
 +
 +<html><div class="todo">Vues à implémenter :
 +<ul>
 +<li><b>listLinks.jsp</b> : Affichage de la liste des liens</li>
 +<li><b>error.jsp</b> : Affichage d'un message d'erreur récupéré dans l'attribut <b>errorMessage</b> de la requête</li>
 +<li>Implémenter ensuite la suite du TD2 : gestion des cookies</li>
 +</div></html>
 ==== Classe métier :Link ==== ==== Classe métier :Link ====
  
Ligne 265: Ligne 283:
 </body> </body>
 </html> </html>
 +</sxh>
 +
 +==== Contrôleur ====
 +
 +Le contrôleur gère :
 +  * La logique applicative (réponses aux requêtes, redirections, chargement des vues)
 +  * Le contrôle des données
 +
 +<sxh java;title:net.td.controller.SLink>
 +package net.td.controller;
 +
 +/**
 + * Servlet implementation class SLink
 + */
 +@WebServlet({ "/SLink", "*.do" })
 +public class SLink extends HttpServlet {
 + private static final long serialVersionUID = 1L;
 +
 + /**
 + * Retourne l'action sollicitée par la requête
 + * @param request
 + * @return
 + */
 + private String getAction(HttpServletRequest request){
 + String result="";
 + String[] parts=request.getRequestURI().split("/");
 + if(parts.length>0)
 + result=parts[parts.length-1];
 + return result;
 + }
 +
 +    /**
 +     * Charge une vue (jsp située dans le dossier protégé WEB-INF)
 +     * @param viewName
 +     * @param request
 +     * @param response
 +     * @throws ServletException
 +     * @throws IOException
 +     */
 + private void loadView(String viewName,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
 +    request.getRequestDispatcher("WEB-INF/"+viewName+".jsp").forward(request, response);
 +    System.out.println("redirection vers WEB-INF/"+viewName+".jsp");
 +    }
 +    /**
 +     * @see HttpServlet#HttpServlet()
 +     */
 +    public SLink() {
 +        super();
 +    }
 +
 + /**
 + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 + */
 + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 + PrintWriter out=response.getWriter();
 + String action=getAction(request);
 + switch (action) {
 + case "list.do":
 + loadView("listLinks", request, response);
 + break;
 + case "update.do":
 + loadView("frmLink", request, response);
 + break;
 + default:
 + System.out.println("Aucune action du nom de "+action+"(GET) à effectuer");
 + break;
 + }
 + }
 +
 + /**
 + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 + */
 + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 + String action=getAction(request);
 + switch (action) {
 + case "delete.do":
 + break;
 + case "update.do":
 + updateLink(request, response);
 + break;
 + default:
 + System.out.println("Aucune action du nom de "+action+"(POST) à effectuer");
 + break;
 + }
 + }
 +
 + /**
 + * Procédure de contrôle de la mise à jour/ajout d'un lien
 + * @param request
 + * @param response
 + * @throws ServletException
 + * @throws IOException
 + */
 + private void updateLink(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
 + Link aLink=new Link();
 + if(request.getParameter("nom")!=null && request.getParameter("adresse")!=null){
 + aLink.setNom(request.getParameter("nom"));
 + aLink.setAdresse(request.getParameter("adresse"));
 + if(aLink.isValid()){
 + Gateway.updateLink(aLink, request);
 + loadView("listLinks", request, response);
 + }else{
 + request.setAttribute("errorMessage", "Impossible de mettre à jour "+aLink);
 + loadView("error", request, response);
 + }
 + }
 + }
 +
 +}
 </sxh> </sxh>
  • javaee/td1.1383608231.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)