Hola, estoy intentando llegar a un servlet desde una jsp mediante una llamada Ajax, pero no funciona, siempre me dá error. Tengo el servlet en mi web.xml, el servlet creado, pero no hay manera. No sé que me falta por hacer para que funcione. Mi código es el siguiente:
En la jsp:
Código:
<script type="text/javascript">
var urlIdioma = '/idioma.servlet';
jQuery.ajax({
type: 'GET',
cache: false,
url: urlIdioma,
dataType: 'text',
success: function (text, textstatus) {
alert('text'+text);
alert('textstatus'+textstatus);
},
error: function (xhr, textEstatus, errorThrown) {
alert('xhr'+xhr+', textEstatus'+textEstatus+', errorThrown'+errorThrown);
}
}); </script>
y en el servlet, lo siguiente:
Código:
package es.indra.aodb.maintenance.resources.web.action.gate;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class IdiomaServlet extends HttpServlet {
private static final long serialVersionUID = -7897645237016575215L;
@Override
public void service (HttpServletRequest request, HttpServletResponse response)
{
String clientLanguage = request.getHeader("Accept-Language");
((HttpServletResponse) request).setHeader("Accept-Language", clientLanguage);
request.getSession().setAttribute("idioma",clientLanguage);
}
}
Y en el web.xml:
Código:
<servlet>
<servlet-name>IdiomaServlet</servlet-name>
<servlet-class>es.indra.aodb.maintenance.resources.web.servlet.IdiomaServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>IdiomaServlet</servlet-name>
<url-pattern>/idioma.servlet</url-pattern>
</servlet-mapping>
Y no hace más que darme error, el 404. Creo que debe estar mal direccionado al servlet, o que me falte algo, pero ahora no veo qué es. Si me podéis echar un cable os lo agradecería, porque no sé dónde falla. Muchas gracias,
Un saludo