Java 使用ajax和hibernate的登录表单

Java 使用ajax和hibernate的登录表单,java,ajax,hibernate,web,Java,Ajax,Hibernate,Web,我正在尝试使登录表单与数据库连接。 当输入一个错误的用户名时,ajax应该返回一次“错误的用户名”。 我的servlet与hibernate连接,因此我可以用HPQL检查数据库中的用户名。在没有Hibernate代码的情况下,我的servlet将字符串发送回我,而没有任何问题。但当我试图检查用户名是否存在时,使用hibernate代码,ajax无法返回任何响应 my index.html <!DOCTYPE html> <!-- To change this license h

我正在尝试使登录表单与数据库连接。 当输入一个错误的用户名时,ajax应该返回一次“错误的用户名”。 我的servlet与hibernate连接,因此我可以用HPQL检查数据库中的用户名。在没有Hibernate代码的情况下,我的servlet将字符串发送回我,而没有任何问题。但当我试图检查用户名是否存在时,使用hibernate代码,ajax无法返回任何响应

my index.html

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <title>pokusaj 2</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
         <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
         <script>
             function check(){
                 var username=document.getElementById("username").value;
                 var password=document.getElementById("password").value;

                 $.post("servletprovera", {"username":username, "password":password},
                 function(data){
                     document.getElementById("alert").innerHTML=data.result;
                 });//servletprovera is URL of my servlet
             }
         </script>
    </head>
    <body>
        <form >
            <input type="text" name="username" id="username"><br>
            <input type="password" name="password" id="password"><br>
            <b id="alert"></b><br>
            <input type="button" value="Login" onclick="check();">
        </form>
    </body>
</html>
我解决了这个问题。 问题出在HPQL中

我写

list=conn.createQuery("k FROM Korisniciajax k WHERE k.korUser=\""+user+"\"").list();
我应该用“”而不是“”


我想这份名单应该很有用。对吗?如果数据库中不存在用户名,那么是的。如果数据库不返回任何内容,那么您的列表将是空列表。get(0)应该为您提供ArrayIndexOutofBound运行时异常。你查过了吗?你是对的。最初的代码是“if(list==null)”,但这是一次绝望的尝试。在这两种情况下都不起作用。要检查空列表,请使用
list.isEmpty()
。如果
conn.createQuery(…).list()
可能返回null,请使用
If(list==null | | | list.isEmpty())
list=conn.createQuery("k FROM Korisniciajax k WHERE k.korUser=\""+user+"\"").list();
list=conn.createQuery(" SELECT k FROM Korisniciajax k WHERE korUser='"+user+"'").list();