1.web.xml
action
org.apache.struts.action.ActionServlet
config
/WEB-INF/struts-config.xml
debug
3
detail
3
0
action
*.do
index.jsp
2.struts-config.xml
3.index.jsp
姓名:
AJAX返回的值:
4.create.js
// 创建XMLHttpRequest对象 function createXMLHttpRequest() {
// 判断浏览器是否通过JavaScript本地方法支持XMLHttpRequest对象
if (window.XMLHttpRequest) { // Mozilla浏览器
// 除IE浏览器外其他浏览器中创建XMLHttpRequest对象的方法
XMLHttpReq = new XMLHttpRequest();
} else { // IE浏览器
// 判断浏览器是否支持ActiveX,在IE浏览器中是通过ActiveX组件支持XMLHttpRequest对象
if (window.ActiveXObject) { // 在不同版本的IE浏览器中,对XMLHttpRequest对象的支持方法有些不同
// 用以下代码来判断以适应不同版本的IE浏览器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) { } } } } }
// 处理服务器响应请求,对服务器返回的信息进行分析处理,并且把分析的结果展示在页面的指定位置
function handleResponse() {
// 判断对象状态,readyState这个属性描述了请求的状态,可以取下面的5个值:0(未初始化),1(正在加载),2(已加载),3(交互中),4(已完成)
if (XMLHttpReq.readyState == 4) { // 信息已经成功返回,开始处理信息
// status属性描述了服务器的状态码,可以是200,404等
if (XMLHttpReq.status == 200) {
var out = "";
// responseXML是服务器以XML格式返回的响应。
var res = XMLHttpReq.responseXML;
var response = res.getElementsByTagName("response")[0].firstChild.nodeValue;
document.getElementById("hello").innerHTML = response;
// document.getElementsByName("hello").innerHTML=response;
} } }
// 发送客户端的请求
function sendRequest(url) {
createXMLHttpRequest();
// open(string method,string url,boolean asynch,string name,string password)方法用于建立对服务器的调用
// 这个方法有5个参数,前两个参数是必须的,其中method可以是GET或者POST,url是指所要访问的服务器资源的位置,aysnch是指异步访问服务器还是同步访问,默认是异步访问,异步访问正是Ajax的优势所在。使用最后两个参数可以使用指定的用户名和密码访问服务器资源。
XMLHttpReq.open("GET", url, true); // 指定响应函数
// onreadystatechange属性,每个状态的改变都会调用这个事件处理器,使用这个属性可以监听状态的变化,并提供对应的处理方法
XMLHttpReq.onreadystatechange = handleResponse;
// 发送请求,send(content)方法向服务器发送请求,这个方法中的参数会作为请求中的内容发送到服务器
XMLHttpReq.send(null);
}
// 开始调用Ajax的功能
function sayHello() {
var name = document.getElementById("name").value;
// alert(name);
// 发送请求
sendRequest("message.do?name="+name);
}
5. MessageAction.java
public class MessageAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
// MessageForm messageForm=(MessageForm) form;
//设置生成文件的类型和编码方式
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter returnValue=response.getWriter();
String output=""; //处理接收到的参数,生成响应的XML文档
// System.out.println(messageForm.getName());
// System.out.println(request.getParameter("name"));
// if(messageForm.getName().equals("15979089546")){
if(request.getParameter("name").equals("15979089546")){
output="wensm";
}else{
output="该用户不存在";
}
returnValue.print(output);
returnValue.close();
return mapping.findForward("sucess");
} }
6.MessageForm.java
public class MessageForm extends ActionForm{
private String name=null;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} }