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

相关推荐
我今晚不熬夜22 分钟前
Java语言实现Modbus协议通过用串口读取数据(以RTU为例)
java·网络协议
小锋java12341 小时前
Maven 4 要来了:15 年后,Java 构建工具迎来"彻底重构"
java·maven
卓怡学长1 小时前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
孫治AllenSun2 小时前
【MDC】使用 MDC 封装一个 LogMdcUtil 工具类
java·spring boot·后端
济*沧*海2 小时前
BaseMapper的介绍
java·windows·tomcat
plainGeekDev2 小时前
依赖管理 → Version Catalog
android·java·kotlin
淘源码d3 小时前
医学影像云PACS系统——PACS诊断工作站
java·源码·影像处理·医院管理系统·影像工作站·云pacs系统·dicom 标准通信
KobeSacre4 小时前
Semaphore 源码
java·开发语言
NiceCloud喜云4 小时前
Anthropic 一周三连发:Cowork 多端、Fable 5 按需付费、J-space 论文的技术解读
java·服务器·网络·人工智能·ai
SamDeepThinking4 小时前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试