天天看點

員工清單html,擷取員工清單(AJAX技術)

員工清單html,擷取員工清單(AJAX技術)

需求分析:設計并實作一個web程式,模拟從實作從資料庫中取員工資訊,并顯示在頁面中。要求可以異步重新整理。

系統分析與設計:設計一個Servlet(EmpServlet)用于生成XML檔案,存放員工資訊。并将XML發送到HTML頁面(emplist.html)。emplist.html中的AJAX發送請求給Servlet,Servlet處理後傳回結果,emplist.html中的AJAX響應請求。

//發送Ajax請求

function sendRequest(){...}

//AJax響應處理

function myshow(){....}

代碼:

1、emplist.html

emplist.html

var

xmlReq=false;

//發送AJAX請求

function sendRequest(){

//先建立對象

if(window.ActiveXObject){

xmlReq=new

ActiveXObject("Msxml2.XMLHTTP");

alert("new

Object created1");}

else{

xmlReq=new

XMLHttpRequest();

alert("new Object created by firefox");

}

xmlReq.open("post","servlet/EmpServlet");

xmlReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

xmlReq.onreadystatechange=showme;

xmlReq.send(null);

alert("after

post"); }

//AJAX相應處理

function

showme(){ if(xmlReq.readyState==4){

if(xmlReq.status==200){

var

xmlDoc=xmlReq.responseXML;

alert("begin showme0");

var

ids=xmlDoc.getElementsByTagName_r("id");

alert("begin showme1");

var

names=xmlDoc.getElementsByTagName_r("name");

var

sexs=xmlDoc.getElementsByTagName_r("sex"); var

table=document.getElementByIdx_x("table");

alert("begin showme2");

for(var

i=0;i

alert("showme in the middle2");

var newRow=

table.insertRow(table.rows.length);

var

new_id=newRow.insertCell(newRow.cells.length);

new_id.innerHTML=ids[i].firstChild.nodeValue;

var new_name=newRow.insertCell(newRow.cells.length);

new_name.innerHTML=names[i].firstChild.nodeValue;

var new_sex=newRow.insertCell(newRow.cells.length);

new_sex.innerHTML=sexs[i].firstChild.nodeValue;

alert("showme finished");

}

} }

}

//clear the table, so no records left.

function

clearTable(){

var

table=document.getElementByIdx_x("table");

for(var

i=table.rows.length-1;i>0;i--){

table.deleteRow(i); } 

This is my

HTML page.

οnclick="sendRequest()"/>

οnclick="clearTable()"/>

編号 姓名 性别

2. EmpServlet

//EmpServlet用于處理AJAX請求,并作出相應。

import java.io.IOException;

import java.io.PrintWriter;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class EmpServlet extends HttpServlet {

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws

ServletException, IOException {

request.setCharacterEncoding("utf-8");

response.setContentType("text/xml;charset=utf-8");

PrintWriter out =

response.getWriter();

List

emps=EmpDAO.findAll();

out.println("");

for(Emp emp:emps){

out.println("");

out.println("");

out.println(emp.getNo());

out.println("");

out.println("");

out.println(emp.getName());

out.println("");

out.println("");

out.println(emp.getSex());

out.println("");

out.println("");

}

out.println("");

}

//doGet is just for test purpose.

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

doPost(request,response);

response.sendRedirect("list.jsp");

request.getRequestDispatcher("emp.do").forward(request,

response);

}

}

3、EmpDAO

//模拟從資料庫中取資料

import java.util.ArrayList;

import java.util.List;

public class EmpDAO {

public static List

findAll(){

List emps=new

ArrayList();

emps.add(new Emp("1","xuliang","male"));

emps.add(new Emp("2","ice","female"));

emps.add(new Emp("3","sisi","male"));

return emps;

}

}

4、Emp.class

//Emp類用于封裝員工資訊,如編号,姓名和年齡等

public class Emp {

private String no;

private String name;

private String sex;

public Emp() {

}

public Emp(String no, String name, String sex) {

super();

this.no = no;

this.name = name;

this.sex = sex;

}

public String getNo() {

return no;

}

public void setNo(String no) {

this.no = no;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

}