我是Ajax新生
阿贾克斯
function ajaxFunction() { if(xmlhttp) { var txtname = document.getElementById("txtname"); xmlhttp.open("POST","Namelist",true); xmlhttp.onreadystatechange = handleServerResponse; xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp.send("txtname=" + txtname.value); } } function handleServerResponse() { if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { document.getElementById("message").innerHTML=xmlhttp.responseText; } else { alert("Error during AJAX call. Please try again"); } } }
jsp
<form name="fname" action="Namellist" method="post"> Select Category : <select name="txtname" id="txtname"> <option value="Hindu">Hindu</option> <option value="Muslim">Muslim</option> <option value="Christian">Christian</option> </select> <input type="button" value="Show" id="sh" onclick="ajaxFunction();"> <div id="message">here i want to display name</div><div id="message1">here i want to display meaning</div> </form>
小服务程序
String ct=null; ct=request.getParameter("txtname"); Connection con=null; ResultSet rs=null; Statement st=null; try{ con=Dbconnection.getConnection(); PreparedStatement ps=con.prepareStatement("select name meaning from (select * from namelist order by dbms_random.value)where rownum<=20 and category='+ct+'" ); rs=ps.executeQuery(); out.println("name" + rs); **Here I have confusion,** } catch(Exception e) { System.out.println(e); }
我如何将servlet值显示给jsp。请帮我?或请提供一些良好的教程链接。
您必须进行以下更改:-在Servlet中:-在Servlet的response.setContentType("text/xml");顶部将响应内容类型设置为:- 。通过设置此项,我们可以以XML格式发送响应,并在JSP上检索它时,我们将基于XML的标记名来获取它。
response.setContentType("text/xml");
在Servlet中执行任何您想执行的操作…将值保存为
String uname="; uname="hello"; //some operation //create one XML string String sendThis="<?xml version='1.0'?>" +"<Maintag>" +"<Subtag>" +"<unameVal>"+uname+"</unameVal>" +"</Subtag>" +"</Maintag>" out.print(sendThis);
现在,我们将转到显示数据的JSP页面。
function getXMLObject() //XML OBJECT { var xmlHttp = false; try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") // For Old Microsoft Browsers } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") // For Microsoft IE 6.0+ } catch (e2) { xmlHttp = false // No Browser accepts the XMLHTTP Object then false } } if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); //For Mozilla, Opera Browsers } return xmlHttp; // Mandatory Statement returning the ajax object created } var xmlhttp = new getXMLObject(); //xmlhttp holds the ajax object function ajaxFunction() { if(xmlhttp) { xmlhttp.open("GET","NameList",true); //NameList will be the servlet name xmlhttp.onreadystatechange = handleServerResponse; xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp.send(null); } } function handleServerResponse() { if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { getVal(); } else { alert("Error during AJAX call. Please try again"); } } } function getVal() { var xmlResp=xmlhttp.responseText; try{ if(xmlResp.search("Maintag")>0 ) { var x=xmlhttp.responseXML.documentElement.getElementsByTagName("Subtag"); var xx=x[0].getElementsByTagName("unameVal"); var recievedUname=xx[0].firstChild.nodeValue; document.getElementById("message").innerText=recievedUname;//here } }catch(err2){ alert("Error in getting data"+err2); } }
至此您完成了。:)