Return 数据从 JavaScript 到 Servlet?可能的?
Return data to Servlet from JavaScript? Possible?
我正在尝试使用 JDBC 实现一个 Servlet。
我的想法是,当用户使用登录表单登录时,他将能够在 MySQL 中看到可用数据库的列表。所以我在 Servlet 上动态生成它。使用下拉列表向用户显示数据库。
现在,当用户单击任何可用的数据库时,我使用 JavaScript 来检查用户选择了哪个数据库。现在我想将该值从 JavaScript 检索到我的 servlet 中。基于所选的数据库,我想向用户显示数据库中可用表的列表。
这可能吗?如果不行那还有别的办法吗??
下面是动态生成下拉菜单的示例代码。
ResultSet r = dbmetadata.getCatalogs();
ResultSetMetaData metadata = r.getMetaData();
int colCount = metadata.getColumnCount();
int i;
out.println("<select id='db' name='db'onChange= 'myFunction();'>");
out.println("<option value = -1>--Select Database--</option>");
int value = 1;
while(r.next())
{
for(i=1;i<=colCount;i++)
{
out.println("<option value = " + value + ">" + r.getString(i) + "</option>");
}
k++;
}
out.println("</select>");
JavaScript 代码看起来像这样:
function myFunction()
{
var select = document.getElementById("db");
var dbSelected = select.options[select.selectedIndex].text;
var x = document.getElementById("dbs");
x.innerHTML = "You have selected " + dbSelected;
};
谢谢你:)
您可以通过
向servlet发送post请求
// Send the data using post
var posting = $.post("/GetAllTables",{dbname:"myydb"});
// When the POST request is done..
// data: The output printed in servlet
posting.done(function(data) {
// Put the results in a div
$("#view").append(data+"<br/>");
//you can also take data string and split it with ,(comma) and append this tablenames to a dropdown etc.
});
在 servlet 中
String dbName=request,getParameter("dbName");
//generate all table name in string like
String tables="table1,table2,table3"
// Get PrintWriter obj using getWriter() in HttpServletResponse
PrintWriter pw=res.getWriter();
// Print, that's it!!
pw.println(tables);
您也可以使用 ajax 代替 post 请求和发送也可以在 json
中发送 table 名称
同时勾选 Using Post,Using Ajax
我正在尝试使用 JDBC 实现一个 Servlet。
我的想法是,当用户使用登录表单登录时,他将能够在 MySQL 中看到可用数据库的列表。所以我在 Servlet 上动态生成它。使用下拉列表向用户显示数据库。
现在,当用户单击任何可用的数据库时,我使用 JavaScript 来检查用户选择了哪个数据库。现在我想将该值从 JavaScript 检索到我的 servlet 中。基于所选的数据库,我想向用户显示数据库中可用表的列表。
这可能吗?如果不行那还有别的办法吗??
下面是动态生成下拉菜单的示例代码。
ResultSet r = dbmetadata.getCatalogs();
ResultSetMetaData metadata = r.getMetaData();
int colCount = metadata.getColumnCount();
int i;
out.println("<select id='db' name='db'onChange= 'myFunction();'>");
out.println("<option value = -1>--Select Database--</option>");
int value = 1;
while(r.next())
{
for(i=1;i<=colCount;i++)
{
out.println("<option value = " + value + ">" + r.getString(i) + "</option>");
}
k++;
}
out.println("</select>");
JavaScript 代码看起来像这样:
function myFunction()
{
var select = document.getElementById("db");
var dbSelected = select.options[select.selectedIndex].text;
var x = document.getElementById("dbs");
x.innerHTML = "You have selected " + dbSelected;
};
谢谢你:)
您可以通过
向servlet发送post请求 // Send the data using post
var posting = $.post("/GetAllTables",{dbname:"myydb"});
// When the POST request is done..
// data: The output printed in servlet
posting.done(function(data) {
// Put the results in a div
$("#view").append(data+"<br/>");
//you can also take data string and split it with ,(comma) and append this tablenames to a dropdown etc.
});
在 servlet 中
String dbName=request,getParameter("dbName");
//generate all table name in string like
String tables="table1,table2,table3"
// Get PrintWriter obj using getWriter() in HttpServletResponse
PrintWriter pw=res.getWriter();
// Print, that's it!!
pw.println(tables);
您也可以使用 ajax 代替 post 请求和发送也可以在 json
中发送 table 名称同时勾选 Using Post,Using Ajax