Foros del Web » Programación para mayores de 30 ;) » Java »

Servlet

Estas en el tema de Servlet en el foro de Java en Foros del Web. Hola, tengo un problemilla con un servlet. un applet en un determinado momento llama a un servlet. Este se encarga de leer un archivo que ...
  #1 (permalink)  
Antiguo 21/01/2008, 04:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Servlet

Hola, tengo un problemilla con un servlet. un applet en un determinado momento llama a un servlet. Este se encarga de leer un archivo que esta almacenado en la maquina local del usuario. Lo que quiero ahora es que esos datos los almacene en un fichero en el servidor, que suba los datos al servidor.alguien sabe como puedo hacer esto? hay que poner la ruta completa del servidor? Existe alguna clase especial? Se que los servlets pueden hacer esto, ya que son aplicaciones que se ejecutan desde el servidor
  #2 (permalink)  
Antiguo 21/01/2008, 06:10
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Servlet

La técnica se conoce como "file upload", si buscas applet servlet file upload en Google veras que hay bastantes referencias.
La idea es que el applet haga lo que hace un navegador cuando envia un fichero, y el servlet utilice alguna libreria para tratar esa petición especial.

S!
  #3 (permalink)  
Antiguo 21/01/2008, 12:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Servlet

pero de esa manera tengo que buscar el archivo para subirlo. Yo quiero que el servlet lea los datos de ese fichero y los guarde en el servidor, sin tener que buscar el archivo. Valdria poniendo simplemente en el servlet un fichero de salida con ruta ./fichero ?
Estoy usando tomcat.alguna idea de a donde lo subiria en caso de funcionar?
  #4 (permalink)  
Antiguo 21/01/2008, 13:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Servlet

¿Quien busca el fichero para subirlo? Si no usas un applet, el usuario ha de buscar el fichero para enviarlo desde el navegador con un campo file de un formulario html. Si usas un applet, el programa mismo escoge el fichero a subir y lo envia imitando lo que hace el navegador, pero sin que el usuario tenga que buscar el fichero.

El fichero lo pones... donde te vaya bien . Lo habitual es ponerlo en algun directorio temporal para que no moleste y luego moverlo a su sistio definitivo: BDD, directorio final. El donde acaba es cosa de tu programa, algun sitio tendras que tener pensado donde ponerlos.

S!
  #5 (permalink)  
Antiguo 22/01/2008, 11:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Servlet

como se tiene que subir sin que lo busque el usuario mi idea ha sido que lo haga el applet, el problema esta es que con el applet no se subirlo al servidor, por eso he optado por hacerlo con un servlet, que como se ejecuta en el servidor, al ser llamado recibe los datos y me imagino que podra guardarlos en el servidor sin problema. Mi problema esta en como pongo la ruta para que los guarde. lee un entero de un fichero local y quiero que lo escriba en un fichero del servidor. que ruta deberia poner?la direccion entera del servidor?con un ./ vale?
  #6 (permalink)  
Antiguo 23/01/2008, 01:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Servlet

Me parece que no tienes claros algunos conceptos. El fichero esta en la maquina cliente, el servlet se ejecuta en el servidor. Si tu no lo mandas de alguna forma (el navegador o un applet) el servlet no puede acceder a el. No hay mas vuelta de hoja. Imaginate que los programas en el servidor pudieran acceder a cualquier ordenador que accediera al servidor con un navegador.

Lo que tienes que hacer es aprender como enviar los datos al servidor, y lo normal ya que tienes el applet firmado y ya trata el fichero, que sea este el que lo mande.

¿Lo que tienes en el famoso fichero es unicamente un entero?

S!
  #7 (permalink)  
Antiguo 23/01/2008, 03:38
 
Fecha de Ingreso: diciembre-2007
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Servlet

nono, es un fichero que tiene las coordenadas de muchos puntos, uno en cada fila. es el applet el encargado de crearlo.luego al dar a un boton enviar, pensaba que un form action de html podia llamar al servlet y que ese se encargara de leerlo y subirlo al servidor. si me pudieras indicar como se podria subir al servidor a traves del applet... incluso pense en que el boton enviar fuese otro applet firmado para que pudiera acceder tambien al disco y quiza resultara mas facil, ya que el applet principal es mas complejo. pero como lo puedo subir al servidor? gracias

Última edición por javiega; 23/01/2008 a las 03:58
  #8 (permalink)  
Antiguo 23/01/2008, 06:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Servlet

Vuelta al princio entonces: "applet servlet file upload".

En el applet tienes que utilizar alguna libreria de comunicacion, por ejemplo HttpClient, que te gestione el envio de ficheros en formato "multipart". Por ejemplo, esta:
http://hc.apache.org/httpclient-3.x/...ipartpost.html
Y aqui un ejemplo de un programa que la usa para enviar un fichero:
http://svn.apache.org/viewvc/httpcom...18&view=markup

En el servidor, tienes que tratar la peticion de forma especial, ya que para enviar ficheros son especiales, y hay que usar librerias que las tratan. Aqui hablan de ello y listan una serie de posibilidades:
http://www.jguru.com/faq/view.jsp?EID=160

En tu caso no la enviaras desde HTML, pero da lo mismo por que las librerias que usas en el applet la envian como si fueran un navegador, para eso son.

S!
  #9 (permalink)  
Antiguo 23/01/2008, 10:01
 
Fecha de Ingreso: diciembre-2007
Mensajes: 57
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Servlet

pues muchas gracias, voy a ponerme a ello a ver que saco!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:13.