我正在编写一个简单的JSP代码,该代码应该采用文本框值,形成一个sql,执行并将结果返回给另一个文本字段。我得到一个空洞的结果。以下是我的代码。
如果语句中没有条件,例如选择名字if rownum<1
,则驱动程序正在运行并设置值,因此我确信它已注册正常。
<html>
<head>
<title>Holiday Master</title>
</head>
<body>
<%@ page import = "java.sql.*" %>
<div>
<input id="input1" name="Text1" type="text"><input id="input2" name="Text2" type="text"><input name="Button1" onclick="get_data()" type="button" value="button"></div>
<script>
function get_data()
{
<%
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");
Statement stmt = conn.createStatement();
String sql2 = request.getParameter("input1");
String sql="select last_name from employees where first_name ='"+sql2+"'";
ResultSet rs = stmt.executeQuery(sql);
try
{
if(rs!=null)
{
while(rs.next())
{
%>
document.getElementById("input2").value="<%=rs.getString("last_name")%>";
<%
}
}
}
catch(SQLException e)
{
e.printStackTrace();
}
stmt.close();
rs.close();
conn.close();
stmt=null;
rs=null;
conn=null;
%>
}
</script>
</body>
</html>
答案 0 :(得分:0)
您正在混合使用两种不同的代码。关键是要实现每个代码执行时 和 - 在请求和呈现页面时服务器上的JSP(即之前响应发送到浏览器)和浏览器中的Javascript, 后,浏览器会收到已生成的响应。