java servlets multipartform-data front-controller

java - ¿Puede un servlet determinar si los datos publicados son enctype="multipart/form-data"?



servlets multipartform-data (5)

Deberá leer los parámetros de solicitud para determinar esto, al menos en algún nivel. La clase ServletRequest tiene un método getContentType que querrá consultar.

Tengo un servlet que se usa para muchas acciones diferentes, que se usa en el patrón del controlador frontal . ¿Alguien sabe si es posible decir si los datos publicados en él son enctype = "multipart / form-data"? No puedo leer los parámetros de solicitud hasta que decida esto, por lo que no puedo enviar la solicitud al controlador adecuado.

¿Algunas ideas?


Puede llamar a un método para obtener el tipo de contenido.

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html#getContentType ()

De acuerdo con http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2 , el tipo de contenido será "multipart / form-data".

No olvides eso:

  1. request.getContent () puede devolver nulo.

  2. request.getContent () puede no ser igual a "multipart / form-data", pero puede comenzar con él.

Entonces, con todo esto en mente:

if (request.getContentType() != null && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1 ) { << code block >> }



Si va a intentar usar el método request.getContentType () presentado anteriormente, tenga en cuenta que:

  1. request.getContent () puede devolver nulo.
  2. request.getContent () puede no ser igual a "multipart / form-data", pero puede comenzar con él.

Con esto en mente, el cheque que debe ejecutar es:

if (request.getContentType() != null && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1 ) { // Multipart logic here }