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