一尘不染

基于Ajax的用户名可用性检查,然后生成一些要在jsp中使用的用户名

jsp

我已经做了一些基于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的数据库,该数据库具有属性名称和ID。

现在,我该如何修改此代码以生成一些名称。


阅读 209

收藏
2020-06-08

共1个答案

一尘不染

我想您需要针对名称建议制定自己的算法。

就像用户输入自己的姓名,姓氏,出生年份等一样。那么您可以设计一种算法,采用这些值并通过组合(连接)单词或出生年份或任何您想要生成建议的用户名的内容来进行一些处理。

然后,您可以简单地将该列表返回给用户。

2020-06-08