ajax连接jsp或servlet,获取MySql为数据

      当然代码并没有严格按规范写。。。数据库连接和操作的代码应该单独写出来。。。 html 页面中的JS代码也应该单独写一个JS文件,然后引入页面即可。其次,jsp中的代码写到servlet中效果是一样的。。。

 

1.html代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
<script type="text/javascript" src="">
var xmlHttp;

//创建xmlHttpRequest对象
function createXmlHttpObject() 
{
    if(window.XMLHttpRequest) 
	{ 
		xmlHttp = new XMLHttpRequest(); 
	}else if(window.ActiveXObject) 
	{ 
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
	} 
    return xmlHttp;
}

function send()
{
    xmlHttp = createXmlHttpObject();
    
    var url = "refreshAjax.jsp?time="+Math.random(); //加一个随机数,解决浏览器缓存问题    
         
    if(xmlHttp)
    {
    	xmlHttp.onreadystatechange =callback;	//注册回调函数名,只需要函数名,不要加括号
    	//设置连接信息:
    	//第一个参数:表示http的请求方式,主要使用get和post
    	//第二个参数:表示请求的URL地址,get方式的请求参数也在URL中
    	//第三个参数:表示采用同步还是异步方式进行交互,true表示异步交互
    	xmlHttp.open("GET", url, true);	
    	
    	//发送数据,开始和服务器端进行交互
    	//同步方式下,send语句会在服务器端返回数据后才执行
    	//异步方式下,send语句会立即执行
    	xmlHttp.send(null);		
    }else{
    	alert("your browser does not support ajax");
        return;
    }    
}



//回调函数
function callback() 
{ 
	//判断对象的状态是交互完成
    if(xmlHttp.readyState == 4) 
    {
    	//判断http的交互是否成功
        if(xmlHttp.status==200)
        {
        	//获取服务器端返回的数据
        	var xmlDoc = xmlHttp.responseXML; 
        	
        	document.getElementById("name").innerHTML = xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;        
        	document.getElementById("tel").innerHTML = xmlDoc.getElementsByTagName("tel")[0].childNodes[0].nodeValue;
        	document.getElementById("city").innerHTML = xmlDoc.getElementsByTagName("city")[0].childNodes[0].nodeValue;        
        }else{
            alert(xmlHttp.statusText);
        }
    }
}      

function refresh()
{
	window.setInterval("send()",1000); //定时刷新
}  
</script>
	</head>
	<body οnlοad="refresh()">
		<form action=""> 
			选择用户: 
			<select name="employees" οnchange="send(this.value);">
				<option value="Tom">Tom</option>
				<option value="Jom">Jom</option>
				<option value="Sun">Sun</option>
			</select>
		</form>

		用户名称:
		<span id="name"></span>
		<br>
		电话:
		<span id="tel"></span>
		<br>
		城市:
		<span id="city"></span>
		<br>
	
	</body>
</html>

 

 

2。Jsp代码:

     连接的是MySql数据库。。。

 

<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>

<% 
    //这句至关重要,一定注意
    response.setContentType("text/xml;charset=gb2312");    
	
	StringBuffer str=new StringBuffer();
    
    	try {
        	Class.forName("com.mysql.jdbc.Driver");
        
			String url="jdbc:mysql://localhost:3306/devimonitor?";
			String userName="root";
			String password="root";
			Connection con=DriverManager.getConnection(url,userName,password);
     	
        	Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        	
        	String sql="select * from position order by id";
        	ResultSet rs=stmt.executeQuery(sql);
        	
        	if(rs.last()) 
        	{
        		str.append("<information>");
        		str.append("<name>");str.append(rs.getString(1).trim());str.append("</name>");
        		str.append("<tel>");str.append(rs.getString(2).trim());str.append("</tel>");
        		str.append("<city>");str.append(rs.getString(3).trim());str.append("</city>");
        		str.append("</information>");
    		}
    		stmt.close();
    		con.close();
    		rs.close();
    	} catch (Exception e) 
    	{
        	e.printStackTrace();
    	}
  
    out.print(str.toString());
%>

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值