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 :

[Débutant] Problème de compréhension?


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut [RESOLU] Problème de compréhension?
    Bonsoir à tous.

    Alors voilà, je commence tout doucement dans le cadre de mes cours le développement Web en JSP/Servlet.
    Pour ce faire, nous avons un mini-dossier à réaliser. Je possède les notions de Web dynamique vu que je développe en PHP depuis des années et que je commence l'ASP.NET.

    Seulement voilà, ici en Java, il y a quelque chose que je ne comprend pas... C'est forcément du à un problème de compréhension d'où le fait que je m'adresse à vous afin d'avoir une explication plus claire.

    Mon problème est le suivant:

    Je possède une page JSP de login, celle-ci envoie le contenu du formulaire à un servlet.
    Cette servlet vérifie les données et doit renvoyer une page "protégée" au client loggué (Je lui passe une variable de session pour l'identifier).
    Pour çà pas de soucis... néanmoins cette page protégée doit être une page temporaire qui au bout de TEMPS secondes doit se rafraichir.

    Seulement au bout de TEMPS secondes sur la page, JBoss me renvoie une erreur 500 portant sur un NullPointerException.
    Quand je regarde d'où provient l'erreur, il s'agit en fait de la 1ère ligne de ma servlet qui est supposée reprendre un champ du formulaire de login (du tout début donc...)

    Alors voilà... j'ai un problème de compréhension... pourquoi est-ce la servlet qui est rappelée alors que je ne veux absolument pas celà?

    Voici le code de 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
     public class InscriptionLogin extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
       static final long serialVersionUID = 1L;
       private Properties users = null;  	
     
    	/* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		/*CHARGEMENT DE LA PERSITENCE ETC */
    		String username = request.getParameter("pseudo").trim(); // LIGNE MARQUANT LE NULLPOINTEREXCEPTION
    		String password = request.getParameter("password").trim();
    		String page = request.getParameter("page"); // On sait alors s'il s'agit d'un login ou d'un register.
     
    		/* Des vérifications sur les paramètres */
     
    		// Traitement spécifique en fonction des pages.
    		if (page.equals("login.jsp")) {
    			/* Bla bla */
     
    			// PARTIE CENTRALE !!!!!
    			response.setHeader("Refresh", "10");
    			sendPage(request, response, "OK REFRESH PAGE", "KIKOULOL!", "WEB-INF/jsp/reglages.jsp");
    			return;
    			// PARTIE CENTRALE !!!!!// PARTIE CENTRALE !!!!!// PARTIE CENTRALE !!!!!// PARTIE CENTRALE !!!!!
    		} else if (page.equals("register.jsp")) {
    			// Bla bla
    		}
    	}  	
     
    	/* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doGet(request,response);
    	} 
     
    	/**
    	 * Envoyer la page avec un titre et un message adéquats.
    	 * @param request 
    	 */
    	protected void sendPage(HttpServletRequest request, HttpServletResponse response, String title,
    			String message, String path) throws IOException {
    		request.setAttribute("titre", title);
    		request.setAttribute("message", message);
    		path = response.encodeURL(path);
    		try {
    			request.getRequestDispatcher(path).forward(request, response);
    		} catch (ServletException e) {
    			e.printStackTrace();
    		}
    	}
    Et voici le code JSP de ma page reglages.jsp:

    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
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Réglage du jeu</title>
    </head>
    <body>
    <h2>${message}</h2>
    <form method="post" action=<c:url value = "StartGame.do"/>>
    	<label>Nombre de pions: </label>
    	<select name="nbPions">
    		<c:forEach var="i" begin="1" end="100" step="1">
      			<option value="<c:out value='${i}' />"><c:out value="${i}" /></option>
    		</c:forEach> 
    	</select><br/>
    	<label>Prise maximum: </label>
    	<select name="nbPrise">
    		<c:forEach var="i" begin="1" end="10" step="1">
      			<option value="<c:out value='${i}' />"><c:out value="${i}" /></option>
    		</c:forEach>
    	</select> 
    	<br/>
    	<input type="submit" value="Jouer!" />
    </form>
    </body>
    </html>
    Voilà je pense réellement qu'il s'agit d'un problème de compréhension de la logique... mais voilà

    Merci d'avance !

  2. #2
    Membre averti
    Inscrit en
    Février 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 29
    Par défaut
    Je ne suis pas sûr de comprendre cependant voici ce que je pense :

    Quand ta page se rafraichit, ce n'est peut-être pas la jsp mais la servlet qui est "re shootée". Du coup ton formulaire est vide et il n'y a peut être pas de paramètre qui est passé à ta servlet. Ta NullPointerException se passerait alors sur le trim(), méthode appelée sur un objet null (request.getParameter("pseudo") renvoie null si le paramètre n'est pas trouvé).

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 959
    Par défaut
    Le NullPointerException vient probablement de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String username = request.getParameter("pseudo").trim();
    Comme la page est rappelée, mais que la requête ne contient pas de champ pseudo, request.getParameter("pseudo") renvoie null. Vous essayez ensuite d'appeler la méthode trim d'un objet null, ce qui renvoie un NullPointerException.

    Le problème n'est pas tant l'exception, que le fait que cette servlet soit appelée sans raison. Comme vous n'avez pas fourni le code qui s'occupe du rafraichissement, je ne peux pas vous aider davantage.

  4. #4
    Membre averti
    Inscrit en
    Février 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 29
    Par défaut
    battu de 11minutes

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 959
    Par défaut
    Fichu travail, toujours à me distraire de developpez!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 214
    Par défaut
    Merci à vous.

    En fait, je n'avais pas saisi certaines notions fondamentales... (trop peu expliquer en cours... 6h pour apprendre à faire du JSP/Servlet ce n'est pas top...)

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/02/2014, 11h29
  2. Débutant : Problème de compréhension d'un script
    Par developman dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 12/04/2011, 22h20
  3. [Débutant] Problème compréhension code XAML
    Par JolyLoic dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 26/08/2009, 17h00
  4. [Débutant] Problème de compréhension
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 09/11/2006, 13h06
  5. [Débutant] problème de compréhension
    Par Sylvester dans le forum Général Java
    Réponses: 18
    Dernier message: 21/07/2005, 09h16

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