com.ejie.r01f.servlet.upload
Class UploadServlet
java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
com.ejie.r01f.servlet.upload.UploadServlet
- All Implemented Interfaces:
- java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
- public class UploadServlet
- extends javax.servlet.http.HttpServlet
Servlet que maneja el upload de ficheros al servidor.
CONFIGURACIÓN
-------------
El servlet se parametriza en el fichero de propiedades de la aplicación en la que
se utiliza. Para saber desde que aplicación se está utilizando el servlet, hay
que registrarlo en el fichero web.xml con un parametro appCode. Alternativamente,
se puede pasar el código de aplicación como parámetro (ver mas abajo).
<servlet>
<servlet-name>UploadServlet</servlet-name>
<description>Servlet Upload de ficheros</description>
<servlet-class>com.ejie.r01f.servlet.upload.UploadServlet</servlet-class>
<init-param>
<param-name>appCode</param-name>
<param-value>r01</param-value>
<description>Codigo de Aplicacion</description>
</init-param>
</servlet>
En el fichero de configuración de la aplicación existirá una sección en la cual se especifican los digesters:
Como es posible que se quieran hacer cosas diferentes con
diferentes ficheros que se suben en diferentes sitios, se puede especificar
un digester de ficheros que se encarga por ejemplo de guardarlos a disco, base de datos, etc:
<uploadServlet>
<maxFileSize>1024</maxFileSize> <!-- Tamaño máximo del fichero en bytes -->
<digesters>
<digester id='saveToFileDigester'>
<class>com.ejie.r01f.servlet.upload.SaveToFileDigester</class>
<config> <!-- Configuración especifica del digester SaveToFile -->
<dir>/datos/r01</dir>
-- Cualquier configuración que haga falta --
</config>
</digester>
<digester id='bdDigester'>
<class>com.ejie.r01f.servlet.upload.SaveToBD</class>
<allowedMimeTypes> <!-- tipos mime permitidos -->
<mimeType>text/css</mimeType>
</allowedMimeTypes>
<config> <!-- Configuración especifica del digester SaveToFile -->
<connection>stes</connection>
<table>P0105T00</table>
-- Cualquier configuración que haga falta --
</config>
</digester>
</digesters>
</uploadServlet>
FORMA DE UTILIZACIÓN
--------------------
Para llamar al uploadServlet hay que pasar como mínimo un parámetro que
indica el identificador del digester a utilizar. El servlet accederá al fichero
de propiedades de la aplicación para obtener la clase del digester a instanciar y
sus propiedades. Para ello, debe saber de que aplicación se trata, lo cual se puede
pasar de dos formas:
- Como parametro de inicialización del servlet en el web.xml (ver mas arriba)
- Como parametro de la request
Ejemplo de utilización:
<form name='uploadTest' id='uploadTest' action='/r01/r01uploadServlet' method='post' enctype="multipart/form-data">
<input type='hidden' name='appCode' value='r01'/> <!-- opcional si se parametriza en el web.xml -->
<input type='hidden' name='digesterID' value='saveToFileDigester'/>
<input type='file' name='fichero' value='Fichero'/>
<input type='button' name='boton' value='Enviar' onClick='JavaScript:uploadTest.submit()'/>
</form>
o bien:
<form name='uploadTest' id='uploadTest' action='/r01/r01uploadServlet?appCode=r01&digesterID=saveToFileDigester' method='post' enctype="multipart/form-data">
<input type='file' name='fichero' value='Fichero'/>
<input type='button' name='boton' value='Enviar' onClick='JavaScript:uploadTest.submit()'/>
</form>
- See Also:
- Serialized Form
Method Summary |
void |
init(javax.servlet.ServletConfig config)
Inicializacion del Servlet |
void |
service(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Método principal del Servlet. |
Methods inherited from class javax.servlet.http.HttpServlet |
service |
Methods inherited from class javax.servlet.GenericServlet |
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
UploadServlet
public UploadServlet()
init
public void init(javax.servlet.ServletConfig config)
throws javax.servlet.ServletException
- Inicializacion del Servlet
- Throws:
javax.servlet.ServletException
service
public void service(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException
- Método principal del Servlet.
- Throws:
javax.servlet.ServletException