- 本次的操作将通过AJax读取服务器端的数据,数据将采用json格式保存,最终讲这些数据设置到下拉列表框中
定义Servlet
package mao.shu.servlet;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/JSONServlet")
public class JSONServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
JSONObject jsonObject = new JSONObject();
jsonObject.put("name","Maoshu");
jsonObject.put("age",22);
jsonObject.put("sex","男");
int [] deptno = new int[]{1,2};
String[] dname = new String[]{"人事部","财务部"};
JSONArray dept= new JSONArray();
for (int x = 0; x < deptno.length; x++) {
JSONObject temp = new JSONObject();
temp.put("deptno",deptno[x]);
temp.put("dname",dname[x]);
dept.add(temp);
}
jsonObject.put("dept",dept);
resp.getWriter().print(jsonObject);
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
}
}
- 运行结果,显示出乱码不要紧,因为已经设置了编码格式,再度取得时候是没有问题的
- 随后编写JavaScript文件进行内容提示,显示为下拉列表框
- 示例:使用AJax数据处理
- 定义页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Javascript_json</title>
</head>
<body>
<div id="name">
</div>
<div id="age"></div>
<div id="sex"></div>
<div>
<select name="dept" id="dept-title">
</select>
</div>
</body>
</html>
var xmlhttprequest;
window.onload = function () {
loadInfo();
};
function createxmlhttprequest(){
if(window.XMLHttpRequest){
xmlhttprequest = new XMLHttpRequest();
}else if (window.ActiveXObject) {
xmlhttprequest = new ActiveXObject("Microsoft.XMLHttp");
}
}
function loadInfo(){
createxmlhttprequest();
xmlhttprequest.open("post","/JSONProject/JSONServlet");
xmlhttprequest.send(null);
xmlhttprequest.onreadystatechange = function() {
if (xmlhttprequest.readyState == 4) {
if(xmlhttprequest.status == 200){
var responseText = xmlhttprequest.responseText;
var jsonObj = eval("("+responseText+")");
var nameEle = document.getElementById("name");
var ageEle = document.getElementById("age");
var sexEle = document.getElementById("sex");
var deptEle = document.getElementById("dept");
nameEle.innerHTML = jsonObj.name;
ageEle.innerHTML = jsonObj.age;
sexEle.innerHTML = jsonObj.sex;
var dept = jsonObj.dept;
for(var x = 0; x < dept.length;x++){
var temp = dept[x];
var optEle = document.createElement("option");
optEle.setAttribute("value",temp.deptno);
optEle.appendChild(document.createTextNode(temp.dname));
deptEle.appendChild(optEle);
}
}
}
};
}