Utilisation classe javax.servlet.http.HttpServletRequest [Résolu]

Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Dernière intervention
3 juin 2012
- - Dernière réponse : Burtons91
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Dernière intervention
3 juin 2012
- 3 juin 2012 à 21:13
Bonjour à tous,


j'ai une question concernant l'utilisation de la classe javax.servlet.http.HttpServletRequest.

Faut il rajouter un fichier servlet.jar au serveur tomcat où il y en a déjà un d'installer par défaut ?

Voici un extrait mon code de création de la session :
<%@ page import="java.sql.*,java.util.*,javax.http.*" %>
[...]

String sqlASK = "SELECT user,pwd FROM usager WHERE user='"+user+"' AND pwd='"+pwd+"'";
    rst = stmt.executeQuery(sqlASK);

    if(rst.next())
    {
              HttpSession session =request.getSession(true);
      String statutconnectionsrv="false";
      session.setAttribute("statutconnectionsrv",true);
      response.sendRedirect("accueil.jsp");
    }
    response.sendRedirect("test5.jsp");



Une fois que j'éxecute cette page j'obtient cette page d'erreur :
org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP: 

Une erreur s'est produite à la ligne: 30 dans le fichier jsp: /tstsession/verifuser.jsp
Duplicate local variable session
27: 	    if(rst.next())
28: 	    {
29: 	      String statutconnectionsrv="false";
30: 	      HttpSession session=request.getSession();
31: 	     // session.setAttribute("statutconnectionsrv",true);
32: 	      response.sendRedirect("accueil.jsp");
33: 	    }


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)



Là je suis perdu au niveau de l'utilisation de la classe javax, je comprend plus rien.

Merci d'avance.

Cordialement

Burton's91
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
3
Merci
Tu n'as pas le droit d'utiliser éclipse. Déjà pour un projet simple, c'est pas malin mais alors pour un projet web, c'est débile !

Mais bon, admettons, tu dois ajouter servlet.jar à ton classpath et non pas dans un dossier de ton application.

Ce que je te conseil de faire, c'est d'utiliser malgré tout éclipse, et ensuite, quand il faudra rendre ton projet, tu pourras copier les fichiers texte et ni vu ni connu. Parce que là, tu vas vraiment perdre beaucoup de temps je pense.

Merci cs_Julien39 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6
Date d'inscription
vendredi 11 mars 2005
Dernière intervention
1 juin 2012
3
Merci
Bon...
Alors Tomcat est un container de servlet, donc nul besoin d'ajouter servlet.jar et autres... Au contraire même, les jars ajoutés pourraient être en conflit avec ceux du serveur.
Ensuite pour les erreurs de compil, excuse-moi de dire ça, mais il suffit de lire le message d'exception:
1. "Duplicate local variable session" -> cela veut dire que tu déclares deux fois la variable session dans ta jsp -> Solution: au lieu de "HttpSession session=request.getSession();", tu mets juste "session=request.getSession();" (inutile de le faire plusieurs fois dans la même page sauf en cas de mise à jour de la session...)
2."The method requestedSessionId() is undefined" -> tu fais un out d'une methode qui n'existe pas, requestedSessionId()en l'occurence. Si tu veux récuperer l'id de la session, tu peux faire par exemple
HttpSession session = request.getSession();
String id = session.getId();
out.println("Session Id is : " + id);

Si tu ne sais pas ce qu'est un classpath, il serait bon de voir les bases de JAVA avant de te lancer dans les servlets, JSP et autres applications web... sans vouloir être désagréable.

Merci Pschh 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Pschh
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Salut,

Où as tu ajouté ton servlet.jar ? Dans le classpath de ton projet ou dans un dossier de l’arborescence de ton application (le dossier lib de WebContent par exemple).

Il faut le mettre dans le classpath.
Commenter la réponse de cs_Julien39
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Dernière intervention
3 juin 2012
0
Merci
Salut Julien39,

j'ai ajouté le servlet.jar dans le dossier /var/lib/tomcat6/common/lib/

Et sinon à quoi sert le classpath ?

Merci.

Cordialement

Burton's91
Commenter la réponse de Burtons91
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Dernière intervention
3 juin 2012
0
Merci
Je viens de rajouter le servlet-api.jar dans le dossier comme tu me l'as dit, çà à l'air de marcher. Mais quand je compile j'ai ce message d'erreur.


org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP: 

Une erreur s'est produite à la ligne: 32 dans le fichier jsp: /tstsession/verifuser.jsp
The method requestedSessionId() is undefined for the type verifuser_jsp
29: 	      statutconnectionsrv="false";
30: 	      HttpSession sessio=request.getSession(true);
31: 	      sessio.setAttribute("statutconnectionsrv",true);
32: 	      out.println(sessio=requestedSessionId());
33: 	      out.println(sessio=request.getSession());
34: 	      //response.sendRedirect("accueil.jsp");
35: 	    }


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)



Pour info je developpe sous ubuntu 11.04 avec TOMCAT6, la version de java-6-openjdk. Et je n'ai pas le droit d'utiliser eclipse du coup toutes pages je les redige avec Kate.

Merci.

Cordialement

Burton's91
Commenter la réponse de Burtons91
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Dernière intervention
3 juin 2012
0
Merci
D'accord, je vous remercie pour vos réponses.

Cordialement

Burton's91
Commenter la réponse de Burtons91

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.