struts2+ajax实现页面的自动刷新:
在自己的主页做了添加好友的功能,但是每次添加好友,都需对方刷新一下页面才能看到自己消息(虽然刷新页面也很方便),但是这里在学习ajax,我希望页面能自动刷新,这里做一个测试,让自己的页面实时刷新:
js:
function creatXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE实例
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();//其他浏览器实例
}
}
//处理服务器响应结果
function handleResponse(){
if(xmlHttp.readyState==4){
//信息成功返回
if(xmlHttp.status==200){
var out="",res=xmlHttp.responseXML,resp=res.
getElementsByTagName("response")[0].firstChild.nodeValue;
document.getElementById("content").innerHTML=resp;
//设置6000毫秒后从服务器取值
setTimeout("refreshRequest()", 6000);
}
}
}
function sendRequest(url){
creatXMLHttpRequest();
xmlHttp.open("post", url, true);
//指定响应的函数
xmlHttp.onreadystatechange = handleResponse;
//发送请求
xmlHttp.send(null);
}
//调用ajax功能
function refresh(){
setTimeout("refreshRequest()", 6000);
refreshTime();
}
//
function refreshRequest(){
sendRequest("login_execute.action");
}
//实时刷新页面
function refreshTime(){
setTimeout("refreshTime()", 1000);
var time=document.getElementById("time").innerHTML;
time=time-1;
if(time>0){
document.getElementById("time").innerHTML=time;
}
else{
document.getElementById("time").innerHTML=6;
}
}
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>自动刷新</title>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/time.js"></script>
</head>
<body οnlοad="refresh()">
<font size="1">
本页面将在<span id="time"></span>后刷新
<div id="content"></div>
</font>
</body>
</html>
action:
package action;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.http.*;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.*;
public class Login extends SuperAction{
private String user;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String execute()throws Exception{
HttpServletRequest request =
(HttpServletRequest) ActionContext.getContext()
.get(ServletActionContext.HTTP_REQUEST);//获取request
HttpServletResponse response =
(HttpServletResponse) ActionContext.getContext()
.get(ServletActionContext.HTTP_RESPONSE);
PrintWriter out = response.getWriter();
String res="",output="";
Date date =new Date();
res += "上次刷新时间是:"+date.toString();
output ="<response>"+res+"</response>";
out.print(output);
out.close();
// if(user=="123"||"123".equals(user)){
// out.print("true");
// }
// else{
// out.print("false");
// }
// out.flush();
// out.close();
// String password = "666";
// System.out.println("============================="+user);
//
return null;
}
}