Utilisation classe javax.servlet.http.HttpServletRequest

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

6 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
30 mai 2012 à 08:54
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.
3
Pschh Messages postés 6 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 1 juin 2012
30 mai 2012 à 17:53
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.
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
26 mai 2012 à 07:54
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.
0
Burtons91 Messages postés 4 Date d'inscription vendredi 25 mai 2012 Statut Membre Dernière intervention 3 juin 2012
26 mai 2012 à 09:46
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Burtons91 Messages postés 4 Date d'inscription vendredi 25 mai 2012 Statut Membre Dernière intervention 3 juin 2012
26 mai 2012 à 10:10
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
0
Burtons91 Messages postés 4 Date d'inscription vendredi 25 mai 2012 Statut Membre Dernière intervention 3 juin 2012
3 juin 2012 à 21:13
D'accord, je vous remercie pour vos réponses.

Cordialement

Burton's91
0
Rejoignez-nous