rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Java + Appli web + HttpServletResponse

vsiguier, le mardi 18 décembre 2001 à 14:20:34
Bonjour,

Je cherche le moyen de renvoyer au client de mon appli web une réponse (HttpServletResponse) correspondant à 2 actions :
--> telechargement de fichiers
--> rafraichissement de l'affichage ( code html généré par une JSP )

Pour l'instant je réalise la fonctionnalité du download mais je ne sais pas comment formuler en même temps le rafraîchissement de la page.

Si quelqu'un a une idée, c'est avec grand plaisir !
Répondre à vsiguier  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
HackTrack, le mercredi 19 décembre 2001 à 08:58:33
Salut vsiguier!

Peux-tu préciser comment fonctionne ton application stp?

Je suppose que, sur ta page Web, tu as placé un lien vers le fichier à downloader et que tu forwardes ta requête vers une servlet.

Maintenant, qu'entends-tu par "rafraîchissement"? Juste afficher un message signalant que le download est terminé? Autre chose? Précise et j'essaierai de te répondre aujourd'hui même.

;-)
Répondre à HackTrack

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vsiguier, le mercredi 19 décembre 2001 à 09:42:49
Salut HackTrack !

Merci de consacrer un peu de temps à mon problème.

Pour le download tu as tout compris à savoir que l'action sur le bouton appelle une servlet qui effectue le traitement à déquate.
En ce qui concerne le rafraîchissement que je souhaite faire, avant ou après la séquence de download peu m'importe, il consiste à afficher le résultat d'une JSP que j'appelle par l'intermédiaire d'une servlet en temps normal ( cette page JSP contient le bouton de download + des informations à mettre à jour en fonction de l'action de download ).

Voilà ce que je peux te dire pour le moment, si tu as besion d'informations plus précises n'hesites pas.

Merci pour ton aide.
Répondre à vsiguier

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
HackTrack, le vendredi 21 décembre 2001 à 10:09:57
Voici la solution à laquelle je pense pour résoudre ton problème.

Sur ton bouton html "Download", définit l'action en donnant le chemin de ta servlet:

Exemple:
<button name ="download" value="<!--chemin_et_nom_du_fichier-->" action="/servlet/DownloadServlet">Download</button>

Dans ta servlet, définit une méthode qui va effectuer le téléchargement et qui te renvoie un boolean.
Tu appelles cete méthode dans ta méthode "doPost()", "doGet()" ou "service()".
Tu ajoutes un paramètre ("download") à la réponse dont la valeur est le résultat du download(tru ou false).
Tu forwardes ta requête vers ta JSP (DownloadFeedback.jsp).
Exemple:
public void doPost(HttpServletRequest request, httpServletResponse response){
//petit truc qui permet à l'utilisateur d'utiliser la méthode POST ou GET pour accéder à la servlet
handle(request, response);
}

public void doGet(HttpServletRequest request, httpServletResponse response){
//petit truc qui permet à l'utilisateur d'utiliser la méthode POST ou GET pour accéder à la servlet
handle(request, response);
}

public void handle(HttpServletRequest request, httpServletResponse response){
.
.
.
boolean hasBeenDownloaded = download(fileToDownLoad);
.
.
.
response.addParameter("download",hasBeenDownloaded);//je ne suis pas sûr de la syntaxe et du nom de la méthode. Vérifie dans les API.
getServletConfig().getServletContext().getRequestDispatcher("/jsp/DownloadFeedback.jsp").forward(request,response);
}

private boolean download(File file){
boolean isDownloaded = false;
//insère ici ton code pour downloader le fichier;
// si le fichier est downloadé, isDownloaded prend la valeur true
// sinon il reste à false
return isDownloaded;
}


Dans ta JSP (DownloadFeedback.jsp), tu dois utiliser la directive JSP "include", qui va inclure une servlet qui générera le code HTML à afficher
en fonction de la valeur du paramètre créé ci-dessus.
<jsp:include page="/servlet/CheckDownloadServlet" flush="true" />

Dans la méthode doPost() ou doGet() de la servlet (CheckDownloadServlet)(qui ne te servira qu'à générer ta page en fonction du paramètre),
tu dois effectuer un test et générer le code différemment suivant que le paramètre est "true" ou "false".

String download = request.getSession().getParameter("download");

if(download.equals("true")){
//génére ici le code html (le download s'est bien passé)
}else{
//génére ici du code html différent (le download ne s'est pas bien passé)
}

Et voilà!

Normalement, ça devrait fonctionner. J'espère que c'est clair, sinon n'hésite pas à me contacter.

;-) HackTrack
Répondre à HackTrack

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vsiguier, le vendredi 21 décembre 2001 à 12:18:35
Salut HackTrack !

J'ai essayé ce que tu m'as conseillé mais sans succès.
Il refuse de forwarder vers "/jsp/DownloadFeedback.jsp" malgré le fait que servletContext.getRequestDispatcher("/jsp/DownloadFeedback.jsp") n'est pas null !

Peut-être il y a-t'il un problème avec la manière dont je download le fichier au par avant ( dans la méthode boolean download(request, response) ) ... j'écris dans l'objet HttpServletResponse
les données du fichier zip à télécharger ( l_ByteArrayOutputStream ).

création du zip :
ByteArrayOutputStream l_ByteArrayOutputStream = new ByteArrayOutputStream();
ZipOutputStream l_ZipOutputStream = new ZipOutputStream(l_ByteArrayOutputStream);

écriture dans la reponse http :
ServletOutputStream l_ServletOutputStream = response.getOutputStream();
l_ServletOutputStream.write(l_ByteArrayOutputStream.toByteArray()); l_ServletOutputStream.flush();

Définition de l'entête de la réponse :
response.setContentType("application/zip");
response.setHeader("Content-Disposition","attachment; filename=View.zip;");

et enfin je renvoie true

Merci pour ton aide et comme d' hab si tu as une idée...
Répondre à vsiguier

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Kamel, le mardi 6 février 2007 à 14:14:38
Salut tous le monde,
la solution est "sendRedirect".
@+
Répondre à Kamel
Site web et application web (Résolu)Bonjour, Pouvez vous m'indiquer la différence entre une application web et un site web. Et merci www.commentcamarche.net/forum/affich-4593842-site-web-et-application-web
Problème java C# Web service (Résolu)Bonjour, Je suis en train de développer une application ayant les contraintes suivantes. Client en java et Web service en C# Mon problème est que je ne peux envoyer que des stings vers le web service (WS). Voulant transmettre une image voici ma... www.commentcamarche.net/forum/affich-4938270-probleme-java-c-web-service
BlingeeBlingee Alors tout d'abord, il faut peut-être préciser que Blingee n'est pas un programme que l'on peut télécharger et installer sur l'ordinateur mais une application web. Sommaire Comment créer un « Blingee » ? Etape1: charger une... www.commentcamarche.net/faq/sujet-8162-blingee
Applications pour entreprises sous LinuxLinux et les applications pour entreprises Vous pensez que GNU/Linux est inutilisable, ou presque, en entreprise ? Voulez-vous parier ? Perdu ;-) Voici des pistes sur les applications pour GNU/Linux pouvant servir en entreprise. 1 -... www.commentcamarche.net/faq/sujet-3680-applications-pour-entreprises-sous-linux
Ouvrir une application web vers extérieur (Résolu)Bonjour, Dans ma société, nous utilisons une application web pour notre progiciel. Je suis stagiaire en info et on me demande d'ouvrir l'application vers l'extérieur (Internet). Le serveur web est livré avec le progiciel donc on... www.commentcamarche.net/forum/affich-8223837-ouvrir-une-application-web-vers-exterieur
Probleme javascript passage de parametre (Résolu)Bonjour, j'ai une application web a developez mais avant sa je m'exercais a javascript et je suis tombé sur un petit probleme que voici: lorsque je fait dans un fichier var a='bonjour'; si je fait : alert(a); la j'ai... www.commentcamarche.net/forum/affich-5722271-probleme-javascript-passage-de-parametre
Pb de connexion à une BDD MySQL en JAVA (Résolu)Bonjour, Je débute en programmation JAVA et je suis déjà confronté à un problème bloquant. Je m'explique, je maintient une application WEB codée en JAVA et un des modules me pose problème. En effet, je veux faire une connexion à ma base de... www.commentcamarche.net/forum/affich-6042883-pb-de-connexion-a-une-bdd-mysql-en-java
Télécharger WebcamXPSi vous voulez partager des images vidéos issues de Webcam sur Internet, mais que vous avez rencontré des problèmes, utilisez rapidement cette application. WebcamXP est une application qui vous permettra de diffuser vos images issues de webcam sur... www.commentcamarche.net/telecharger/telecharger-34056479-webcamxp
Toutes les réponses pour « java + Appli web + HttpServletResponse »