[ kooole @ 05.02.2008. 01:20 ] @
Danas sam prvi put pokusao da uradim nesto sa Ajaxom i odmah zapelo. Pratio sam tutorial sa sun-ovog sajta, molio bih vas da pogledate gde gresim. Evo JSP strane: Code: <%@page contentType="text/html; charset=UTF-8" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> Web mail </title> <script type="text/javascript" > function getXmlRequest() { var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); return null; } } } return xmlHttp; } function setMessage(message) { var mdiv = document.getElementById("userIdMessage"); mdiv.innerHTML = "<div style=\"color:red\">Message: "+message+"</ div>"; } function saberi() { var req; req = getXmlRequest(); if (req!=null) { var idField = document.getElementById("userid"); var url = "/WebProjectTest/sabServlet?sab1=20&sab2=11"; req.open("GET", url, true); req.onreadystatechange = function() { if (req.readyState == 4) { alert("Response (responseText) : " + req.getResponseText); alert("Response (getElementByTagName) " + req.responseXML.getElementsByTagName("message")[0]); var message = req.responseXML.getElementsByTagName("message")[0]; setMessage(message.childNodes[0].nodeValue); } }; req.send(null); } } </script> </head> <body> <h1> TEST </h1> <form action="/WebProjectTest/startServlet" method="post"> <table border="0"> <tr> <td>Rezultat</td> <td> <div id="userIdMessage"></div></td> <tr> <tr> <td><input type="Button" onclick="saberi();"></td> <tr> </table> </form> </body> </html> A evo i Servlet-a, odnosno njegove doGet metode: Code: protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub super.doGet(req, response); String sab1 = req.getParameter("sab1"); String sab2 = req.getParameter("sab2"); System.out.println("Sab 1 i 2 su: " + sab1 + sab2); response.setContentType("text/xml"); response.setHeader("Cache-Control", "no-cache"); response.getWriter().write("<message>"+ sab1 + sab2 +"</message>"); } Ne obracajte mnogo paznju na logiku jer ovo je glupost koja samo treba da proradi i nista vise. Zabetonirao sam dva parametra u samom kodu, i sve sto zelim je da pri kliku na dugme server spoji ta dva parametra u jedan string i prikaze na klijentskoj strani taj string. Problem nastaje u funkciji req.onreadystatechange = function()... prvi alert mi prikazuje "undefined", a drugi "null"... kao da nista nije primljeno sa servera??? |