2014-10-16 5 views
0

Заранее благодарю вас. Я вызываю сервлет с помощью ajax.I не могу получить ответ от сервлета в скрипте. мой файл JSP выглядит следующим образомВызов сервлета с использованием Ajax

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
<script > 
function makeRequest() 
{ 
     var xmlhttp; 
     if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=new XMLHttpRequest(); 
     } 
     else 
     {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function() 
     { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 

      var val =document.getElementById("t1").value; 
      alert(xmlhttp.status); 
      alert(xmlHttpRequest.responseText); 
      document.getElementById("mydiv").value=xmlHttpRequest.responseText; 
     } 
    }; 
    /*xmlhttp.open('GET','http://localhost:7001/ajaxx/f1',true); */ 
    xmlhttp.open('GET','f1.java',true); 
    xmlhttp.send(); 
    } 

    </script> 

    </head> 
    <body> 
    <form name="f"> 
    <p> Enter the name </p> 
    Name:<input type="text" id="t1"> <br/> 
    <input type="button" name="b1" value=" CLICK TO CONECT TO SERVER" onclick=makeRequest()> 
    <br/> 
    <div id="myDiv"><h2> AJAX </h2></div> 
    </form> 
    </body> 
    </html> 

Мой servelet файл (f1.java) выглядит следующим образом

package ajaxx; 

    import java.io.IOException; 
    import java.io.PrintWriter; 
    import javax.servlet.ServletException; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 

    public class f1 extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    public f1() 
    { 
    super(); 
    // TODO Auto-generated constructor stub 
    } 


    public void doGet(HttpServletRequest request, HttpServletResponse response) throws        
    { 
    System.out.println("hello"); 
    // TODO Auto-generated method stub 
    response.setContentType("text/html"); 
    PrintWriter pw=response.getWriter(); 
    response.setCharacterEncoding("UTF-8"); 
    pw.write("Welcome"); 

    } 

    } 

Пожалуйста, помогите мне. Я не могу вызвать сервлет.

+0

возможно дубликат [Как использовать сервлеты и Ajax?] (Http://stackoverflow.com/questions/4112686/how-to-use -servlets-and-ajax) – Mahesh

+1

Вы не можете вызвать сервлет с расширением .java .. в xmlhttp.open ('GET', 'f1.java', true); должен быть xmlhttp.open ('GET', 'f1', true); –

+0

Вы даже скомпилировали сервлет и сначала проверяете его? Убедитесь, что материал работает нормально, прежде чем возиться с Ajax. И было бы лучше начать использовать jQuery для создания Ajax. Старый ручной способ требует слишком много вещей, чтобы заставить его работать на кросс-платформенной платформе, которую вы, несомненно, пропустите. – developerwjk

ответ

0

Почему бы не использовать jquery для создания ajax-вызовов. В приведенном ниже примере данные из сервлета (f1.java), то есть строка «Добро пожаловать», будут возвращены из вызова ajax с помощью функции jquery $.get(), когда будет нажата кнопка с идентификатором #ajaxbtn. Эти возвращенные данные, содержащиеся в data, добавляются к div с идентификатором #destajax.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
    <!--include JQuery library--> 
<script src="js/jquery-1.11.3.js" charset="utf-8"></script> 
    <!--Using JQuery to make ajax call--> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#ajaxbtn').on('click', function(){ 
    $.get("f1", function(data){ 
     // the response from servlet(f1) is contained in data 
     // using ajax to append data from servlet(f1) to div 
     $('#destajax').html(data); 
    }) 
    }) 
    }) 
</script> 


</head> 
<body> 
<form name="f"> 
<p> Enter the name </p> 
    Name:<input type="text" id="t1"> <br/> 
<input type="button" name="b1" id="ajaxbtn" value=" CLICK TO CONECT TO SERVER"> 
<br/> 
<div id="myDiv"><h2> AJAX </h2></div> 
    <!--data("Welcome") from servlet(f1) is appended to the below div--> 
<div id="destajax"><div> 
</form> 
</body> 
</html> 

Servelet файл (f1.java)

package ajaxx; 

    import java.io.IOException; 
    import java.io.PrintWriter; 
    import javax.servlet.ServletException; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 

    public class f1 extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    public f1() 
    { 
    super(); 
    // TODO Auto-generated constructor stub 
    } 


    public void doGet(HttpServletRequest request, HttpServletResponse response) throws        
    { 
    System.out.println("hello"); 
    // TODO Auto-generated method stub 
    response.setContentType("text/html"); 
    PrintWriter pw=response.getWriter(); 
    response.setCharacterEncoding("UTF-8"); 
    pw.write("Welcome"); 

    } 

    }