struts1 ajax 多文件,Struts1.x中利用Ajax动态更新详解

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;

}   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值