java - Ajax 在用户名可用性方面无法与 JSP 配合使用

标签 java jquery ajax jsp servlets

我正在尝试检查数据库的用户名可用性。我不知道哪里出了问题,但它只是一直说“检查可用性”并且从不返回答案。下面是我的代码。

index.jsp;

<html>
<head>
<title>Username Availability</title>
<style type="text/css">
.flable {
    color: gray;
}

.status {
    font-family: verdana;
    font-size: 12px;
}

.uname {
    color: blue;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js "></script>
    <script type="text/javascript">
          $(document).ready(function(){
              $(".uname").change(function(){
                  var uname = $(this).val();
                  if(uname.length >= 3){
                      $(".status").html("<img src='images/loading.gif'><font color=gray> Checking availability...</font>");
                       $.ajax({
                          type: "POST",
                          url: "check",
                          data: "uname="+ uname,
                          success: function(msg){

                              $(".status").ajaxComplete(function(event, request, settings){

                                  $(".status").html(msg);

                              });
                          }
                      }); 
                  }
                  else{

                      $(".status").html("<font color=red>Username should be <b>3</b> character long.</font>");
                  }

              });
          });
        </script>
</head>
<body>
    <div>
        <label class="flable">User Name :</label> <input type="text" class="uname" />&nbsp;<span class="status"></span>
    </div>

</body>
</html>

CheckAvailibilty.java:

import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class CheckAvailability extends HttpServlet {

    private static final long serialVersionUID = -734503860925086969L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            String connectionURL = "jdbc:mysql://localhost:3306/quora"; // students is my database name
            Connection connection = null;
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            connection = DriverManager.getConnection(connectionURL, "root", "root");
            String uname = request.getParameter("uname");
            PreparedStatement ps = connection.prepareStatement("select username from users where username=?");
            ps.setString(1,uname);
            ResultSet rs = ps.executeQuery();

            if (!rs.next()) {
                out.println("<font color=green><b>"+uname+"</b> is avaliable");
            }
            else{
            out.println("<font color=red><b>"+uname+"</b> is already in use</font>");
            }
            out.println();



        } catch (Exception ex) {

            out.println("Error ->" + ex.getMessage());

        } finally {
            out.close();
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }
}

web.xml:

<servlet>
        <servlet-name>check</servlet-name>
        <servlet-class>com.amzi.servlets.CheckAvailability</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>check</servlet-name>
        <url-pattern>/check</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

最佳答案

您不需要ajaxComplete ,当您收到 msg 时,只需将其提供给 html()

success: function(msg){
  $(".status").html(msg);
}

关于java - Ajax 在用户名可用性方面无法与 JSP 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27090034/

相关文章:

java - 在 Java 中重命名 Zip 文件中的文件/文件夹?

java - World Wind Java 无法检索 WMS 资源

php - 使用ajax使用已从数据库检索的数据获取更多mysql数据

javascript - 通过 AJAX 提交表单但保留客户端验证

database - Wordpress 插件通过 AJAX 调用数据库结果

java - 如何在java Graphics2d中使用TextLayout在短字符串上进行自动换行?

java - 无法通过套接字发送多条消息

jQuery 的点击事件

jquery - 如何在 jQuery Mobile 中使用 `paginit` 加载外部 Javascript 文件?

javascript - HTML5 视频播放/淡出然后触发下面的视频