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

Signaler
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
3 juin 2012
-
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
3 juin 2012
-
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
A voir également:

6 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
342
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.
Messages postés
6
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
1 juin 2012

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.
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
342
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.
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
3 juin 2012

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
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
3 juin 2012

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
Messages postés
4
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
3 juin 2012

D'accord, je vous remercie pour vos réponses.

Cordialement

Burton's91