Foros del Web » Programando para Internet » Javascript »

Llamada a servlet con AJAX desde jsp

Estas en el tema de Llamada a servlet con AJAX desde jsp en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/02/2013, 04:56
 
Fecha de Ingreso: febrero-2013
Ubicación: Sevilla
Mensajes: 5
Antigüedad: 11 años, 2 meses
Puntos: 0
Llamada a servlet con AJAX desde jsp

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.

Última edición por dasensio; 07/02/2013 a las 06:27 Razón: Añadir información del error que se produce

Etiquetas: ajax, formulario, html, input, js, jsp, llamada, servlet
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 11:42.