AJAX 不从 JSP 中返回值
Posted
技术标签:
【中文标题】AJAX 不从 JSP 中返回值【英文标题】:AJAX not returning the values form JSP 【发布时间】:2013-11-28 11:51:56 【问题描述】:我正在尝试使用 ajax 从 jsp 中检索值,如此处所述 here 。但它没有从数据库返回值。请帮助解决这个问题
主页
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jsp Page</title>
<script>
function showuser(str)
var xreq;
if (str == "")
document.getElementById("showtext").innerHTML = "";
return;
if (window.XMLHttpRequest)
xreq = new XMLHttpRequest();
else
xreq = new ActiveXObject("Microsoft.XMLHTTP");
xreq.onreadystatechange = function()
if ((xreq.readyState == 4) && (xreq.status == 200))
document.getElementById("showtext").innerHTML
= xreq.responseText;
xreq.open("get", "getuser.jsp?q=" + str, "true");
xreq.send();
</script>
</head>
<body>
<form>
<select name="user" onchange="showuser(this.value)" >
<option value="">Select Student name....</option>
<option value="abhi">abhi</option>
<option value="alex">alex</option>
<option value="adam">adam</option>
</select>
</form>
<br/>
<div id="showtext">The response will come here</div>
</body>
</html>
数据库连接建立页面
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.*,java.sql.*,java.io.*" %>
<%@page import="javax.servlet.*" %>
<%@page import="javax.servlet.http.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jsp Page</title>
</head>
<body>
<%! Connection con;%>
<%! Statement s;%>
<%! ResultSet rs;%>
<% String name = request.getParameter("st");
try
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("URL");
s = con.createStatement();
rs = s.executeQuery("select * from studentinfo where name='" + name + "'");
catch (Exception e)
e.printStackTrace();
%>
<div id="dtl_table"><table border='3' cellpadding='5'
cellspacing='2' >
<tr bgcolor="66FF00">
<th>Name</th>
<th>Branch</th>
<th>Year</th>
<th>Email id</th>
</tr>
<tr>
<% while (rs.next())
%>
<td><%= rs.getString("NAME")%></td>
<td><%= rs.getString("BRANCH")%></td>
<td><%= rs.getString("YEAR")%></td>
<td><%= rs.getString("EMAIL")%></td>
<% %>
</tr>
</table></div>
</body>
</html>
表结构
CREATE TABLE studentinfo(
name VARCHAR2(30),
branch VARCHAR2(20),
year VARCHAR2(20),
email VARCHAR2(80)
);
【问题讨论】:
“它没有从数据库返回值” - 实际发生了什么?您是否在浏览器的控制台或服务器端收到任何错误?另外,当您似乎使用没有 jQuery 的纯 javascript 时,为什么这会被标记为“jquery”?请缩进你的代码,以便它可读。 @nnnnn 它没有显示错误它没有从 DB 打印任何值单独打印表头。我正在使用 netbeans,我应该添加任何 jquery 文件来执行这个吗?? @sankrish 在使用 ajax 请求时总是在浏览器中使用 firebug,这样你就可以看到发送请求时到底发生了什么以及你得到了什么 @deepak 感谢您的评论,但我应该在哪里检查萤火虫 “我应该添加任何 jquery 文件来执行此操作吗?” - 不,您显示的代码不使用任何 jQuery 函数。 【参考方案1】:请求对象中没有参数st
String name=request.getParameter("st");
你传递的参数是q
xreq.open("get","getuser.jsp?q="+str,"true");
【讨论】:
如何用 servlet 替换第二个 JSP 页面。这可能吗,因为我想避免使用 scriplets 你能不能用 servlet 来编辑你的答案,而不是使用 JSP 尝试发布一个新问题以上是关于AJAX 不从 JSP 中返回值的主要内容,如果未能解决你的问题,请参考以下文章