Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 注册MVC-JSP、servlet的用户名验证_Java_Database_Forms_Jsp_Servlets - Fatal编程技术网

Java 注册MVC-JSP、servlet的用户名验证

Java 注册MVC-JSP、servlet的用户名验证,java,database,forms,jsp,servlets,Java,Database,Forms,Jsp,Servlets,我有一个html注册表单,我正在使用Javascript检查字段以进行验证。但是,我需要检查数据库中是否存在用户名,以及是否存在,以便在“用户名已被占用”部分打印一条消息。但是,我必须检查用户是否存在,这项检查不起作用 我已尝试检查User类中是否存在用户名。我正在尝试进行实时验证,因此当用户输入用户名时,我有一个if语句来检查数据库中是否存在该用户名。我一直在寻找一个解决方案,我能在网上找到的都是使用php的解决方案。我想知道是否有人能帮助我或给我建议。我已经包括了表单、servlet、使用的

我有一个html注册表单,我正在使用Javascript检查字段以进行验证。但是,我需要检查数据库中是否存在用户名,以及是否存在,以便在“用户名已被占用”部分打印一条消息。但是,我必须检查用户是否存在,这项检查不起作用

我已尝试检查User类中是否存在用户名。我正在尝试进行实时验证,因此当用户输入用户名时,我有一个if语句来检查数据库中是否存在该用户名。我一直在寻找一个解决方案,我能在网上找到的都是使用php的解决方案。我想知道是否有人能帮助我或给我建议。我已经包括了表单、servlet、使用的ajax、用户类和servlet对不起,所有的代码,但我希望有人可能会看到我的错误

HTML表单

     Username:

     <input id="username" required type="text" name="username" placeholder="Username"  autocomplete="off" onkeyup="updateOutput(this.value)" />
