IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Afficher message d'erreur sur une JSP provenant d'une Servlet


Sujet :

Servlets/JSP Java

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut Afficher message d'erreur sur une JSP provenant d'une Servlet
    Bonjour,

    Je re-développe une application que j'avais en PHP en java et je souhaiterai afficher un message d'erreur au dessus de mon formulaire en cas de mauvaise saisie comme sur l'image joint
    En php, je fessai comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //Mise en forme de la requête qui récupère le login et le mot de passe dnas la table users
                                $req = "Select login, mdp From users 
                                        Where login = '".$ident."'
                                        And mdp = '".$mdpCrypte."'";
     
                                //Exécution de la requête
                                $res = $connexion->query($req);
     
                                if($res!=false):
                                    //Retourne un enregistrement
                                    $row = $res->fetch();
     
                                    if($row == false):
                                        ?>
                                        <div class="alert alert-danger">
                                            <i class="icon-remove-sign"></i>
                                            <strong>Identifiant et / ou mot de passe incorrect(s)</strong> !
                                        </div>
                                        <?php
                                    else:
    ...
    Je souhaiterai réutiliser la même classe alert avec le même affichage mais je ne voie pas comment faire pour passer mon message et ou situé ce bout de code.

    Voici ma JSP login:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <body>
    	<!-- pre load bg imgs -->
    	<script type="text/javascript">
                    $(function() {
                            // bg switcher
                            var $btns = $(".bg-switch .bg");
                            $btns.click(function(e) {
                                    e.preventDefault();
                                    $btns.removeClass("active");
                                    $(this).addClass("active");
                                    var bg = $(this).data("img");
     
                                    $("html").css("background-image",
                                                    "url('./assets/img/bgs/" + bg + "')");
                            });
     
                    });
            </script>
     
    	<div class="login-wrapper">
    		<div class="box">
    			<div class="content-wrap">
    				<form id="signin" action="" method="post">
    					<h6>Log in</h6>
    					<label for="ident"><span class="help-required"></span></label> <input
    						class="form-control required" role="input" aria-required="true"
    						type="text" placeholder="Identifiant" name="ident" id="ident"
    						value="" /> <label for="mdp"><span class="help-required"></span></label>
    					<input class="form-control required" role="input"
    						aria-required="true" type="password" placeholder="Mot de passe"
    						name="mdp" id="mdp" value="" /> <a href="mdpPerdu.php"
    						class="forgot">Mot de passe oublié ?</a> <input type="submit"
    						value="Log in" name="submit" id="submitButton"
    						class="btn-glow primary login"
    						title="Cliquez ici pour vous connecter !" />
    				</form>
    			</div>
    		</div>
    	</div>
    </body>
    </html>
    Ma servlet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    package fr.intranet.servlets;
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import fr.intranet.bdd.UsersDAO;
    import fr.intranet.models.Users;
     
    import org.apache.commons.codec.digest.DigestUtils;
     
    public class Login extends HttpServlet {
    	public static final String VUE = "/WEB-INF/index.jsp";
    	public static final String VUECNX = "/WEB-INF/accueil.jsp";
    	public static final String CONF_DAO_FACTORY = "daofactory";
    	public static final String ATT_USER = "util";
     
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		req.getRequestDispatcher(VUE).forward(req, resp);
    	}
     
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
     
    		HttpSession session = req.getSession();
    		UsersDAO connexion = new UsersDAO();
    		Users user = new Users();
    		String login, mdp, mdpCrypte, message;
     
    		// Récupération des champs envoyé par le formulaire
    		login = req.getParameter("ident");
    		mdp = req.getParameter("mdp");
     
    		// Vérification de la valeur des champs (si vide/s, message d'erreur)
    		if (login.trim().isEmpty() || mdp.trim().isEmpty()) {
    			message = "Vous n'avez pas rempli tous les champs !";
    			this.getServletContext().getRequestDispatcher(VUE)
    					.forward(req, resp);
    		} else {
    			message = "";
     
    			//Cryptage mot de passe
    			mdpCrypte = DigestUtils.sha1Hex(mdp);
     
    			if (connexion.conexUser(login, mdpCrypte) == false) {
    				message = "Connexion échouée, mauvaise combinaison identifiant/mot de passe !";
    				this.getServletContext().getRequestDispatcher(VUE)
    						.forward(req, resp);
    			} else {
    				user = connexion.getInfoUser(login);
     
    				session.setAttribute("util", user);
     
    				// on redirige vers la page .jsp "Accueil"
    				this.getServletContext().getRequestDispatcher(VUECNX)
    						.forward(req, resp);
    			}
    		}
    		req.setAttribute("message", message);
    	}
    }
    C'est le message connexion échoué que je souhaiterai afficher.

    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // côté backend
    request.setAttribute("error", "Mon erreur")
     
    // côté vue (jsp)
    <% if(request.getAttribute("error") != null) {%>
        <div class="error">Une erreur a été rencontrée: <%=request.getAttribute("error")%></div>
    <%}%>
    Mais les jsp brutes de coffrage, c'est vraiment old school (java comme début des années 2000). Regarde du côté des nouveaux frameworks, voir des services rest exploités en javascript/jquery (c'est ce qui a le vent en poupe ces derniers temps). On déporte de plus en plus la construction de l'UI vers le front, et la récupération des données via du rest.

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Si je fait ceci sa me génère une exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    package fr.intranet.servlets;
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import fr.intranet.bdd.UsersDAO;
    import fr.intranet.models.Users;
     
    import org.apache.commons.codec.digest.DigestUtils;
     
    public class Login extends HttpServlet {
    	public static final String VUE = "/WEB-INF/index.jsp";
    	public static final String VUECNX = "/WEB-INF/accueil.jsp";
    	public static final String CONF_DAO_FACTORY = "daofactory";
    	public static final String ATT_USER = "util";
     
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		req.getRequestDispatcher(VUE).forward(req, resp);
    	}
     
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
     
    		HttpSession session = req.getSession();
    		UsersDAO connexion = new UsersDAO();
    		Users user = new Users();
    		String login, mdp, mdpCrypte, message;
     
    		// Récupération des champs envoyé par le formulaire
    		login = req.getParameter("ident");
    		mdp = req.getParameter("mdp");
     
    		// Vérification de la valeur des champs (si vide/s, message d'erreur)
    		if (login.trim().isEmpty() || mdp.trim().isEmpty()) {
    			message = "Vous n'avez pas rempli tous les champs !";
    			this.getServletContext().getRequestDispatcher(VUE)
    					.forward(req, resp);
    		} else {
    			message = "";
     
    			//Cryptage mot de passe
    			mdpCrypte = DigestUtils.sha1Hex(mdp);
     
    			if (connexion.conexUser(login, mdpCrypte) == false) {
    				message = "Connexion échouée, mauvaise combinaison identifiant/mot de passe !";
    				request.setAttribute("error", message);
    				this.getServletContext().getRequestDispatcher(VUE)
    						.forward(req, resp);
    			} else {
    				user = connexion.getInfoUser(login);
     
    				session.setAttribute("util", user);
     
    				// on redirige vers la page .jsp "Accueil"
    				this.getServletContext().getRequestDispatcher(VUECNX)
    						.forward(req, resp);
    			}
    		}
    		req.setAttribute("message", message);
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <div class="login-wrapper">
    		<div class="box">
    			<div class="content-wrap">
    				<form id="signin" action="" method="post">
    				<% if(request.getAttribute("error") != null) {%>
        <div class="error">Une erreur a été rencontrée: <%=request.getAttribute("error")%></div>
    <%}%>
    					<h6>Log in</h6>
    					<label for="ident"><span class="help-required"></span></label> <input
    						class="form-control required" role="input" aria-required="true"
    						type="text" placeholder="Identifiant" name="ident" id="ident"
    						value="" /> <label for="mdp"><span class="help-required"></span></label>
    					<input class="form-control required" role="input"
    						aria-required="true" type="password" placeholder="Mot de passe"
    						name="mdp" id="mdp" value="" /> <a href="mdpPerdu.php"
    						class="forgot">Mot de passe oublié ?</a> <input type="submit"
    						value="Log in" name="submit" id="submitButton"
    						class="btn-glow primary login"
    						title="Cliquez ici pour vous connecter !" />
    				</form>
    			</div>
    		</div>
    	</div>
    </body>
    </html>
    java.lang.NullPointerException
    fr.intranet.servlets.Login.doPost(Login.java:56)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    C bon résolut!!!
    il s'agit de req à la place de request

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher message d'erreur dans la JSP
    Par Roune dans le forum Spring
    Réponses: 1
    Dernier message: 08/05/2015, 12h00
  2. Réponses: 1
    Dernier message: 12/12/2011, 10h07
  3. Appeler une JSP à partir d'une JSP
    Par fessebleu dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 23/02/2011, 01h07
  4. Réponses: 1
    Dernier message: 14/12/2006, 17h47
  5. Réponses: 8
    Dernier message: 09/06/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo