Partage
  • Partager sur Facebook
  • Partager sur Twitter

Structurer un projet Java EE

Redirect Servelt bon ou mauvais traitement

Sujet résolu
Anonyme
    16 février 2017 à 13:43:20

    Bonjour ! Je viens poster ce message, un peu désespéré, je vous explique le contexte, je suis en formation, je suis en ECF actuellement, et mon projet étant de faire un ECommerce en Java EE, sauf sans dénigrer personne, je ne trouve pas de réponse concrète sur la bonne façon de faire les traitements de mes formulaire (via les servelts).

    Alors avant de me lancer dans ce projet, je cherche donc à savoir comment bien structurer le projet.

    Donc ma première tentative a été :

    OUVERTURE DU PROJET --------> doGet de ma servelt MAIN ------> renvoie d'une page jsp.

    Dans cette page jsp, j'ai un formulaire de login par exemple.

    Quand j'appuie sur le bouton submit, il m'envoie par l'action à la servelt Login, dans la methode doPost.

    Ici je fais mon traitement patati patata. ensuite je retourne à la servelt main car je voulais que ce soit le seul qui renvoie une page jsp (principe du controleur).

    Donc la, niquel mon traitement fonctionne. Sauf que mon url reste sur /login, au lieu de la racine. (ce qui fait qu'à chaque actualisation, je dois renvoyer les paramètre).

    ps : Je sais que l'url est changé par l'action du bouton.

    Du coup cette solution a été abandonnée pour en trouvé une meilleure.

    Je suis partit de ce problème d'url en me disant que si je voulais rester sur ma racine (Servelt Main, qui a pour url-pattern = "/")

    il fallait envoyer mon formulaire, du coup, par action="Main".

    De là, dans le Main doPost,

    je l'envoie dans la servelt Login.**

    Puis dans le login je fais le traitement,

    et comme tout à l'heure renvoyé à la servelt Main qui me retournera une page JSP.

    Cependant ceci ne fonctionne pas. **Il bug au doPost du Main, à la ligne ou je lui demande d'envoyer sur la servelt Login.

    Ps : Et la pour le coup, j'ai du mal à saisir pourquoi ça ne fonctionne pas.

    J'ai été voir mes camarades pour leur demander comment dois-je structurer mes traitement de Servelt. Rien de concret en est ressortit.

    La j'ai opté pour une method "JUST ONE SERVELT" qui fonctionne correctement. Mais mon principe était de séparer mes différents traitement pour ne pas me retrouver avec une seule Servelt à 1000 lignes.

    (étant donné le bon nombre de formulaire que je vais devoir traiter, ça me semblait logique d'utiliser plusieurs Servelt.)

    Donc concrètement je suis un peu embrouillée dans mon petit cerveau, j'aimerais un petit explication simple sans parler de traitement de données, juste niveau de redirection, comment pourrais je faire pour séparer les traitement dans mes formulaires, tout en ayant une seule Servelt qui m'affiche les jsp.

    Voilà ! Merci à ceux qui prendront le temps de m'aider! Je n'ai pas de code à proprement parler à vous donner maintenant. Les méthodes que j'ai adopté ne me conviennent pas, sois ne fonctionne pas. Donc je suis prête à tout entendre, à partir du moment où l'idée est concrète et correct à utiliser.

    Ps : Beaucoup m'ont dit de ne pas me prendre la tête, et de faire tout dans la servelt Main, et puis après trouvé un moyen de séparer tout ça, mais je suis plus dans la logique de faire "correctement" les choses directement, que de tout devoir re-changé à la fin.

    Bonne journée!

    Edit 15:31 :

    Je viens de trouver quelques choses qui me convient mieux, maintenant, est ce que c'est une bonne manière.. Voici les codes, j'ai fait un exemple très bien.

    Code Servelt MAIN :

    public class Main extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	private static String page=null;
    	login log=new login();
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Main() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println("MAIN DO GET");
    		if(page==null) page="vue";
    		
    		this.getServletContext().getRequestDispatcher("/WEB-INF/VIEWS/"+page+".jsp").forward(request, response);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println("MAIN DO POST");
    		boolean find=false;
    		find = log.authentification(request,response);
    		System.out.print(find);
    		this.getServletContext().getRequestDispatcher("/WEB-INF/VIEWS/"+page+".jsp").forward(request, response);
    	}
    
    }
    

    Celui de ma servelt Login :

    public class login extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public login() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected boolean authentification(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		String choix = request.getParameter("btnHidden");
    		System.out.print(choix);
    		return true;
    	}
    }


    et ma vue jsp :

    <form id="formLOG"  action="Main" method="post">
    	<input type="hidden" name="btnHidden" value="clients-authentification">
    	<input type="submit" value="Valider">
    	
    </form>

    Donc voilà, ceci me convient mieux, mais je suis pas sûre que ce soit réellement correct ^^'




    -
    Edité par Anonyme 16 février 2017 à 15:32:21

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      17 février 2017 à 14:38:29

      Euh oui mais je devais être ailleurs à ce moment ._.

      Milles excuses pour le dérangement ^^

      Bonne continuation!

      • Partager sur Facebook
      • Partager sur Twitter

      Structurer un projet Java EE

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown