Java+AJAX搜索示例

在此示例中,我們將創建一個表單,使用java與ajax實現按名稱搜索員工。在這裏,我們編寫了兩層應用程式代碼,以使應用程式易於理解。您可以根據標準編寫資料庫代碼。

在Java中使用AJAX創建搜索示例的步驟

需要按照以下步驟操作:

  • 在資料庫中創建表
  • 加載org.json.jar檔
  • 創建輸入表單
  • 創建伺服器端頁面以使用名稱搜索員工

加載org.json.jar檔
下載此示例,在WEB-INF/lib目錄中包含了org.json.jar檔。

創建輸入表單

在此頁面中,我們創建了一個表單,該表單從用戶獲取輸入以按名稱搜索員工。用戶在按鍵盤後釋放鍵時,會調用searchInfo()函數。ajax代碼寫在searchInfo()函數中。

檔:index.html

<!DOCTYPE html>
<html>

<head>
    <script>
        var request = new XMLHttpRequest();
        function searchInfo() {
            var name = document.vinform.name.value;
            var url = "index.jsp?val=" + name;

            try {
                request.onreadystatechange = function () {
                    if (request.readyState == 4) {
                        var val = request.responseText;
                        document.getElementById('mylocation').innerHTML = val;
                    }
                }//end of function
                request.open("GET", url, true);
                request.send();
            } catch (e) { alert("Unable to connect to server"); }
        }
    </script>
</head>

<body>
    <h1>Search Employee</h1>
    <form name="vinform">
        <input type="text" name="name" onkeyup="searchInfo()">
    </form>

    <span id="mylocation"></span>
</body>

</html>

創建伺服器端頁面以處理請求
在這個jsp頁面中,我們編寫資料庫代碼來搜索以給定名稱開頭的員工。

檔:index.jsp

<%@ page import="java.sql.*" %>
<%
String name=request.getParameter("val");
if(name==null||name.trim().equals("")){
out.print("<p>Please enter name!</p>");
}else{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
PreparedStatement ps=con.prepareStatement("select * from emp911 where name like '"+name+"%'");
ResultSet rs=ps.executeQuery();

if(!rs.isBeforeFirst()) {
 out.println("<p>No Record Found!</p>");
}else{
out.print("<table border='1' cellpadding='2' width='100%'>");
out.print("<tr><th>Id</th><th>Name</th><th>Email</th>
<th>Address</th><th>City</th><th>State</th><th>Country</th></tr>");
while(rs.next()){
out.print("<tr><td>"+rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getString(3)+"</td>
<td>"+rs.getString(4)+"</td><td>"+rs.getString(5)+"</td><td>"+rs.getString(6)+"</td>
<td>"+rs.getString(7)+"</td></tr>");
}
out.print("</table>");
}//end of else for rs.isBeforeFirst
con.close();
}catch(Exception e){out.print(e);}
}//end of else
%>

上一篇: AJAX+Java評論表單示例 下一篇: AJAX JSON示例