首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

ajax、jsp、xml组合的一个小例子

2012-09-18 
ajax、jsp、xml结合的一个小例子1.首先一个简单的jsp页面?%@ page languagejava importjava.util.* p

ajax、jsp、xml结合的一个小例子

1.首先一个简单的jsp页面

?

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html><head><title>ajax例子</title><script type="text/javascript" src="js/check.js"></script></head><body><a href="#" onclick="getStu()">所有学生信息</a><div id="stuInfo"></div></body></html>
?

?

2.点击所有学生信息页面时,会调用check.js代码

?

var xmlHttpRequest;//定义为全局变量function getStu() {xmlHttpRequest = new XMLHttpRequest();xmlHttpRequest.open("post", "servlet/InfoServlet", true);xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttpRequest.send("name=" + "123");xmlHttpRequest.onreadystatechange = call;}function call() {var stuInfo = document.getElementById("stuInfo");if (xmlHttpRequest.readyState == 4) {if (xmlHttpRequest.status == 200) {var stuDom = xmlHttpRequest.responseXML;var stuList = stuDom.getElementsByTagName("student");var tableNode = document.createElement("table");// 创建tabletableNode.setAttribute("border", "1");for ( var i = 0; i < stuList.length; i++) {var student = stuList[i];var tr = tableNode.insertRow(i);for ( var j = 0; j < 3; j++) {var td = tr.insertCell(j);var str = student.childNodes[j];var text = document.createTextNode(str.firstChild.nodeValue);td.appendChild(text);}}stuInfo.appendChild(tableNode);}}}

?

3.这时会XMLHttpRequest对象会与servlet对象进行交互

?

package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import xmlUtil.GetXmlBuffer;public class InfoServlet extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/xml;charset=utf-8");PrintWriter out = response.getWriter();String buffer = GetXmlBuffer.getXmlBuffer();out.println(buffer);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

?4.servlet会调用GetXmlBuffer对象

?

package xmlUtil;import java.util.List;import sql.QueryStu;import bean.Student;public class GetXmlBuffer {public static String getXmlBuffer(){List<Student>list = new QueryStu().getStu();StringBuffer buffer = new StringBuffer("<students>");for(int i=0;i<list.size();i++){Student stu = list.get(i);buffer.append("<student>");buffer.append("<id>"+stu.getId()+"</id>");buffer.append("<name>"+stu.getName()+"</name>");buffer.append("<sex>"+stu.getSex()+"</sex>");buffer.append("</student>");}buffer.append("</students>");String str = new String(buffer);return str;}}

?

?5.这里先把Student JavaBean文件加上

?

package bean;public class Student {private int id;private String name;private String sex;.......//get,set方法}

?

?6.与数据交互

package sql;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JdbcUtils {private static Connection con = null;private static String url = "jdbc:mysql://localhost:3306/test";private static String user = "root";private static String password = "1990";static {try {Class.forName("com.mysql.jdbc.Driver");con = DriverManager.getConnection(url, user, password);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}public static Connection getConnection() {return con;}}?

??package sql;

import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import bean.Student;public class QueryStu {private static Connection conn = null;static {conn = JdbcUtils.getConnection();}public List<Student> getStu(){List<Student> list = new ArrayList<Student>();PreparedStatement ps = null;String sql = "select * from student where id<11";try {ps = conn.prepareStatement(sql);ResultSet rs = ps.executeQuery();while(rs.next()){Student stu = new Student();stu.setId(rs.getInt(1));stu.setName(rs.getString(2));stu.setSex(rs.getString(3));list.add(stu);}} catch (SQLException e) {e.printStackTrace();}return list;}}

?7.最后全局把握一下:

这个例子,xml处理时,没有使用dom4j,只是简单的用了字符串拼接的方法,然后在javascript中利用element把xml数据取出来,然后动态的添加到页面表格中

?

?

热点排行