在jsp页面利用Ajax动态显示数据库中数据

在很多时候在服务器端的后台管理页面上需要显示数据库中某张表中的全部字段数据,这时候就需要根据数据库中的数据动态建立表格来显示。

这当然要用javascript实现,并用Ajax实现与服务器后台的Servlet通信。

话不多说上源码:

复制代码
 1 window.onload = function(){
 2     document.getElementById("show").onclick = function(){
 3         // 第一步:创建Ajax引擎
 4         var xmlHttp = ajaxFunction();
 5         // 第二步:处理服务器响应数据
 6         xmlHttp.onreadystatechange = function(){
 7             if (xmlHttp.readyState == 4) {
 8                 if (xmlHttp.status == 200 || xmlHttp.status == 304) {
 9                     // 接收响应结果
10                     var data = xmlHttp.responseText;
11                     if (data != "" && data != null && data != 0) {
12                         document.getElementById("showla").innerHTML = "";
13                         document.getElementById("showTa").innerHTML = "<tr><td style=\"width:40px;text-align:center;\">ID</td>" +
14                         "<td style=\"text-align:center;\">搭讪语</td><td style=\"text-align:center;\">地点</td></tr>"
15                         for (var i = 0, j = -1, k = 0.1; i < data.length; i++, j--, k++) {
16                             var id = eval(data)[i]["_id"];
17                             var wordsString = eval(data)[i]["_content"];
18                             var place = eval(data)[i]["_place"];
19                             var tableStr = "<tr><td id=\"" + i + "\"style=\"text-align:center;\"></td><td id=\"" +
20                             j +
21                             "\"style=\"text-align:center;\"></td><td id=\"" +
22                             k +
23                             "\"style=\"text-align:center;\"></td></tr>"
24                             document.getElementById("showTa").innerHTML = document.getElementById("showTa").innerHTML + tableStr;
25                             document.getElementById(i).innerHTML = id;
26                             document.getElementById(j).innerHTML = wordsString;
27                             document.getElementById(k).innerHTML = place;
28                         }
29                     }
30                     else 
31                         if (data == 0) {
32                             document.getElementById("showla").innerHTML = "<font color='red'>数据库错误!</font>";
33                         }
34                 }
35             }
36         }
37         // 第三步:打开一个连接
38         xmlHttp.open("POST", "../servlet/ShowWordsServlet", true);
39         // 如果是POST请求,需要重新设置编码格式
40         xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
41         xmlHttp.send("show=" + "show");
42     }

其中,接收到的servlet返回的数据格式是json格式,表格的行,列的id是通过i,j,k三个变量动态设置的。

用eval()函数来解析Servlet返回的json数据。json数据中包括的是每个在数据库中查找到的对象,_id是id字段,_content是语句字段,_place是地址字段。

利用for循环读取并组装字符串利用innerHTML显示在jsp页面上。

注意:innerHTML会覆盖之前的内容,所以要用诸如a.innerHTML = a.innerHTML + **;的方式进行追加。

相关推荐
七星静香10 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员11 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU11 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie614 分钟前
在IDEA中使用Git
java·git
Elaine20239130 分钟前
06 网络编程基础
java·网络
G丶AEOM31 分钟前
分布式——BASE理论
java·分布式·八股
落落鱼201332 分钟前
tp接口 入口文件 500 错误原因
java·开发语言
想要打 Acm 的小周同学呀33 分钟前
LRU缓存算法
java·算法·缓存
镰刀出海36 分钟前
Recyclerview缓存原理
java·开发语言·缓存·recyclerview·android面试
阿伟*rui3 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel