2015-08-14 32 views
0

嗨我已登記表格設計中的自舉,其中i有使用遠程驗證器驗證所有形式的Fileds和我有具有它檢查所有行checkusername布爾方法registerdao.java方法如果用戶名存在,它會返回用戶名字符串,否則返回false,我在registartiion servlet中有checkusernameexists方法,它會在輸入用戶名字段時檢查用戶名。我不明白爲什麼我的代碼沒有顯示任何內容。下面是代碼不檢查用戶名和數據庫並通知。如何編寫JavaScript,以便它檢查數據的用戶名或給我一些想法如何使此代碼工作?任何幫助將不勝感謝appreaciated即時用戶名檢查用java豆和jQuery遠程驗證

ReegisterDao.java 公共靜態布爾checkUserName(用戶名字符串)拋出的SQLException { 字符串checkUserNameQuery 「+使用者名稱+ 」 '=' 從EmployeeDetails其中用戶名=選擇*「」?;

try{ 


// preparing some objects for connection 
currentCon = ConnectionManager.getConnection(); 
Statement stmt = currentCon.createStatement(); 
rs = stmt.executeQuery(checkUserNameQuery); 
boolean more = rs.next(); 

    // if user does not exist set the isValid variable to false 
    return more; 
    } 



catch (InstantiationException | IllegalAccessException e){} 

return false; }

RegistrationServlet.java

public int checkUserNameExists(RegistrationBean user) throws SQLException{ 

     int a=RegistrationDao.Register(user); 


    return a; 

} 

這是遠程驗證的一部分,該驗證用戶名

username: { 
        validators: { 
         notEmpty: { 
          message: 'The username is required' 
         }, 
         stringLength: { 
          min: 6, 
          max: 30, 
          message: 'The username must be more than 6 and less than 30 characters long' 
         }, 
         regexp: { 
          regexp: /^[a-zA-Z0-9_\.]+$/, 
          message: 'The username can only consist of alphabetical, number, dot and underscore' 
         }, 
         remote:{ 
          message:'This Username is already taken', 
          url:'https://localhost:8080/RegistrationServlet.java', 
          data:'username' 
         }, 
         type:'POST' 


       } 

       }, 

,這是自舉的用戶名字段

<div class="form-group"> 
    <label class="col-xs-2 control-label">Username</label> 

    <div class="col-xs-4"> 
     <input type="text" class="form-control" name="username" placeholder="Username" /> 
    </div></div> 

回答

0

返回類型的一部分必須採用有效的json格式。我想無論你從servlet返回的驗證碼是不是正確的json形式。 使用檢查元素,並在網絡標籤中看到它返回什麼。

首先,你必須改變烏爾遠程喜歡這個

   remote: { 
         type: "POST", 
         url: 'RegistrationEmailCheck',//servlet 
         delay: 1000, 

         message: 'Your Message' 
        } 

,並從這樣

public class RegistrationEmailCheck extends HttpServlet { 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("application/json"); 

    PrintWriter out = response.getWriter(); 
JSONObject json = new JSONObject(); 
String availEmail = request.getParameter("email"); 
System.out.println(availEmail); 
String SQL = "SELECT email FROM login WHERE email='" + availEmail + "'"; 
Connection con = DBInfo.getConn(); 
Statement st; 
ResultSet rs; 

try { 
    st = con.createStatement(); 
    rs = st.executeQuery(SQL); 


    if (rs.next()) { 

     out.print("{\"valid\" : false }"); 
     json.put("valid", false); 
     System.out.println("false"); 


    } else { 

     out.print("{\"valid\" : true }"); 
     json.put("valid", true); 
     System.out.println("true"); 


    } 


} catch (Exception ex) { 
    ex.printStackTrace(); 
} finally { 

    out.close(); 
    } 



} 


} 

servlet的返回數據該代碼可用於電子郵件檢查