我做了一些基于 ajax 的 jsp 编码来检查用户名的可用性。它工作得很好。虽然它可能有一些错误。所以如果有请指出。现在我的主要问题是,检查后我还想生成一些用户名供用户使用,就像我们可以在 gmail 注册表单中看到的那样。我在这里给出我的代码...
首先是 index.html...
<html>
<body>
<form action=sample.jsp method=post>
id<input type=text name=id><br>
<input type=submit value=next>
</form>
</body>
</html>
现在 sample.jsp...
<jsp:useBean id="ob" class="sample.Database" scope="session" />
<jsp:setProperty name="ob" property="*" />
<html>
<head>
var xmlHttp
var xmlHttp
var checkvalue
function showState(p1){
if (typeof XMLHttpRequest != "undefined"){
xmlHttp= new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlHttp==null){
alert ("Browser does not support XMLHTTP Request")
return
}
var url="getlist.jsp?name="+p1;
xmlHttp.onreadystatechange = stateChange;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
function stateChange(){
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
checkvalue=document.getElementById("name").innerHTML=xmlHttp.responseText;
document.f1.checking.value = xmlHttp.responseText;
}
}
function conditions(){
if(!checkvalue.match("Available"))
{
alert("no match");
return false
}
}
</script>
</head>
<body >
<center>
<br>
<form action="sample1.jsp" name="f1" method="post" onsubmit="return conditions()">
name <input type=text name=name onchange="showState(this.value);"><div id='name'></div><br>
checking<input type=text name=checking><br>
<input type=submit value=next>
</form>
</body>
</html>
现在 getlist.jsp...
<jsp:useBean id="ob" class="sample.Database" scope="session" />
<%
String n=request.getParameter("name");
if(ob.checkName(n)==0)
{
%>
<font color=green>Available</font>
<%
}
else
{
%>
<font color=red>Not available</font>
<%
}
%>
现在 sample1.jsp....
<jsp:useBean id="ob" class="sample.Database" scope="session" />
<jsp:setProperty name="ob" property="*" />
<%
if(ob.insertData()==1)
out.println("Success");
else
out.println("Unsuccess");
%>
包中类文件的代码->示例文件名->Database.java...
package sample;
import java.util.*;
import java.sql.*;
public class Database
{
private String id="",name="";
private int t=0;
private Connection con;
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void setId(String id)
{
this.id=id;
}
public String getId()
{
return id;
}
public Connection c1()
{
try{
Class.forName("oracle.jdbc.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1000:xe","system","12345");
}
catch(Exception e){}
return con;
}
public int checkName(String n)
{
try{
con=c1();
PreparedStatement pst = con.prepareStatement("select name from testani where name='"+n+"'");
t = pst.executeUpdate();
con.close();
}
catch(Exception e){}
return t;
}
public int insertData()
{
try{
con=c1();
PreparedStatement pst = con.prepareStatement("insert into testani values('"+name+"','"+id+"')");
t = pst.executeUpdate();
con.close();
}
catch(Exception e){}
return t;
}
}
我使用 mysql 创建了一个名为 testani 的数据库,其属性为 name 和 id ...
现在我如何修改此代码以生成一些名称.. 提前致谢..