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

error en liga a Servlet

Estas en el tema de error en liga a Servlet en el foro de Java en Foros del Web. Hola amigos, en un jsp genero un listado de ficheros en un servidor, en dicho listado pongo un link para abrir los ficheros, lo cual ...
  #1 (permalink)  
Antiguo 29/01/2014, 17:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Pregunta error en liga a Servlet

Hola amigos, en un jsp genero un listado de ficheros en un servidor, en dicho listado pongo un link para abrir los ficheros, lo cual hago por medio de un servlet, funciona muy bien, salvo cuando los ficheros en su nombre incluyen caracteres especiales, del link ocupo el evento onclic para mandar a llamar el servel, en código html este sería mi evento:

Código:
onclick="window.open('/LinkQuejas/DescargaFicheroServlet?arch=20140010_Documentación Josué Martínez.pdf');"
Como ven, hago una llamada a mi servelt, pero en el ejemplo que les pongo hay acentos, y la liga que me resulta al hacer clic es:

Código:
http://localhost:8084/Proyecto/DescargaFicheroServlet?arch=20140010_Documentaci%F3n%20Josu%E9%20Mart%EDnez%20Rangel.pdf
obviamente no me abre el archivo, quisiera saber si hay alguna opción para resolverlo, ya intente con ESCAPE, pero no me funcionó, si tienen alguna sugerencia se los agradecería mucho.

Saludos!
__________________
Wow! No se que decir...
  #2 (permalink)  
Antiguo 29/01/2014, 17:59
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: error en liga a Servlet

He probado esto al recibir el parámetro en mi servlet sin mucho éxito:

Código:
System.out.println("PRIMERO : " + request.getParameter("arch"));
            System.out.println("NOMBRE FILE : " + URLEncoder.encode(request.getParameter("arch")));
            System.out.println("TRES: " + URLEncoder.encode(request.getParameter("arch"), "iso-8859-1"));
dando como resultado:

Código:
PRIMERO : 20140010_Documentaci?n Josu? Mart?nez Rangel.pdf
SEGUNDO : 20140010_Documentaci%3Fn+Josu%3F+Mart%3Fnez+Rangel.pdf
TERCERO: 20140010_Documentaci%3Fn+Josu%3F+Mart%3Fnez+Rangel.pdf
__________________
Wow! No se que decir...
  #3 (permalink)  
Antiguo 30/01/2014, 03:08
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: error en liga a Servlet

Cita:
PRIMERO : 20140010_Documentaci?n Josu? Mart?nez Rangel.pdf
SEGUNDO : 20140010_Documentaci%3Fn+Josu%3F+Mart%3Fnez+Rangel .pdf
TERCERO: 20140010_Documentaci%3Fn+Josu%3F+Mart%3Fnez+Rangel .pdf
¿De donde sacas esto?¿De la consola?

Ten en cuenta que la consola no tiene por qué estar en ISO-8859, por lo que aunque la cadena esté correcta en la variable al pintarla te aparece incorrecta. Usar system.out para depurar código no es buena idea, y menos en el caso de problemas de codificación.

La mejor forma de comprobar que estás parseando bien es que en debug mires el contenido de la variable, o directamente tratar de descargar el fichero.

Aparte, ¿por qué usas URLEncoder? Tú ya tienes la cadena escapada, lo que quieres es recuperar la original. Usa URLDecoder.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 30/01/2014, 11:42
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: error en liga a Servlet

Pues es cierto, no tiene sentido lo que probé, de igual modo lo que he intentado me falla, no se como enviar la petición al servlet sin que me convierta los caracteres especiales en la cadena :(, tendré que validar la carga de archivos en su nombre, no quería limitar al usuario en eso
__________________
Wow! No se que decir...
  #5 (permalink)  
Antiguo 30/01/2014, 12:59
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: error en liga a Servlet

Cita:
Iniciado por zyon Ver Mensaje
Pues es cierto, no tiene sentido lo que probé, de igual modo lo que he intentado me falla, no se como enviar la petición al servlet sin que me convierta los caracteres especiales en la cadena :(, tendré que validar la carga de archivos en su nombre, no quería limitar al usuario en eso
No tienes porque llegar a ese extremo, simplemente puedes cambiar el nombre al documento cuando el usuario lo sube al sistema.

Un saludo.
  #6 (permalink)  
Antiguo 30/01/2014, 16:23
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: error en liga a Servlet

No debo modificar nada de los archivos con el sistema, son cargad e archivos de evidencias para un área y deben ir tal cual los usuarios los cargan :/
__________________
Wow! No se que decir...

Etiquetas: jsp
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 04:52.