Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2010, 13:02
eliasake
 
Fecha de Ingreso: enero-2010
Mensajes: 1
Antigüedad: 14 años, 11 meses
Puntos: 0
Ajax-Servlet y acentos

HOla a todos. Soy Nuevo en este Foro. Ayúdenme pleaseeee.

Vengo batallando con esto.
Tengo un jsp con la siguiente directiva:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>


este jsp manda llamar una función javascript en un evento onclick de un botón:
<input type="button" value="Enviar a Panel" onclick="enviarComentarioAPanel()"/>

la función javascript que se manda llamar tiene un motor ajax para enviar datos a un servlet el cual lo procesará y lo guardaré en una tabla X. La función javascript es:

function enviarComentarioAPanel(){
var comentarios = encodeURIComponent(document.getElementById("coment arios").value);
var id_documento = document.getElementById("id_documento").value;
var id_comentario = document.getElementById("id_comentario").value;
var asunto = document.getElementById("asunto").value;
var id_usuario = document.getElementById("id_usuario").value;

var page = "ActionComentarios?command=enviarComentarioAPanel& id_usuario="+id_usuario;
page+="&id_documento="+id_documento+"&comentario=" +comentarios+"&asunto="+asunto;
page+="&id_comentario="+id_comentario;
//alert(page);

if(window.XMLHttpRequest){
req = new XMLHttpRequest();
}else if(window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
}

req.open("GET", page, true);
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
if(req.status == 200)
{
window.location.href("Aprobacion.jsp?command=R");
}
}
}
req.send(null);

}


en la variable "comentarios" le asigno un valor usando "encodeURIComponent". Hasta ahí todo bien. Se envía al servidor, al servlet y este lo guarda bien en la tablaX. Hasta aquí todo bien.
Al cambiar el valor con encodeURIComponent al acento de la palabra "águila", dentro del javascript, por ejemplo, pone %C3%A1guila, y eso está bien. Y se supone que así lo envío en el url.

EL PROBLEMA ES: cuando el servlet recibe el parámetro con el siguiente codigo:
String comentario = (request.getParameter("comentario")!=null)?request .getParameter("comentario"):"";

y al hacerle un System.out.println(comentario); me muestra otra cosa diferente a %C3%A1guila. Lo que me muestra es: águila y así se guarda en mi base de datos. YO quisiera que me respetara el formato que le estoy dando desde el javascript. Cómo puedo hacerle para que el servlet me respete el formato de encodeURIComponent que le dí en el javascript, y que me muestre %C3%A1guila en lugar de águila.???????

Gracias por sus aportaciones.