AJAX——连接数据库并且返回XML数据
来源:互联网 发布:淘宝怎么做好关键词 编辑:程序博客网 时间:2024/05/29 08:41
AJAX可以返回xml数据,现在用的比较多的是json表达式。连接数据库需要用到驱动的jar包。提前加到lib文件夹下。
<html><head><script src="js/selectcustomer_xml.js"></script></head><body><form action=""><label>选择客户: <select name="customers"onchange="showCustomer(this.value)"><option value="1">Alfreds Futterkiste</option><option value="2">North/South</option><option value="3">Wolski Zajazd</option></select></label></form><b><span id="companyname"></span></b><br /><span id="contactname"></span><br /><span id="address"></span><span id="city"></span><br /><span id="country"></span></body></html>js文件如下:
var xmlHttp;function showCustomer(str) {//alert(str);xmlHttp = GetXmlHttpObject();if (xmlHttp == null) {alert("Your browser does not support AJAX!");return;}var url = "jsp/getcustomer_xml.jsp";url = url + "?q=" + str;url = url + "&sid=" + Math.random();xmlHttp.onreadystatechange = stateChanged;xmlHttp.open("GET", url, true);xmlHttp.send(null);}function stateChanged() {if (xmlHttp.readyState == 4) {alert(xmlHttp.responseText);alert(xmlHttp.responseXML.documentElement);var xmlDoc = xmlHttp.responseXML.documentElement;alert(xmlDoc.getElementsByTagName("compname")[0]);document.getElementById("companyname").innerHTML = xmlDoc.getElementsByTagName("compname")[0].childNodes[0].nodeValue;document.getElementById("contactname").innerHTML = xmlDoc.getElementsByTagName("contname")[0].childNodes[0].nodeValue;document.getElementById("address").innerHTML = xmlDoc.getElementsByTagName("address")[0].childNodes[0].nodeValue;document.getElementById("city").innerHTML = xmlDoc.getElementsByTagName("city")[0].childNodes[0].nodeValue;document.getElementById("country").innerHTML = xmlDoc.getElementsByTagName("country")[0].childNodes[0].nodeValue;}}function GetXmlHttpObject() {var xmlHttp = null;try {// Firefox, Opera 8.0+, SafarixmlHttp = new XMLHttpRequest();} catch (e) {// Internet Explorertry {xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}}return xmlHttp;}jsp文件如下:
<%@ page pageEncoding="UTF-8" import="java.sql.*,java.io.*" %><%String q = request.getParameter("q");System.out.println(q);Connection conn = null;Statement stmt = null;try{String url= "jdbc:mysql://localhost:3306/test?user=root&password=root&useUnicode=true&characterEncoding=GB2312";Class.forName("com.mysql.jdbc.Driver").newInstance(); conn= DriverManager.getConnection(url); String sql="SELECT * FROM CUSTOMERS ";sql=sql+" WHERE CUSTOMERID='"+q+"'";stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);response.setCharacterEncoding("utf-8");response.setHeader("ContentType","text/xml");response.setContentType("text/xml;charset=utf-8");//out.clear();PrintWriter out1 = response.getWriter();//out1.flush();out1.print("<?xml version='1.0' encoding='UTF-8'?>");while(rs.next()){System.out.println(rs.getString("companyname"));out1.print("<company>");out1.print("<compname>" +rs.getString("companyname")+ "</compname>");out1.print("<contname>" +rs.getString("contactname")+ "</contname>");out1.print("<address>" +rs.getString("address")+ "</address>");out1.print("<city>" +rs.getString("city")+ "</city>");out1.print("<country>"+rs.getString("country")+ "</country>");out1.print("</company>");}out1.flush();}catch(Exception e){out.print(e.getMessage());}finally{stmt.close();conn.close();}%>需要注意的是,处理xml时最好使用servlet。如果用jsp的时候设置如下:
response.setCharacterEncoding("utf-8");response.setHeader("ContentType","text/xml");response.setContentType("text/xml;charset=utf-8");这时候如果这个jsp文件中有html的标签和设置。返回的xml将无法读取。因此在这里把html和head标签全部去掉了。仅留下了jsp的代码。
0 0
- AJAX——连接数据库并且返回XML数据
- Ajax返回XML数据
- Ajax返回xml类型数据
- python——python连接oracle数据库,并且比较数据之间的差别
- 浅谈Ajax返回数据的3种格式——HTML、XML、JSON
- Ajax servlet 返回xml数据乱码问题
- ajax请求Struts2返回xml数据方法
- ajax处理返回的xml格式数据
- 学习笔记--Ajax:XML格式返回数据
- ajax传参给php,php连接服务器数据库并返回数据过程详解
- javaWeb使用servlet并且连接数据库向数据库插入数据
- C#连接MySQL数据库实现DataGridView定时更新数据——多结果集返回
- AJAX用jquery解析servlet返回回来的XML 数据
- jquery ajax 请求、解析返回来的xml数据
- ajax请求返回xml数据(含服务端代码)
- ajax xml返回
- jquery ajax从不同连接得到数据返回前台
- Dojo AJAX 访问C#Web 服务 并且返回JS 格式的数据
- 百度地图API3.2.0传入经纬度后显示基础地图
- java--proxool.xml异常Attempt to refer to a unregistered pool by its alias
- ES5严格模式
- xampp/apache多站点配置
- sql server2005查询分析器显示行号方法
- AJAX——连接数据库并且返回XML数据
- 第二讲 探秘微信公众号
- JAVA线程池管理及分布式HADOOP调度框架搭建
- ASP
- Java web----Servlet统计页面访问量
- Linux内存泄漏查询方法proc/status解释
- Android高效加载大图、多图解决方案,有效避免程序OOM
- mysql 把弄字段值置为NULL
- time .h头文件里的clock()的用法