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écuperer une requete client via un POST


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Par défaut Récuperer une requete client via un POST
    Bonjour,

    Je débute en Servlet et j ' ai donc commencé par un exo de base , mais même la je me plante lamentablement.

    J ' essayes d ' envoyer une String d ' un client vers ma Servlet en POST , mais je n ' arrive pas du tout à la récupérer ...(le flux reste vide)

    voici mon client:

    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
    try{
     
    		URL adresse = new URL("http://localhost:8080/V2T/SimulEcoute");
    		connection = (HttpURLConnection) adresse.openConnection();
    		connection.setRequestMethod("POST");
    		connection.setRequestProperty("Content-Length",
    				"" + Integer.toString(request.getBytes().length));
    		connection.setUseCaches(false);
    		connection.setDoInput(true);
    		connection.setDoOutput(true);
    		DataOutputStream out = new DataOutputStream(
    				connection.getOutputStream());
    		out.writeBytes(request);
    		System.out.println("SEND");
    		out.flush();
    		out.close();
     
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally {
     
    		      if(connection != null) {
    		        connection.disconnect(); 
    		      }
    et mon serveur

    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
    protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
     
    		System.out.println("DOPOST\n");	
    		BufferedReader reader = new BufferedReader(new InputStreamReader(
    				request.getInputStream()));
     
    		 String line;
    	      StringBuffer sb = new StringBuffer(); 
    	      while((line = reader.readLine()) != null) {
    	    	  System.out.println(reader.readLine());
    	    	  sb.append(line);
    	    	  sb.append('\r');
    	      }
    	      reader.close();
    	      	System.out.println(sb.toString());
    			PrintWriter out = response.getWriter();
    			out.print("Mime Message");
    			out.print(sb.toString());}}
    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Par défaut
    Bonjour,

    J ' ai finalement réussi a récuperer mon flux texte , mais j ' aimerai maintenant pouvoir envoyer un fichier(upload quoi) du client vers le serveur .

    Quel classe me conseillez vous d ' utiliser ( ce sont des petits fichiers)?
    FileOutputStream , ObjectOutputStream ou DataOutputStream ?

    Merci bien

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2009
    Messages : 132
    Par défaut
    Voici un exemple d'une méthode que j'ai fait pour un de mes projet

    le but est de faire une vérification du fichier uploader (sur l'extension du fichier)
    ensuite il renom le fichier, le copie sur le disque avec création d'un répertoire si cela n'existe pas et il inject en db le liens vers le fichier afin de le récupérer par la suite

    j'espère que ça peux t'aider

    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
    90
    91
    92
    93
    94
    95
    96
    97
    /**
    	 * Méthode pour l'upload de fichier sur le disque dur
    	 * 
    	 * @author Rudy Lemaitre
    	 * @param id
    	 *            : id du dossier lier au documents
    	 * @param request
    	 *            : le fichier à uploader
    	 * @return Boolean : si le fichier à la bonne extention alors la méthode
    	 *         retourne True, si le fichier n'a pas la bonne extension alors la
    	 *         méthode retourne False
    	 */
    	public Boolean UploadFile(String id, HttpServletRequest request) {
    		Boolean validation = false;
     
    		// On prépare les extension de fichier qui seront accepter en upload
    		List<String> listOfExtensions = new ArrayList<String>(5);
    		listOfExtensions.add("pdf");
    		listOfExtensions.add("doc");
    		listOfExtensions.add("docx");
    		listOfExtensions.add("xls");
    		listOfExtensions.add("xlsx");
     
    		// Création du format de la date pour le répertoire
    		SimpleDateFormat dateFormatDirectory = new SimpleDateFormat("yyyy");
    		String dateDirectory = dateFormatDirectory.format(new Date());
    		// Création du format de la date pour le fichier
    		SimpleDateFormat dateFormat = new SimpleDateFormat(
    				"yyyy_MM_dd-HH-mm-ss");
    		String date = dateFormat.format(new Date());
     
    		// on prépare pour l'envoie par la mise en oeuvre en mémoire
    		DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
     
    		ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory);
    		try {
    			List<FileItem> items = (List<FileItem>) uploadHandler
    					.parseRequest(request);
     
    			Iterator<FileItem> itr = (Iterator<FileItem>) items.iterator();
    			// au besoin on creer le dossier principal des archive et le sous
    			// dossier qui correspond à l'année en cour
    			new File(Constant.dossierUplaod + dateDirectory).mkdirs();
     
    			while (itr.hasNext()) {
    				FileItem item = (FileItem) itr.next();
     
    				// on récupère l'extension du fichier qui est uploader
    				String fileExtensionName = item.getName();
    				fileExtensionName = FilenameUtils
    						.getExtension(fileExtensionName);
    				log.debug("Récupération de l'extension du fichier terminée");
     
    				// on donne le chemin d'écriture au fichier ainsi que sont nom
    				// et on le met dans l'année en cours
    				File file = new File(Constant.dossierUplaod + dateDirectory, id + "_"
    						+ date + "." + fileExtensionName);
     
    				log.debug(file.getAbsolutePath());
     
    				// on vérifie si les extensions des fichier uploader sont
    				// acceptée ou pas
    				if (listOfExtensions.contains(fileExtensionName)) {
    					// on écrit le fichier sur le disque dur
    					item.write(file);
    					log.debug("fichier uploader : status ok");
     
    					// on écrit les informations de l'upload dans la db
    					AddDocumentLinkDAO documentLink = new AddDocumentLinkMySqlImpl();
     
    					try {
    						documentLink.addDocumentLink(id, file.getName(),
    								file.getAbsolutePath());
    						log.debug("Lien physique du fichier ajouter en base de données");
     
    						// on valide pour la valeur de retour;
    						validation = true;
    					}
    					catch (Exception e) {
    						log.error("Impossible d'ajouter le lien physique du document en base de données");
    						e.printStackTrace();
    					}
    				}
    				else {
    					log.error("L'extention du fichier n'est pas valide");
    				}
     
    			}
    		}
    		catch (FileUploadException ex) {
    			log.error("Impossible de faire un parsing du request", ex);
    		}
    		catch (Exception ex) {
    			log.error("Impossible d'uploader le fichier", ex);
    		}
    		return validation;
    	}

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Par défaut
    Bonjour,

    Je te remercie , je ne connaissais pas la classe ServletFileUpload.

    Je vais aller voir de ce coté la.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2009, 09h55
  2. savoir si une requete vient via ajax
    Par pokara dans le forum Langage
    Réponses: 1
    Dernier message: 11/02/2009, 17h15
  3. [AJAX] Recharger une requete SQL via lien<a href>
    Par pinkdev dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/06/2007, 13h30
  4. éxecuter une requete MySql via DOs
    Par jika dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/11/2006, 07h36
  5. [VBA] [ACCESS] Accès à une requete Access via VBA
    Par Yanmeunier dans le forum Access
    Réponses: 3
    Dernier message: 16/03/2006, 11h48

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