Package servlets

Source Code of servlets.AdminServlet

package servlets;
/**
* Servlet de Controle
*
*
* @author aitelhaj
*
*/


import interfaces.catalogue.IMetierCatalogue;
import interfaces.clients.IMetierClients;
import interfaces.commandes.IMetierCommandes;
import interfaces.produits.IMetierProduits;

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.util.HashMap;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import actions.Action;
import actions.CreationCompteAction;
import actions.LoginAction;
import actions.LogoutAction;
import actions.MenuAction;
import actions.MesCommandesAction;
import actions.MonProfilAction;
import actions.VuePanierAction;
import actions.VueProduitAction;

public class AdminServlet extends HttpServlet {
 
  /**
   * Auto Generated UID
   */
  private static final long serialVersionUID = 2201880639118868111L;
 
 
  //private HashMap catalogue;
  private ServletContext context;
  private HashMap<String,Action> actions;
  private char SEP = File.separatorChar;     
  private static String PORT = "port";
  private static String HOST_RMI = "host_rmi";
 
  /**
   *
   */
  public void init(ServletConfig config)throws ServletException{
    super.init();
    //Récupération du contexte
    context = config.getServletContext();   
   
    String pageErreur = "erreur.jsp";
   
    //Initialisation de la hashmap des actions
    actions = new HashMap<String,Action>();
    actions.put("menu",new MenuAction("index.jsp",pageErreur));
    //actions.put("vuePanier",new NullAction("vuePanier.jsp"));
    actions.put("vuePanier",new VuePanierAction("vuePanier.jsp","login.jsp","message.jsp"));
    //actions.put("login",new NullAction("login.jsp"));
    actions.put("login",new LoginAction("login.jsp","login.jsp","vuePanier.jsp"));
    actions.put("logout", new LogoutAction("message.jsp","index.jsp"));
    //actions.put("creationCompte",new NullAction("creationCompte.jsp"));
    actions.put("creationCompte",new CreationCompteAction("creationCompte.jsp","creationCompte.jsp","login.jsp"));   
    actions.put("vueProduit",new VueProduitAction("vueProduit.jsp",pageErreur));
    actions.put("monProfil",new MonProfilAction("monProfil.jsp","login.jsp","monProfil.jsp"));
    actions.put("mesCommandes", new MesCommandesAction("mesCommandes.jsp","mesCommandes.jsp"));
   
   
    /*
     * Implementation de la couche de communication RMI
     * pour le metier.
     */
   
   
    String host_rmi = "localhost";
    int port = 1099;
   
    // Lecture depuis properties
    try {
      String portStr = context.getInitParameter(PORT);     
      port = Integer.parseInt(portStr);
      host_rmi = portStr = context.getInitParameter(HOST_RMI);
      System.out.println("[PORT_RMI] ="+port);
      System.out.println("[HOST_RMI] = "+host_rmi);
    }catch(Exception e){
      e.printStackTrace();
    }
   
    String URL_RMI = "rmi://"+host_rmi+":"+port+"/";
    try {
      System.out.println("Recuperation de la connexion RMI:");
      Registry reg = LocateRegistry.getRegistry(host_rmi,port);
      System.out.println("Registry trouve: "+reg.toString());
     
     
      String urlCatalogue = URL_RMI+"MetierCatalogue";
      String urlCommandes = URL_RMI+"MetierCommandes";
      String urlProduits = URL_RMI+"MetierProduits";
      String urlClients = URL_RMI+"MetierClients";
     
      System.out.println("Lookup Catalogue");
      IMetierCatalogue imCat = (IMetierCatalogue) Naming.lookup(urlCatalogue);
      System.out.println("Lookup Commandes");
      IMetierCommandes imCom = (IMetierCommandes) Naming.lookup(urlCommandes);
      System.out.println("Lookup Produits");
      IMetierProduits imPdts = (IMetierProduits) Naming.lookup(urlProduits);
      System.out.println("Lookup Clients");
      IMetierClients imCl = (IMetierClients) Naming.lookup(urlClients);
     
      System.out.println("Mise du metier en contexte");
      // On met le tout dans le servlet contexte
      context.setAttribute("metierCatalogue", imCat);
      context.setAttribute("metierCommandes", imCom);
      context.setAttribute("metierProduits", imPdts);
      context.setAttribute("metierClients", imCl);
     
      System.out.println("Metier catalogue trouve : "+imCat);
      //IMetierProduits imp = (IMetierProduits) reg.lookup("MetierProduits");
     
    } catch (RemoteException e) {
      e.printStackTrace();
      throw new ServletException("Erreur de connexion au serveur RMI");
    } catch (NotBoundException e) {
      e.printStackTrace();
      throw new ServletException("Erreur de recuperation d'une " +
          "classe distante");
    } catch (MalformedURLException e) {
      // TODO Auto-generated catch block
      System.out.println("URL mal formee");
      e.printStackTrace();
    }
   
    /*MetierCatalogue mc = new MetierCatalogue();
    ArrayList<Produit> catalogue = null;
   
    // On récupére la liste des catégories
    ArrayList<String> categories = null;
    try{
      categories = mc.getListeCategories();
      context.setAttribute("categories", categories);     
    }catch(MetierException me){
      me.printStackTrace();
      //req.setAttribute(Message.MESSAGE_ERREUR, Message.PAS_DE_CATEGORIES);
      //return erreur;
    }catch(RemoteException re){
     
    }*/
  }
 

  /**
   *
   */
  public void doGet( HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException  {
    try{
      String cmd = req.getParameter("cmd");
      //if(action != null){
        //On met le paramétre menu pour aller sur la page d'accueil
        Action a = (Action)actions.get(cmd);
        if(a == null){
          throw new Exception("Commande Erronée !");
        }
       
        System.out.println("cmd = "+cmd);
       
        String next = a.execute(req);       
        String suivant = SEP+next;
               
        System.out.println("suivant = "+suivant);
        RequestDispatcher rq = context.getRequestDispatcher(suivant);
        rq.forward(req,res);
       
      //}           
     
    }catch(Exception e){
      System.out.println("BLEM");
      e.printStackTrace();
      // On retourne à la page d'accueil
      RequestDispatcher rq = context.getRequestDispatcher("/index.jsp");     
      rq.forward(req,res);
    }   
  }
 
  public void doPost( HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException  {
    doGet(req,res);
  }
 


}
TOP

Related Classes of servlets.AdminServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.