Frage

Ich habe einen sehr harte Zeit Umgang mit multipart / form-data-Anfragen mit meinem Java-Anwendungsserver. Von dem, was ich herausgefunden haben, die Servlet 3.0-Spezifikation stellt Methoden wie HttpServletRequest.getParts (), die Daten ideal für die Verarbeitung der Form hochgeladen mein Servlet sein würde.

Allerdings ist diese Methode ein Teil der 3.0 Servlet-Spezifikation, und mein Anwendungsserver (Tomcat 6) ist dies noch nicht unterstützen. Selbst mit einer gültigen 3.0 web.xml-Datei und der Java EE 6-Libs, erhalte ich die folgende Ausnahme, wenn der Aufruf des getParts versuchen ():

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getParts()Ljava/util/Collection;

Server-Anwendung Switching ist nicht wirklich ein gangbarer Weg für dieses Projekt. Gibt es Bibliotheken von Drittanbietern zur Verfügung für die Verarbeitung von multipart / form-data in Java Servlets?

War es hilfreich?

Lösung

Schauen Sie sich Apache Commons Fileupload . Es gibt Ihnen eine programmatische API eine mehrteilige Anfrage und durchlaufen die Teile davon einzeln.

zu analysieren

habe ich es in der Vergangenheit für die einfache mehrteiliger Verarbeitung verwendet und es macht den Job in Ordnung zu kompliziert ohne.

Andere Tipps

Tomcat 6 nicht und wird nicht Servlet-Spezifikation 3.0 unterstützen. Sie sollten tun dies auf Tomcat 7, versuchen, aber ich bin nicht wirklich sicher, ob diese Funktionalität in der Beta-Version vorhanden ist, die derzeit verfügbar ist. Die Funktionalität wird erwartet, obwohl in der Produktionsfreigabe sein.

Sie könnten auch weiterhin in der anderen Antwort wie geschrieben Apache Commons Fileupload verwenden, oder Sie können Glassfish verwenden (abhängig von der aktuellen Phase und Art des Projektes).

, wenn wir verwenden post-Methode als Daten verschlüsselt werden, so dass wir auf gebrauchten servletfileupload haben angeforderten Daten zu erhalten und mit FileItemIterator wir können alle Formulardaten erhalten.

i Antwort bereits auf diesem Link Wie ein Formular verarbeiten geschickt in einem Google Web Toolkit Servlet

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top