首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

网页中实时显示数据库数据的有关问题?(应用了xmlhttp)

2012-01-30 
网页中实时显示数据库数据的问题?(应用了xmlhttp)我应用xmlhttp写了一个实时显示数据的程序,由于初次使用,

网页中实时显示数据库数据的问题?(应用了xmlhttp)
我应用xmlhttp写了一个实时显示数据的程序,由于初次使用,查了很多资料仍然不得要领,下面是我的代码,请大家看看,该怎么改,(数据库应用了hibernate)
dataread.jsp文件代码:
<%@page   contentType= "text/html;charset=GB2312 "%>
<%@page   language= "java "%>
<%@page   import= "java.util.* "%>
<%@page   import= "java.sql.* "%>
<%@page   import= "org.hibernate.Session "%>
<%@page   import= "org.hibernate.SessionFactory "%>
<%@page   import= "org.hibernate.cfg.Configuration "%>
<%@page   import= "org.hibernate.Query "%>
<%@page   import= "com.tianhe.dao.hbm.DCqttestdata "%>
<%@page   import= "com.tianhe.dao.hbm.DCqttestdataId "%>
<%@page   import= "com.tianhe.dao.hbm.DCqttestdataHome "%>

<!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Strict//EN "   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">

<html>
<head>
<title>
</title>
</head>
<body   bgcolor= "#ffffff ">
<script   type= "text/javascript ">
<%
        Configuration   conf=new   Configuration().configure();
        SessionFactory   sessionFactory   =   conf.buildSessionFactory();
        Session   s   =   sessionFactory.openSession();
        DCqttestdata   dcd   =new   DCqttestdata();
        Query   qr=s.createQuery( "from   DCqttestdata   as   dcqt   order   by   dcqt.id.revTime   desc ");
        String     sResult;
        if   (qr.list().size()> 0)
        {
            dcd=(DCqttestdata)qr.list().get(0);
        }
        sResult=dcd.getBsic()   +   "@@ "   +   dcd.getCellid()   +   "@@ "   +   dcd.getCh();
        out.print(sResult);
        //System.out.println(sResult);
%>
</script>
</body>
</html>


datadisplay.jsp代码
<%@page   contentType= "text/html;charset=GB2312 "%>
<%@page   language= "java "%>
<%@page   import= "java.util.* "%>
<%@page   import= "java.sql.* "%>
<!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Strict//EN "   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">

<html>
<head>
<title>
datadisplay
</title>
<script   type= "text/javascript ">
function   GetResult()
{
      try
      {
          //var   oBao   =   new   ActiveXObject( "Msxml2.XMLHTTP ");
          var   oBao   =   new   ActiveXObject( "Microsoft.XMLHTTP ");
          oBao.open( "GET ", "dataread.jsp ",false);
          oBao.send();
          var   strResult   =   oBao.responseText;


      }
      catch(e)
      {
          window.confirm(e);
      }
        var   arrTmp   =   strResult.split( "@@ ");
        Bsic   =   arrTmp[0];
        Cellid   =   arrTmp[1];
        Ch   =   arrTmp[2];
        var   getTable=   document.getElementById( "tb ");      
        var   row1   =   getTable.insertRow();
        var   cell1   =   row1.insertCell();
        cell1.innerText   =   Bsic;
        var   cell2   =   row1.insertCell();
        cell2.innerText   =   Cellid;
        var   cell3   =   row1.insertCell();
        cell3.innerText   =   Ch;
};
function   RemoveRow()
{
        //保留第一行表头,其余数据均删除.
        var   iRows   =   tb.rows.length;
        for(var   i=0;i <iRows-1;i++)
        {
                tb.deleteRow(1);
        }
};

function   MyShow()
{

        //2秒自动刷新一次,2秒取得一次数据.
        timer   =   window.setInterval(GetResult(),2000);
};
</script>
</head>
<body   onload= "MyShow() ">
<p> </p>
<table   width= "47% "     border= "1 "   cellpadding= "1 "   cellspacing= "0 "   id= "tb ">
    <tr>
        <td> Bsic </td>
        <td> Cellid </td>
        <td> Ch </td>
    </tr>
</table>
</body>
</html>

运行后,只显示表的表头,数据却检索不出来,大家帮忙看看该怎么写,先谢了!


[解决办法]
<html>
<body>
<script type= "text/javascript ">
function showCustomer(str)
{
if (str.length==0)
{
document.getElementById( "txtHint ").innerHTML= " ";
return;
}
var xmlHttp=null;
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject( "Msxml2.XMLHTTP ");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new ActiveXObject( "Microsoft.XMLHTTP ");
}
if (xmlHttp==null)
{
alert ( "Your browser does not support AJAX! ");
return;
}
var url= "getcustomer.asp ";
url=url+ "?q= "+str;
url=url+ "&sid= "+Math.random();
xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState==4)
{
document.getElementById( "txtHint ").innerHTML=xmlHttp.responseText;
}
};
xmlHttp.open( "GET ",url,true);
xmlHttp.send(null);
}
</script>
<form>
Select a Customer:
<select name= "customers " onchange= "showCustomer(this.value) ">


<option value= "ALFKI "> Alfreds Futterkiste
<option value= "NORTS "> North/South
<option value= "WOLZA "> Wolski Zajazd
</select>
</form> <p>
<div id= "txtHint "> <b> Customer info will be listed here. </b> </div>
</p>
</html>
----------------------------------
<%
response.expires=-1
dim customer_id
customer_id=trim(request.querystring( "q "))
sql= "SELECT * FROM CUSTOMERS WHERE CUSTOMERID= ' "+customer_id+ " ' "
'sql=sql & request.querystring( "q ")
'response.write sql
'response.end
Set Conn=Server.CreateObject( "ADODB.CONNECTION ")
ConnStr= "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=COMMONOR-C687BB "
Conn.Open ConnStr
Set rs=Server.CreateObject( "ADODB.RECORDSET ")
rs.Open sql, conn
'if(rs.count> )
'{
'response.write "aa "
'response.end
'}
response.write( " <table> ")
do until rs.EOF
for each x in rs.Fields
response.write( " <tr> <td> <b> " & x.name & " </b> </td> ")
'x.name是字段名
response.write( " <td> " & x.value & " </td> </tr> ")
'x.value是值
next
rs.MoveNext
loop
response.write( " </table> ")
%>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
----------------------
一共2个页面 一个是AJAXEXAMPLE.HTML 一个是getcustomer.asp
意思跟LZ的意思是一样的动态局部刷新 ,经测试可以运行
数据库是MS_SQL自己带的表````自己看一下吧

热点排行