我试图从数据库中检索数据。我用jdbc连接数据库。我有一个文本字段和一个提交按钮。当我在文本字段中键入文本并单击“提交”时,它会显示一个空白页面,并且控制台中没有错误。 我没有从数据库中获取数据。我的数据库名称是新的,表名是列表。对此有何解决方案?
(Sql,My),(Dev,Prod)
下面是main.jsp文件,用于根据输入表单
从数据库中获取数据main.jsp中
<!DOCTYPE html>
<html>
<head>
<title>D3</title>
<script>
function getData() {
{
xmlHttp = GetXmlHttpObject();
var id = document.getElementById("input").value;
var url = "main.jsp";
url = url + "?input=" + id;
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET", url, true);
}
xmlHttp.send(null);
function stateChanged() {
if (xmlHttp.readyState === 4 ||
xmlHttp.readyState === "complete") {
var showdata = xmlHttp.responseText;
document.getElementById("input").value
= showdata;
}
}
}
</script>
</head>
<body>
<div id="type">
<form>
<table>
<tr>
<td>
<input type="text" name="input">
</td>
</tr>
<tr>
<td>
<input type="submit"
name="submit" onclick="getdata();" </td>
</tr>
</table>
</form>
</div>
</body>
</html>
更新的脚本:
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.*"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.beans.Statement"%>
<%
String ch = request.getParameter("type").toString();
System.out.println(ch);
String data ="";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection
("jdbc:mysql://localhost:3306/new","root","admin321");
PreparedStatement st=con.prepareStatement
("select * from list where input in name=?");
ResultSet rs=st.executeQuery();
while(rs.next())
{
data = rs.getString("name") + ": " +
rs.getString("child name");
}
out.println(data);
System.out.println(data);
}
catch(Exception e) {
System.out.println(e);
}
%>
答案 0 :(得分:0)
表单正在执行操作,即使您未指定它也是如此。您应该阻止发生默认事件(获取新页面),或者指定您要POST数据而不是GET。
我不确定这是否是实际答案,但这有可能解决您的问题。使用客户端javascript来防止表单操作发生。使用jQuery的一个例子:
($(document).ready(function(){
$(".your-form").submit(function(e){
// e stands for the event generated by the submit
e.preventDefault();
// the rest of your logic
});
});
)();
答案 1 :(得分:0)
我可以在您的代码中找到以下问题。
我在jsp代码中的任何地方找不到你在预备语句后面设置'name'属性的值。
String ch = request.getParameter("type").toString();
获取type
参数的值。但是,在url = url + "?input=" + id;
行中,您要设置input
参数。
return false
处没有getdata()
来阻止表单提交。将return false;
添加到getdata()
函数的末尾
尝试解决上述问题并检查您是否仍未获得所需的输出。