您的位置:首页 > Web前端 > JavaScript

利用json和prototype来做用户是否正确的判断,传统的方式是提交后做判断,这里使用的是ajax异步传输的方式。

2008-08-05 16:38 1001 查看
利用json和prototype来做用户是否正确的判断,传统的方式是提交后做判断,这里使用的是ajax异步传输的方式。
所需文件
1.UserLogin_JSON.jsp (主要页面,在IE中基本中出现这个页面,其它的处理都在后台不可见)
2.check_login_user.jsp (这个做为判断用户名是否正确的文件,可以写成jsp,servlet,在struts2中就可以为一个action)
3.AjaxMessageJson.java (将java对象转成json数据格式,需要用到org.json,json-lib.jar)
4.js/prototype.js (这是js/prototype的库,网上随处可下)
5.json.js (用来解析得到的responseText,否则客户端得到的是html格式的文件)
1.UserLogin_JSON.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<title>用户登录测试json返回数据格式</title>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/comm.js"></script>
<script language="JavaScript" type="text/javascript">
<!--
var flagSubmit = false ;
function checkUserName() {
//var contextPath = "<%=request.getContextPath()%>";
var url = "check_login_user.jsp";
var pars = "username=" + $('username').value;
var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars,onLoading : loading,onFailure:reportError,onComplete: done});
}
function loading()
{
// alert('正在调用');
}
function done(res) {
resText = res.responseText;
alert(resText);
var jsonMsgObj = new JsonMsgObj(resText);
var message = jsonMsgObj.getMessage();
alert(message);
}
function reportError(request)
{
alert('Sorry. There was an error.');
}
</script>
</head>

<body>
<form action="sub.jsp" method="post" name="form1">
用户名:<input type="text" name="username""/><br>
<input type="button" name="button" value="" onclick="checkUserName()">
</form>
</body>
</html>

2.check_login_user.jsp //注释:注意不要出现任何html的标签,这里只做一个简单的判断,可以方便的扩充为数据库判断

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import=" com.shangyu.json.AjaxMessageJson"%>
<%
String username=request.getParameter("username");
//System.out.println("执行后台:"+username);
AjaxMessageJson ajaxMessagesJson=new AjaxMessageJson();
if(username.equals("fly"))
ajaxMessagesJson.setMessage("E_USERNAME_001", "用户名正确!");
else
ajaxMessagesJson.setMessage("E_USERNAME_001", "用户名不太正确!");
out.println(ajaxMessagesJson.getJsonString());
%>

3.AjaxMessageJson.java

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();
}
}

当然如果仅仅只需要做一个用户名是否存在或正确的判断,完全可以不需要用到json来做数据格式的传输,直接利用html文本方式来就可以了。

但是如果要传输更为复杂一些的数据,则可以利用XML和json,但由于xml在客户端解析的复杂性,现在要实现ajax功能,普遍倾向于使用json
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