HTML代码:
<html>
<head>
<script type="text/javascript">
function checkforValid(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","get.jsp?q=" + str ,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form action="">
Name: <input type="text" id="user" name = "user" onkeyup="checkforValid(this.value)" />
</form>
<br>
<p>Here : <span id="txtHint"></span> </p>
</body>
</html>
JSP:
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.math.*" %>
<%@ page import="java.security.*" %>
<html>
<body>
<%
String user = request.getParameter("user");
out.println("Username is::"+user+".");
Connection con = null;
try
{
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "p2p";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "123";
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery( "select * from newuser where username =" + user );
if(rs.next())
out.println("ok");
else out.println("absent");
st.close();
}
catch( Exception e )
{
out.print( "Database Error"+ e );
}
finally
{
try
{
con.close();
}
catch(Exception e1)
{
}
}
%>
</body>
</html>
当我在glassfish上运行时,jsp页面的request.getParameter函数正在接收null,即输出User:null,所以请帮助并为ajax建议一些不错的项目
答案 0 :(得分:0)
您正在发送:
xmlhttp.open("GET","get.jsp?q=" + str ,true);
然后问:
String user = request.getParameter("user");
它是null,因为您从不发送“user”参数。将其更改为:
xmlhttp.open("GET","get.jsp?user=" + str ,true);
<强>更新强>
一些AJAX教程/文档站点:
http://www.xul.fr/en-xml-ajax.html
http://code.google.com/edu/ajax/tutorials/ajax-tutorial.html
http://www.hunlock.com/blogs/AJAX_for_n00bs(以及其他许多文档)
http://www.ibm.com/developerworks/web/library/wa-ajaxintro1/index.html
当然,还有BalusC的博客:
http://balusc.blogspot.com/2009/05/javajspjsf-and-javascript.html
答案 1 :(得分:0)
两种替代方案。
1:将request.getParameter("user");
更改为request.getParameter("q");
2:使用ajax提交表单,您将获得user
参数。
答案 2 :(得分:0)
您要在代码中的名为 q 的变量中将用户名参数发送到JSP,并使用变量用户
进行检索 xmlhttp.open("GET","get.jsp?q=" + str ,true);
现在可以有两个修复:
第一个也是最好的
修复javascript,将变量名称从 q 更改为用户,并让JSP代码保持不变。
xmlhttp.open("GET","get.jsp?user=" + str ,true);
第二次修复(不推荐)
修复JSP中的代码。
而不是String user = request.getParameter("user");
将其更改为String user = request.getParameter("q");
并让脚本保持原样...
我认为这应该可以解决问题。