2011-04-03 56 views
0

HTML代碼:需要幫助阿賈克斯

<html> 
<head> 
<script type="text/javascript"> 
function checkforValid(str) 
{ 
     var xmlhttp; 
     if (str.length==0) 
     { 
       document.getElementById("txtHint").innerHTML=""; 
       return; 
     } 
     if (window.XMLHttpRequest) 
     { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     { 
      // code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     xmlhttp.onreadystatechange=function() 
     { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
      } 
     } 
     xmlhttp.open("GET","get.jsp?q=" + str ,true); 
     xmlhttp.send(); 
    } 
    </script> 
    </head> 

    <body> 

     <form action=""> 
      Name: <input type="text" id="user" name = "user" onkeyup="checkforValid(this.value)" /> 
     </form> 

     <br> 
     <p>Here : <span id="txtHint"></span> </p> 

    </body> 
</html> 

JSP: 

<%@ page language="java" %> 
<%@ page import="java.sql.*" %> 
<%@ page import="java.math.*" %> 
<%@ page import="java.security.*" %> 
<html> 
<body> 
<% 
    String user = request.getParameter("user"); 
    out.println("Username is::"+user+"."); 
    Connection con = null; 

    try 
    { 
     Connection conn = null; 
     String url = "jdbc:mysql://localhost:3306/"; 
     String dbName = "p2p"; 
     String driver = "com.mysql.jdbc.Driver"; 
     String userName = "root"; 
     String password = "123"; 

     Class.forName(driver).newInstance(); 
     conn = DriverManager.getConnection(url+dbName,userName,password); 

     Statement st = conn.createStatement(); 
     ResultSet rs = st.executeQuery("select * from newuser where username =" + user ); 

      if(rs.next()) 
      out.println("ok"); 
      else out.println("absent"); 

     st.close(); 
    } 
    catch(Exception e) 
    { 
     out.print("Database Error"+ e); 
    } 
    finally 
    { 
     try 
     { 
      con.close(); 
     } 
     catch(Exception e1) 
     { 
     } 
    } 

%> 
</body> 
</html> 

當我在GlassFish中,jsp頁面的request.getParameter功能運行它正在接收空即是輸出用戶:空,所以請幫助和也建議一些不錯項目AJAX

+1

抱歉生根粉格式。 – anonymous123 2011-04-03 06:14:33

+2

請編輯文章和固定格式,而不是僅僅說一下抱歉。 – Altealice 2011-04-03 06:15:47

+1

很好,選擇文本,單擊代碼{}上(文本編輯器) – 2011-04-03 06:15:52

回答

0

您發送名爲q在你的代碼中的變量username參數的JSP和使用變量用戶

檢索

xmlhttp.open("GET","get.jsp?q=" + str ,true);

現在可以有兩個解決方法:

首先和最好

修復j avascript,將變量名稱從q更改爲用戶像這樣,並讓JSP代碼保持不變。

xmlhttp.open("GET","get.jsp?user=" + str ,true);

第二修正(不推薦)

固定在JSP代碼。

相反String user = request.getParameter("user");改變它String user = request.getParameter("q");並讓腳本保持原樣......

我想這應該做的伎倆。

+0

@ anonnymous123:我覺得你是新的阿賈克斯......我建議你做一些簡單的項目,如庫存管理,工資,或存儲管理項目......你可以建立與阿賈克斯足夠好的項目,學到很多東西太...祝你好運 – 2011-04-03 07:18:15

0

您發送:

xmlhttp.open("GET","get.jsp?q=" + str ,true); 

但隨後問:

String user = request.getParameter("user"); 

它是空的,因爲你永遠不會發送「用戶」參數。將其更改爲:

xmlhttp.open("GET","get.jsp?user=" + str ,true); 

更新


一些AJAX教程/文檔站點:

http://www.xul.fr/en-xml-ajax.html

http://code.google.com/edu/ajax/tutorials/ajax-tutorial.html

http://www.hunlock.com/blogs/AJAX_for_n00bs(和許多在那裏的其他文檔)

http://www.ibm.com/developerworks/web/library/wa-ajaxintro1/index.html

,當然,BalusC的博客:

http://balusc.blogspot.com/2009/05/javajspjsf-and-javascript.html

+0

thanxs傢伙現在的工作,但你可以建議一些不錯的項目至極,我可以用Ajax – anonymous123 2011-04-03 07:00:48

+0

做你是什麼意思? ajax的主要用途是與服務器進行通信。這是一個簡單的方法來做到客戶端/服務器應用程序,無論你心裏有(數據庫,聊天,多人遊戲,網上購物,你的名字)。我會添加一些教程鏈接到答案。 – Aleadam 2011-04-03 07:13:40

0

兩種選擇適合你。

1:CHAGE request.getParameter("user");request.getParameter("q");

2:用ajax提交表單,你會得到的user參數。