利用java和Ajax做个异步传输
用到的东西:
1.prototype.js
2.org.json.jar
主要的类:
package com.shangyu.json;
import org.json.*;
public class AjaxMessageJson {
private JSONObject json = new JSONObject();
public void setMessage(String codeid, String message) {
try {
this.json.put("codeid", codeid);
this.json.put("message", message);
this.json.put("text", "");
} catch (JSONException e) {
}
}
public void setMessage(String codeid, String message, String text) {
try {
this.json.put("codeid", codeid);
this.json.put("message", message);
this.json.put("text", text);
} catch (JSONException e) {
}
}
public String getJsonString() {
return this.json.toString();
}
}
登录页面:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<title>用户登录测试json返回数据格式</title>
<script type="text/javascript" src="js/prototype.js"></script>
<script language="JavaScript" type="text/javascript">
<!--
var flagSubmit = false ;
function checkUserName() {
//var contextPath = "<%=request.getContextPath()%>";
//alert(contextPath);
var url = "check_login_user.jsp";//校验入口
var pars = "username=" + $('username').value;//参数
var pars1 = "&pas=" + $('pas').value;//参数
//组合参数
pars+=pars1;
//异步传值
var myAjax = new Ajax.Request(url,{method: 'get', parameters: pars,onLoading:loading,onFailure:reportError,onComplete: done});
}
function loading()
{
//alert('正在调用');
}
//此方法接收返回的值做分析
function done(val) {
var valText = val.responseText;
alert(valText);
var jsonMsgObj = new JsonMsgObj(valText);
var message = jsonMsgObj.getMessage();
alert(message);
}
function reportError(request)
{
alert('Sorry. There was an error.');
}
</script>
</head>
<body>
<form action="" method="post" name="form1">
用户名:<input type="text" name="username""/>新密码:<input type="text" name="pas" onchange="checkUserName()"/><br>
<input type="button" name="button" value="发送" onclick="checkUserName()">
</form>
</body>
</html>
附工程文件下载: