Je dois écrire une servlet qui retournera à l'utilisateur un csv qui contient des statistiques. Je sais comment retourner juste le fichier, mais comment puis-je le faire en montrant une barre de progression du processus de création de fichier? J'ai des difficultés à comprendre comment puis-je faire quelque chose pour montrer la progression de la création du fichier, tout en créant le fichier en même temps - si je crée une servlet qui retournera le pourcentage d'achèvement, comment peut-il garder le le même fichier qu'il crée en retournant une réponse toutes les x secondes au navigateur pour montrer la progression.Java servlet EE pour créer un fichier et montrer la progression tout en le créant
Répondre
Il existe deux approches fondamentalement différentes. L'un est la livraison asynchrone vraie en utilisant une approche telle que Comet. Vous pouvez voir quelques descriptions dans des articles tels que this. J'utiliserais cette approche où les données que vous fournissez sont naturellement incrémentales - par exemple les mesures en direct de l'instrumentation. Certains serveurs d'applications Java ont une bonne intégration entre leurs systèmes de messagerie JMS et la comète du navigateur.
L'autre approche est que vous avez un mécanisme d'interrogation. Le JavaScript dans le navigateur effectue des appels périodiques au serveur pour obtenir le statut (et peut-être le prochain morceau de données). L'avantage de cette approche est que vous utilisez un modèle de programmation très standard, moins de nouvelles choses à apprendre. Dans de nombreux cas, par exemple, «y a-t-il de nouvelles réponses à la question sur la pile de débordement sur laquelle je travaille? c'est tout à fait suffisant.
Votre défi peut être de déterminer toute information d'avancement utile. Comment sauriez-vous jusqu'où, à travers la génération du fichier CSV, vous êtes?
Si vous lancez une demande de longue durée d'une servlet, il est fort probable que vous fassiez effectiver un thread de travail pour faire ce travail. (Peut-être en utilisant JMS, peut-être en utilisant des travailleurs asynch) et immédiatement retourner une réponse au navigateur en disant "Compris, je pense". Cela garantit que vous n'êtes pas vulnérable aux délais d'attente de réponse Http. Le problème est alors comment déterminer la progression actuelle. À moins que le «travailleur» qui fait le travail ait un moyen de communiquer son progrès partiel, vous n'avez rien d'utile à dire. Ce genre de chose a tendance à être très spécifique à l'application. Certaines tâches ont très naturellement des points de progrès (pensez à imprimer nous savons combien de pages faire et combien d'imprimées) d'autres ne le font pas (pensez à déterminer si un nombre est premier - oui ou non, aucune étape intermédiaire utile peut-être)
- 1. Charger la barre de progression Java Servlet?
- 2. Comment utiliser un fichier de configuration pour le servlet Java EE?
- 3. Méthode en Java pour créer un fichier à un emplacement, en créant des répertoires si nécessaire?
- 4. Besoin d'aide pour utiliser la version Eclipse Java EE pour développer un projet de servlet
- 5. tout en créant archétype obtenir l'erreur suivante
- 6. comment créer GUID en Java EE
- 7. Quelle est l'empreinte (mémoire) d'une servlet Java EE?
- 8. Comment créer un fichier zip en Java
- 9. Comment implémenter la barre de progression (pour montrer la progression) en utilisant le concept de threading dans win 32?
- 10. MVC Web personnalisé pour un projet Java EE hérité
- 11. problèmes de duplication tout en créant un puzzle de sudoku
- 12. Framework Javascript pour le projet Java EE
- 13. Envoi d'un fichier en Java en utilisant un servlet
- 14. Retard dans l'environnement de production pour montrer la progression d'ajax?
- 15. EXC_BAD_ACCESS tout en créant simple UIAlertView
- 16. Comment se débarrasser de. et .. tout en scannant le dossier créant un tableau en php?
- 17. Java EE concurrence et verrouillage
- 18. Communication Java ME et Java EE
- 19. Différence entre Apache Struts et Java EE?
- 20. Java EE pour un développeur .NET
- 21. Classes abstraites et servlets en Java EE
- 22. Groovy, Netbeans et Java EE
- 23. Comment créer une servlet Java dans Eclipse?
- 24. Comment créer un fichier csv en utilisant servlet?
- 25. code Java pour créer un fichier JAR
- 26. Créer un fichier Excel en Java
- 27. La table version ultime Java (J2EE, Java EE, Servlet, JSP, JSTL)
- 28. Java EE 6 et Certutil
- 29. Authentification par programme en Java EE 6
- 30. créant des liens dans JList en java