Ajax+Servlet

Ajax + Servlet + JSON  包 –  使用
主要用於接受對象:
前臺:
var obj ="{'name':'123','age':'321'}";
XMLHttpReq.send("conn="+obj); // 發送請求
後臺:
String str = request.getParameter("conn");
JSONObject object = JSONObject.fromObject(str);
String name = object.getString("name");
發送對象:
User user = new User();
user.setAge(26);
user.setName("www");
PrintWriter out = response.getWriter();
System.out.println(name + "-" + age);
JSONObject jsonObject = JSONObject.fromObject(user);
out.write(jsonObject.toString());
發送 list 和數組
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);
發送 map:
JSONObject json = JSONObject.fromObject(map);
System.out.println(json);
一、建立項目項目
二、添加 JSON 庫文件
三、創建頁面
代碼:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords"
content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="json.js"></script>
<script type="text/javascript">
var XMLHttpReq;
//創建XMLHttpRequest對象
function createXMLHttpRequest() {
if (window.XMLHttpRequest) { //Mozilla 瀏覽器
XMLHttpReq = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE瀏覽器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new
ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
}
//發送請求函數
function sendRequest()
{
createXMLHttpRequest();
var url = "add.do";
XMLHttpReq.open("post", url, true);
XMLHttpReq.setRequestHeader("Content-Type","application/x-www-for
m-urlencoded");
XMLHttpReq.onreadystatechange = processResponse;//指定響應函數
var obj ="{'name':'123','age':'321'}";
XMLHttpReq.send("conn="+obj); // 發送請求
//XMLHttpReq.send(o.toJSONString());
}
// 處理返回信息函數
function processResponse()
{
if (XMLHttpReq.readyState == 4)
{
// 判斷對象狀態
if (XMLHttpReq.status == 200)
{
var t = XMLHttpReq.responseText; //返回文本數據(JSON對象格
式的數據,數組)
var obj = eval('('+t+')'); //json對象的字符串轉換成對象
var ht = "";
for(var i = 0;i<obj.length;i++){
ht +=obj[i].b;
ht +=obj[i].a;
}
// 信息已經成功返回,開始處理信息
document.getElementById("ca").innerText =obj.name ;
}
else
{
//頁面不正常
window.alert("您所請求的頁面有異常。");
}
}
}
</script>
</head>
<body>
<button οnclick="sendRequest();">sendRequest</button>
<div id="ca">asdfasdfasd</div>
</body>
</html>
四、編寫 Servlet 接受數據
代碼:
public class AddServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
String str = request.getParameter("conn");
JSONObject object = JSONObject.fromObject(str);
String name = object.getString("name");
int age = object.getInt("age");
User user = new User();
user.setAge(26);
user.setName("www");
PrintWriter out = response.getWriter();
System.out.println(name + "-" + age);
JSONObject jsonObject = JSONObject.fromObject(user);
out.write(jsonObject.toString());
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章