下载后可任意编辑探讨 Ajax 猎取表单值向 Servlet 传递的设计方案 现 在JavaWeb领 域 , MVC框 架 越 来 越 多 , 比 较 出 名 的 有Struts、Struts2、SpringMVC、WebWork 等。而 Ajax,作为一种与特定的动态 Web编程语言(如 Java、C#、PHP)无关的技术,也已经被引入到了 Java MVC 框架的各家各户。而这些 MVC 框架,归根到底,都是对 Servlet 技术的封装。同时,支持 Ajax 的JavaScript 框架(or 类库)也越来越多,出名的如 Jquery、Ext、Prototype、DWR 等,而它们实现异步传输功能还是离不开 JavaScript 中的 XMLHttpRequest 这个对象。好,转入正题吧。Ajax 通过 XMLHttpRequest 对象实现异步传输,那我们首先要猎取这个对象。由于浏览器的差异,为了兼容各种常用的浏览器,先写一个初始化 XMLHttpRequest 对象的方法,代码如下: Js 代码 1/** 2* Get 方式向服务器端异步发送数据 3* @param url 服务器端的路径,数据发送的目的地 4* @param data 发送的数据,格式如: "key1=value1&key2=value2" 5* @param callback 回调函数, 6*/ 7function doGet(url, data, callback) { 8 var url = url; 9 if(url.indexOf("?") == -1) { 10 url = url + "?" + data; 11 } else { 12 url = url + "&" + data; 13 } 14 initXmlHttp(); 15 xmlHttp.onreadystatechange = callback; //注册回调函数 16 xmlHttp.open("GET", url, true); //设置连接信息 17 xmlHttp.send(null); 18 } 19 20 /** 21 * Post 方式向服务器端异步发送数据 22 * @param url 服务器端的路径,数据发送的目的地 23 * @param data 发送的数据,格式如: "key1=value1&key2=value2" 24 * @param callback 回调函数 25 * @return 26 */ 下载后可任意编辑27 function doPost(url, data, callback) { 28 initXmlHttp(); //初始化 29 xmlHttp.onreadystatechange = callback; //注册回调函数 30 xmlHttp.open("POST", url, true); 31 xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 32 xmlHttp.send(data); 33 } 34 35 /** 36 * 默认回调函数 37 * 只在测试时使用,在 doGet 和 doPost 函数中的第三个参数 callback,可由用户自定义回调函数, 38 * 若...