AJAX教程

AJAX Java数据库示例

在此示例中,我们使用Ajax与数据库进行交互。无需太多的代码。仅在服务器端页面中写入数据库逻辑。

在这个例子中,在index.jsp文件中编写了服务器端代码。

通过jsp使用数据库创建ajax示例的步骤

需要按照以下步骤操作:

• 加载org.json.jar文件

• 创建输入页面以接收文本或数字

• 创建服务器端页面以处理请求

第一步:加载org.json.jar文件

下载此示例,在WEB-INF/lib目录中放入org.json.jar文件。

第二步:创建输入页面以接收文本或数字

在此页面中,我们创建了一个从用户获取输入的表单。当用户按任意键时,调用sendInfo()函数。在这个函数中编写了所有的ajax代码。

只要准备好状态更改,就调用了getInfo()函数。它通过innerHTML属性动态地将返回的数据写入网页。

文件:table1.html

<html>

<head>
    <script>
        var request;
        function sendInfo() {
            var v = document.vinform.t1.value;
            var url = "index.jsp?val=" + v;

            if (window.XMLHttpRequest) {
                request = new XMLHttpRequest();
            }
            else if (window.ActiveXObject) {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            }

            try {
                request.onreadystatechange = getInfo;
                request.open("GET", url, true);
                request.send();
            } catch (e) { alert("Unable to connect to server"); }
        }

        function getInfo() {
            if (request.readyState == 4) {
                var val = request.responseText;
                document.getElementById('amit').innerHTML = val;
            }
        }

    </script>
</head>

<body>
    <marquee>
        <h1>This is an example of ajax</h1>
    </marquee>
    <form name="vinform">
        Enter id:<input type="text" name="t1" onkeyup="sendInfo()">
    </form>

    <span id="amit"> </span>

</body>

</html>

第三步:创建服务器端页面以处理请求

在这个jsp页面中,我们打印给定id的员工的编号和姓名。

文件:index.jsp

<%@ page import="java.sql.*"%>

<%  
String s=request.getParameter("val");  
if(s==null || s.trim().equals("")){  
    out.print("Please enter id");  
}else{  
    int id=Integer.parseInt(s);  
    out.print(id);  
try{  
    Class.forName("com.mysql.jdbc.Driver");  
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mdb","root","root");  
    PreparedStatement ps=con.prepareStatement("select * from emp where id=?");  
    ps.setInt(1,id);  
    ResultSet rs=ps.executeQuery();  
    while(rs.next()){  
        out.print(rs.getInt(1)+" "+rs.getString(2));  
    }  
    con.close();  
}catch(Exception e){
    e.printStackTrace();
    }  
}  
%>

执行上面项目示例代码,得到类似以下结果:

 

全部教程