Buenos días,
Estoy intentando soltarme con AJAX y de momento no me va muy bien... estoy haciendo un proyectito sencillo que consiste en un botón que al pulsarlo crea un objeto ajax y llama a un servlet que devuelve una cadena de texto que represento en 4 cajas de texto.
Tal y como lo tengo construido ni siquiera me llama al servlet, ya que he probado a ejecutar el servlet directamente submitiendo el formulario y colocando el servlet como action y si se ha ejecutado, os pongo el código por si me podéis ayudar donde tengo el error.
Página JSP:
Código:
<?xml version="1.0" encoding="UTF-8"?>
<%@page pageEncoding="ISO-8859-1" contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Prueba Ajax</title>
<link rel="STYLESHEET" type="text/css" href="estilo.css">
<script src="javascript.js" valor=50></script>
<script lang="javascript">
var http = nuevoAjax();
</script>
</head>
<body>
<div id="contenedor">
<div id="cabecera"><h1><span>Prueba Ajax</span></h1>
</div>
<div id="cuerpo">
<div id="dialogo">
<br>
<h1><span>Prueba Ajax</span></h1><br>
<form id="myForm" name ="myForm">
Pulsar: <input type="button" name="nomLinea" onclick="datosL()"/>
tl: <input type="text" name="txt1" id="txt1" />
km: <input type="text" name="txt2" id="txt2" />
orig: <input type="text" name="txt3" id="txt3" />
dest: <input type="text" name="txt4" id="txt4"/>
</form>
<br>
</div>
</div>
</div>
</body>
</html>
WEB.XML
Código:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet-mapping>
<servlet-name>ServlPrueba</servlet-name>
<url-pattern>/ServlPrueba</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>ServlPrueba</servlet-name>
<servlet-class>servl.ServlPrueba</servlet-class>
</servlet>
</web-app>
javascript.js
Código:
function nuevoAjax() {
var xmlHttpReq = false;
// to create XMLHttpRequest object in non-Microsoft browsers
if (window.XMLHttpRequest) {
xmlHttpReq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
// to create XMLHttpRequest object in later versions
// of Internet Explorer
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (exp1) {
try {
// to create XMLHttpRequest object in older versions
// of Internet Explorer
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (exp2) {
xmlHttpReq = false;
}
}
}
return xmlHttpReq;
}
function datosL(){
http.open("POST", "ServlPrueba", true);
http.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=ISO-8859-1');
http.onreadystatechange = function () {
if (http.readyState == 4) {
var response = http.responseText;
var vuelta = response.split('/');
document.myForm.txt1.value = vuelta[0];
document.myForm.txt2.value = vuelta[1];
document.myForm.txt3.value = vuelta[2];
document.myForm.txt4.value = vuelta[3];
}
}
var parametros = "param=1";
http.send(parametros);
}
servlPrueba.java
Código:
package servl;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author dasensio
*/
public class ServlPrueba extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res) throws java.io.IOException {
String respuesta;
respuesta = "Tipo";
respuesta += "/";
respuesta += "12.12";
respuesta += "/";
respuesta += "Origen";
respuesta += "/";
respuesta += "Destino";
res.getWriter().write(respuesta);
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws java.io.IOException {
doPost(req, res);
}
}
El error que me devuelve el servidor es:
feb 07, 2013 1:16:11 PM org.apache.catalina.core.ApplicationContext log
INFO: Marcando el servlet ServlPrueba como no disponible
feb 07, 2013 1:16:11 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Excepción de reserva de espacio para servlet ServlPrueba
java.lang.ClassNotFoundException: servl.ServlPrueba
at org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1711)
at org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1556)
at org.apache.catalina.core.DefaultInstanceManager.lo adClass(DefaultInstanceManager.java:525)
at org.apache.catalina.core.DefaultInstanceManager.lo adClassMaybePrivileged(DefaultInstanceManager.java :507)
at org.apache.catalina.core.DefaultInstanceManager.ne wInstance(DefaultInstanceManager.java:124)
at org.apache.catalina.core.StandardWrapper.loadServl et(StandardWrapper.java:1136)
...
Muchísimas gracias por anticipado, y un saludo.