zhtjava 发表于 2013-1-23 02:24:07

ajax

客户端:
var xmlHttp;
function createXMLHttpRequest() {

    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        }
    }
}
function getMessage() {
    //alert("getmessage");
    createXMLHttpRequest();
    var d=new Date();
    var time=d.getFullYear()+"-"+d.getUTCMonth()+"-"+d.getUTCDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
    //var strurl = "loadmsg";    //这个是在WEB.XML文件中配置的servlet。也可以写在Action中。EG:/loginAction.do
        var strurl = "loadmsg?time="+time;
        xmlHttp.open("GET", strurl, true);
    xmlHttp.onreadystatechange = callback;
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=GBK");
        xmlHttp.setRequestHeader("contentType","text/html;charset=GBK");
        //xmlHttp.setRequestHeader("RequestType","ajax");
        //var data = "time="+time+"&mapname="+MapName;
        //data=encodeURI(data);
        //data=encodeURI(data);
        //xmlHttp.send(data);

    xmlHttp.send(null);

    theTimer = setTimeout("getMessage()", 7000);
}
function callback() {
    //alert("readyState"+xmlHttp.readyState);
    //alert("status"+xmlHttp.status);
    if (xmlHttp.readyState == 4) {//end
        if (xmlHttp.status == 200) {//http OK
            //alert("callback!");
            //clearRow();
            var style,errip,err,time;
//返回responseXML是XML文件,如果是responseText是字符串
            var nodes=xmlHttp.responseXML.getElementsByTagName("errmsg");
            var xlen=xmlHttp.responseXML.getElementsByTagName("errmsg").length;
             style=nodes.getElementsByTagName("style").firstChild.data;
 
}
服务器端:
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response) throws IOException,
            ServletException {
        request.setCharacterEncoding("GBK");

        StringBuffer responseXml = new StringBuffer(
                "<?xml version='1.0' encoding='gb2312' standalone='no'?>");
        responseXml.append("<response>");
        //String mapname= new String(request.getParameter("mapname").getBytes("UTF-8"),"GBK");
        String mapname= request.getParameter("mapname");
        String tmpstr = java.net.URLEncoder.encode("",
                "UTF-8");
        System.out.println("tmpstr:" + tmpstr);
        System.out.println("tmpstr:" +
                           java.net.URLDecoder.decode(tmpstr, "UTF-8"));

        String time = (String) request.getParameter("time");
        Calendar cal = Calendar.getInstance();

        SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
        String mDateTime = formatter.format(cal.getTime());


        ServersAndLinksXML salx = new ServersAndLinksXML();
        List list = salx.getMapsList();
        List link, server;
        MapVo ompvo;
        //test
        System.out.println("list:" + list.size());
        for (int i = 0; i < list.size(); i++) {
            ompvo = (MapVo) list.get(i);

            System.out.println("mapname1+++++++7" + mapname +
                               request.getCharacterEncoding());
            System.out.println("getMap_name" + ompvo.getMap_name().toString()); //乱码问题
            if (ompvo.getMap_name().equals(mapname)) {
                //LINK信息添加到XML文件
                link = ompvo.getLinksList();
                Link olink = new Link();
                System.out.println("link:" + link.size());
                for (int l = 0; l < link.size(); l++) {
                    olink = (Link) link.get(l);
                    System.out.println(link.get(l).toString());
                    responseXml.append("<errmsg>");
                    responseXml.append("<style>LINK</style>");
                    responseXml.append("<errip>" + olink.getLinkMapID() +
                                       "</errip>");
                    responseXml.append("<err>数据库中未检索到该IP的错误信息</err>");
                    responseXml.append("<time>" + time + "</time>");
                    responseXml.append("</errmsg>");
                }
                link.clear();
                //SERVER信息添加到XML文件
                server = ompvo.getServersList();
                System.out.println("server:" + server.size());
                Server oserver = new Server();
                for (int m = 0; m < server.size(); m++) {
                    oserver = (Server) server.get(m);
                    System.out.println(oserver.getServerIP());
                    responseXml.append("<errmsg>");
                    responseXml.append("<style>SERVER</style>");
                    responseXml.append("<errip>" + oserver.getServerIP() +
                                       "</errip>");
                    responseXml.append("<err>数据库中未检索到该IP的错误信息</err>");
                    responseXml.append("<time>" + time + "</time>");
                    responseXml.append("</errmsg>");
                }
                server.clear();
            }
        }

        responseXml.append("</response>");
        response.setContentType("text/xml;charset=gb2312");
        response.getWriter().print(responseXml);
        list.clear();
    }
页: [1]
查看完整版本: ajax