<div id="userNameMessage"></div>
</p>  
*/ else if (option.equalsIgnoreCase("add")) {


            String username = mrequest.getParameter("username");
            System.out.println("username" + username);


            String password = mrequest.getParameter("password");
            System.out.println("password" + password);

            String firstName = mrequest.getParameter("firstName");
            System.out.println("firstName" + firstName);


            String secondName = mrequest.getParameter("secondName");
            System.out.println("secondName" + secondName);

            String email = mrequest.getParameter("email");
            System.out.println("email" + email);


            String add = mrequest.getParameter("address");
            System.out.println("address" + address);

            String mobile = mrequest.getParameter("mobile");
            System.out.println("mobile" + mobile);

            String image = mrequest.getParameter("image");

            String userRole = null;


            u = new User(null, username, password, firstName, secondName, email, add, mobile, filename, null);
            boolean saved = u.SaveUser();
            session.setAttribute("user", u);
            address = "/login.html";
Servlet

     Username:

     <input id="username" required type="text" name="username" placeholder="Username"  autocomplete="off" onkeyup="updateOutput(this.value)" />
<div id="userNameMessage"></div>
</p>  
*/ else if (option.equalsIgnoreCase("add")) {


            String username = mrequest.getParameter("username");
            System.out.println("username" + username);


            String password = mrequest.getParameter("password");
            System.out.println("password" + password);

            String firstName = mrequest.getParameter("firstName");
            System.out.println("firstName" + firstName);


            String secondName = mrequest.getParameter("secondName");
            System.out.println("secondName" + secondName);

            String email = mrequest.getParameter("email");
            System.out.println("email" + email);


            String add = mrequest.getParameter("address");
            System.out.println("address" + address);

            String mobile = mrequest.getParameter("mobile");
            System.out.println("mobile" + mobile);

            String image = mrequest.getParameter("image");

            String userRole = null;


            u = new User(null, username, password, firstName, secondName, email, add, mobile, filename, null);
            boolean saved = u.SaveUser();
            session.setAttribute("user", u);
            address = "/login.html";
AJAX代码

         *
       var xmlHttp;  
       function updateOutput(inputString)        {               

   if(inputString.length == 0)            {                

      document.getElementById("output").innerHTML = "";                             
    return;            
      }                       
      try            {                
     if(window.XMLHttpRequest)                    
    xmlHttp = new XMLHttpRequest();                
      else if (window.ActiveXObject)                   
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");                                                
      if(!xmlHttp || xmlHttp == null)                {                    
       return;                }                                
       var url="doajaxstuff.aspx?q=" + inputString;                
        xmlHttp.onreadystatechange=StateChanged;                
     xmlHttp.open("GET", url, true);               
     xmlHttp.send(null);            }            
         catch(e)            {                
         document.getElementById("output").innerHTML = "An error occured";           
             }                   }                function StateChanged()        {            
             if((xmlHttp.readyState == 4) && (xmlHttp.status == 200))            {                
             document.getElementById("output").innerHTML = xmlHttp.responseText;                   
             }                }    
             </script>
*
var-xmlHttp;
函数updateOutput(inputString){
如果(inputString.length==0){
document.getElementById(“输出”).innerHTML=“”;
返回;
}                       
试试{
if(window.XMLHttpRequest)
xmlHttp=新的XMLHttpRequest();
else if(window.ActiveXObject)
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
如果(!xmlHttp | | xmlHttp==null){
返回;}
var url=“doajaxstuff.aspx?q=“+inputString;
onreadystatechange=StateChanged;
open(“GET”,url,true);
xmlHttp.send(null);}
第(e)款{
document.getElementById(“输出”).innerHTML=“发生错误”;
}}函数StateChanged(){
如果((xmlHttp.readyState==4)&&(xmlHttp.status==200)){
document.getElementById(“输出”).innerHTML=xmlHttp.responseText;
}                }    

我已经为您创建了示例。这应该会有所帮助

AJAX调用:

<script type="text/javascript">

    var xmlHttp;

    function updateOutput(inputString) {
        if (inputString.length == 0) {
            document.getElementById("output").innerHTML = "";
            return;
        }
        try {
            if (window.XMLHttpRequest)
                xmlHttp = new XMLHttpRequest();
            else if (window.ActiveXObject)
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            if (!xmlHttp || xmlHttp == null) {
                return;
            }
            var url = "validate?userName=" + inputString; // Here, I have mapped servlet as "validate".
            xmlHttp.onreadystatechange = StateChanged;
            xmlHttp.open("GET", url, true);
            xmlHttp.send(null);
        } catch (e) {
            document.getElementById("userNameMessage").innerHTML = "An error occured";
        }
    }
    function StateChanged() {
        if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) {
            document.getElementById("userNameMessage").innerHTML = xmlHttp.responseText;
        }
    }
</script>

现在,jQueryAjax调用被认为是良好的实践。您可以查看它。

很抱歉,我应该更好地指出这个问题,原始表单验证已停止工作,表单未检查用户名是否已存在。我的编译器中没有错误。会发生什么?JavaScript控制台中有什么?Ajax请求中发送了什么?服务器端发生了什么?我猜ajax没有与servlet通信,很抱歉Dave。。我一直在学习php教程,并试图将逻辑融入java,因为我找不到任何关于用户验证的jsp/java教程。如果你知道另一个解决方案或者我可以看看什么来解决这个问题。你的浏览器的网络/JS控制台应该有助于确定是否有任何JS错误,线路上发生了什么,等等。从Ajax的角度看,没有什么真正的区别。re:PHP/Java除了大多数PHP代码非常可怕之外。我会考虑使用JS库来帮助抽象Ajax的东西。处理起来容易多了。我想我的意思是我不知道你为什么这么告诉我。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        String strStatus = "Username is available";
        try{
            System.out.println("Performing check");
            String username = request.getParameter("userName");
            String strQuery = "SELECT * FROM users WHERE uname='" + username +"'";
            ResultSet rs = DatabaseManager.executeQuery(strQuery);
            boolean userExists = rs.next();
            if (userExists){
                strStatus = "Username already exists"; // Return Exist Msg
            }
        }catch(Exception e){
            strStatus = "Some error occured. Try again"; // Return Err Msg
            e.printStackTrace();
        }
        out.println(strStatus);
    }