2011-12-19 38 views
0

我正在使用azax來動態更改jsp頁面,我想從該jsp頁面發送數據到一個servlet。 JSP代碼:使用ajax如何將參數從1個jsp頁面發送到另一個servlet

<input type="submit" oninput="loadXMLDoc(this.value)" value="ok" name="ok"> 
    <div id="myDiv"> 
     Insert Id:<input id="p1" type="text" name="edit1" value=""style="visibility:hidden" size="30"/> 
    </div> 
function loadXMLDoc(str){ 
    var xmlhttp; 
    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("myDiv").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("POST","edit?q="+str,true); 
xmlhttp.send(); 
} 

servlet代碼:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); Connection conn=null; 
    String url = "jdbc:mysql://localhost:3306/"; 
    String dbName = "studentdatabase"; 
    String driver = "com.mysql.jdbc.Driver"; 
    String userName = "root"; 
    String password = "1234"; 
    String student=request.getParameter("str"); 
    Statement stmt;out.println(student); 
    try { 
     Class.forName(driver).newInstance(); 
     conn = DriverManager.getConnection(url+dbName,userName,password); 
     String query = "select name1,telephone,email,department from studentinfo where studentid='"+student+""; 
     stmt = conn.createStatement(); 
     ResultSet rs = stmt.executeQuery(query); 
     while(rs.next()){ 
      String s = rs.getObject(1).toString(); 
      out.println("<p> " +s+ "</p>"); 
     } 
     conn.close; 
     //System.out.println("Disconnected from database"); 
    } catch (Exception e) { 
    e.printStackTrace(); 
} 
} 

絃樂學生表示,即使null沒有在數據庫studentid =學生的價值。

+0

你需要把一些調試到你的服務器端代碼(或者至少告訴我們aobut它) - 你在看什麼?

+ s +

產生了嗎?如果你看到

null

那麼你有一個行,但其中的值爲空.... – 2011-12-19 08:01:37

+0

它生成null – 2011-12-20 04:54:02

回答

0

由於您使用HTTP-POST,您必須將您的參數放入發送方法。

... 
var params = "q="+str; 
xmlhttp.open("POST", url, true); 

xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlHttp.setRequestHeader("Content-length", params.length); 
xmlHttp.setRequestHeader("Connection", "close"); 
xmlHttp.send(params); 
... 
+0

我試過這個,但它does not work.It顯示空。

+ s +

。什麼應該是servlet代碼:String student = request.getParameter(「str」);它可以嗎? – 2011-12-20 04:59:18

+0

well thanx,我解決了我的問題 – 2011-12-20 05:59:12

相關問題