在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 + **;的方式进行追加。

相关推荐
Alan GEO实施教练2 分钟前
实用新型专利申请代理机构选择:关键考量因素与实操要点讲解
java·开发语言·python
gelald3 分钟前
JVM - 类加载机制
java·jvm·后端
Darkdreams5 分钟前
Java进阶-在Ubuntu上部署SpringBoot应用
java·spring boot·ubuntu
Roselind_Yi5 分钟前
云计算实验实操|Keystone安装配置+CloudSim仿真平台部署(超详细图文版)
java·经验分享·笔记·ubuntu·云计算·vim·虚拟机
xieliyu.6 分钟前
Java 基础:接口核心概念与实战详解
java·开发语言
不秃不少年8 分钟前
工厂方法模式(Factory Method)
java·面试·工厂方法模式
扶苏-su10 分钟前
Java反射实战:动态操作Car类属性
java
Alanzeeb10 分钟前
博客系统测试文档
java·javascript·功能测试·可用性测试
anzhxu11 分钟前
MySQL Workbench菜单汉化为中文
java
967712 分钟前
C++ 内存管理的核心——RAII 机制。两种锁 lock_guard, unique_lock
java·jvm·c++