Rien n'est spécifiquement prévu dans l'Api pour gérer les connexions FTP. Mais à partir des RFC959 et 1123 et avec un peu de courage, vous pouvez faire votre propre client FTP.
Heureusement, d'autres programmeurs sont passés avant vous, et des bibliothèques sont à disposition :
Java FTP Client Library disponible sous licence LGPL, avec toutes les fonctions nécessaires.
<file href="FTPConnection.java">FTPConnection</file> également libre et complète.
La commande ping nécessite des paquets ICMP (Internet Control Message Protocol : voir http://www.faqs.org/rfcs/rfc792.html).Les bibliothèques standards de Java ne supportent pas ICMP. Il n'est donc pas possible d'effectuer de ping en Java sans avoir recours à du code natif ou un programme externe.
Une solution portable pourrait être disponible à partir de la version 1.5 de l'api.
Il existe différentes façons pour établir une communication entre une applet et une servlet. Les deux méthodes suivantes ne sont pas propres aux servlets, et peuvent être aussi utilisées entre 2 applications quelconques.
La méthode la plus proche du mode de fonctionnement d'une httpServlet est une communication HTTP; elle a l'avantage d'utiliser (en général) le port 80, et donc de franchir plus facilement les firewalls. La requête HTTP de l'applet peut se faire soit par GET, soit par POST (multipart).
<comment>Envoi de données par GET</comment>URL url = new URL("http://localhost/servlet?cle1=valeur1&cle2=valeur2");URLConnection conn = url.openConnection();
<comment>Envoi de données par POST</comment><br/>URL url = new URL("http://localhost/servlet");<br/>String data = "cle1=valeur1&cle2=valeur2");<br/>URLConnection conn = url.openConnection();<br/>conn.setDoOutput(true);<br/>OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());<br/>osw.write(data);<br/>osw.flush();<br/>osw.close();<br/>
<comment>Récupération de la réponse de la servlet</comment>BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = br.readLine()) != null) <comment>traitement des lignes</comment>br.close();
Pour envoyer la réponse à partir de la servlet, il suffit d'utiliser l'OutputStream de l'HttpServletResponse.
<comment>Réponse de la servlet</comment>String texte = "...";PrintStream out = new PrintStream(response.getOutputStream());out.println(texte);out.close();
Remarque: pour le passage des données (clés ou valeurs), si des caractères spéciaux sont employés, utiliser URLEncoder :
Ce document issu de http://www.developpez.com est soumis à la licence GNU FDL traduit en français ici.
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.