从JavaScript将数据返回到Servlet?可能的

从JavaScript将数据返回到Servlet?可能的,javascript,mysql,servlets,jdbc,drop-down-menu,Javascript,Mysql,Servlets,Jdbc,Drop Down Menu,我试图用JDBC实现一个Servlet。 我的想法是,当用户使用登录表单登录时,他将能够看到MySQL中可用数据库的列表。所以我在Servlet上动态生成它。使用下拉列表向用户显示数据库。 现在,当用户单击任何可用的数据库时,我正在使用JavaScript检查用户选择了哪个数据库。现在我想从JavaScript中将该值检索到我的servlet中。根据所选数据库,我希望向用户显示数据库中可用表的列表。 这可能吗?如果没有,还有其他方法吗 下面是动态生成下拉菜单的示例代码

我试图用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>");

谢谢:

您可以通过以下方式向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.

     });
您还可以使用ajax代替post请求,也可以使用json发送表名


同时检查,

您可以使用jquery还是只想使用javascript?jquery没问题。我可以用它。你能帮我吗?发送post请求将刷新页面。我说的对吗??是否可以直接从JavaScript文件中检索值??或者有没有办法从当前的html servlet文件中检索参数?它不会刷新页面。您也可以直接访问db,但这是一种不好的做法,我不建议您这样做,但如果您想这样做,请检查它是否安全,也不建议您这样做。我如何执行我的任务??我看不出有任何其他方法可以做到这一点。你能给我提供一个链接小提琴为一个简单的例子使用上述方法你告诉。如果你不介意的话!!请尝试myanswer中提供的post或ajax方法。Fiddle不提供服务器端代码检查,因此我无法为您提供Fiddle。如果您有任何问题,请尝试,然后创建一个新问题。有人会帮助您,如果您再次陷入困境,请在此处对您的问题发表评论。我将尝试帮助您:谢谢您的帮助。我正在尝试您告诉我的jQuery方法。对不起,我问了一些愚蠢的问题。
  // 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.

     });
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);