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 :

récupérer valeur d'un champ hidden


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Par défaut récupérer valeur d'un champ hidden
    salut. bon voilà dans ma page jsp j'ai un formulaire avec 3 champs hidden,l'utilisateur en cliquant sur un titre de chanson,ce titre est envoyé à une sevlet qui va continuer le traitement (à savoir copier le fichier son et le coller dans un autre répertoire)
    le problème c'est que ma servlet n'arrive pas à récupérer les valeurs transmises. voilà le code de la page 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
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <script language="JavaScript" type="text/javascript">
    <!--
    function gettitre ( selectedtitre )
    {
      document.myForm.titrechoisi.value = selectedtitre ;
      document.myForm.submit() ;
    }
    -->
    </script>
    <form action="Sontransfert" method="post" enctype="multipart/form-data" name="myForm">
    <input type="hidden" name="titrechoisi" /><a href="javascript:gettitre('goodbye my lover')">goodbye my lover</a>
    <input type="hidden" name="titrechoisi" /><a href="javascript:gettitre('tu trouveras')">tu trouveras</a>
    <input type="hidden" name="titrechoisi" /><a href="javascript:gettitre('white flag')">white flag-Dido</a>
    </form>
     
     
    pour la servlet voilà
    mport java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    @SuppressWarnings("serial")
    public class Sontransfert extends HttpServlet{
     
     
    	public static boolean copyFile(File source, File dest){
    		 try{
    		  // Declaration et ouverture des flux
    		  java.io.FileInputStream sourceFile = new java.io.FileInputStream(source);
     
    		  try{
    		   java.io.FileOutputStream destinationFile = null;
     
    		   try{
    		    destinationFile = new FileOutputStream(dest);
     
    		    // Lecture par segment de 0.5Mo 
    		    byte buffer[] = new byte[512 * 1024];
    		    int nbLecture;
     
    		    while ((nbLecture = sourceFile.read(buffer)) != -1){
    		     destinationFile.write(buffer, 0, nbLecture);
    		    }
    		   } finally {
    		    destinationFile.close();
    		   }
    		  } finally {
    		   sourceFile.close();
    		  }
    		 } catch (IOException e){
    		  return false; // Erreur
    		 }
     
    		 return true; // Résultat OK  
    		}
     
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    	throws IOException, ServletException{
    		File destinatFile = null;
    		File sourFile = null;
     
    	String s= (request.getParameter("titrechoisi"));
     
    	if (s =="goodbye my lover"){
    			destinatFile = new File("D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/Test/tel2/son/- Goodbye My Lover.mp3");
    		   sourFile = new File("D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/Test/tel1/son/- Goodbye My Lover.mp3");
    		}
    	if (s=="tu trouveras"){
    			destinatFile = new File("D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/Test/tel2/son/17-natasha_st-pier-tu_trouveras-magsenergy.mp3");
    		    sourFile = new File("D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/Test/tel1/son/17-natasha_st-pier-tu_trouveras-magsenergy.mp3");
    		}
    	if (s=="white flag"){
    		 destinatFile = new File("D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/Test/tel2/son/white flag-DIDO.wma");
    		     sourFile = new File("D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/Test/tel1/son/white flag-DIDO.wma");
    		}
     
    		copyFile(sourFile,destinatFile);
    }
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    	throws IOException, ServletException {
    		doGet(request, response);
    	}
     
    }


    l'erreur vient du fait que les files sont tjs à null (si j'ai bien compris)
    voilà le code d'erreur
    Etat HTTP 500 -

    --------------------------------------------------------------------------------

    type Rapport d'exception

    message

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception
    java.lang.NullPointerException
    java.io.FileInputStream.<init>(Unknown Source)
    com.servlet.test.Sontransfert.copyFile(Sontransfert.java:18)
    com.servlet.test.Sontransfert.doGet(Sontransfert.java:66)
    com.servlet.test.Sontransfert.doPost(Sontransfert.java:74)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

  2. #2
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Bonjour,
    Quelques remarques :

    1. Pourquoi mettre 3 fois le champ hidden dans ton formulaire ? C'est une source d'erreurs.

    2. N'utilises pas le == pour comparer des Strings, mais la fonction equals.

    3. Il vaut mieux déclarer les constants Strings en tant que constantes plutôt que de les mettre dans le code en direct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Déclaration des constantes en public final static, éventuellement dans une classe à part (on peut aussi les caser dans une Enum)
    public final static String GOODBYE_LOVER = "goodbye my lover";
     
    // utilisation de la méthode equals, en partant de la constante
    if (GOODBYE_LOVER.equals(s)){

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Par défaut
    merci pour les remarques!
    sauf que ça ne résoud pas encore le problème! une idée pour régler ça??

Discussions similaires

  1. Récupérer la valeur d'un champ hidden
    Par Msysteme dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/02/2015, 07h59
  2. récupérer plusieurs valeurs dans un champ hidden
    Par karimphp dans le forum Langage
    Réponses: 3
    Dernier message: 07/12/2006, 17h13
  3. Réponses: 6
    Dernier message: 15/09/2006, 20h51
  4. Réponses: 10
    Dernier message: 11/03/2006, 01h51
  5. Réponses: 1
    Dernier message: 22/12/2005, 11h29

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