当前位置 博文首页 > AJAX+JSP实现读取XML内容并按排列显示输出的方法示例

    AJAX+JSP实现读取XML内容并按排列显示输出的方法示例

    作者:GreatNeyo 时间:2021-08-27 18:52

    本文实例讲述了AJAX+JSP实现读取XML内容并按排列显示输出的方法。分享给大家供大家参考,具体如下:

    实现功能:点击按扭,显示出JSP页面中通过out.println传过来的xml信息

    一、含XML的JSP页面

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
      response.setContentType("text/xml");
      String txt = request.getParameter("username");
      out.println("<student><name>张三</name><age>21</age><sex>男</sex></student>");
     %>
    
    

    二、AJAX处理并显示返回页面

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
      <title>ajax02</title>
      <script type="text/javascript">
      /*
        ajax 的几个步骤:
        1、建立XmlHttpRequest对象
        2、设置回调函数
        3、使用Open方法建立与服务器的连接
        4、向服务器发送数据
        5、在回调函数中针对不同响应状态进行处理
      */
        var xmlHttp;
        function createXMLHttpRequest(){  //1建立XmlHttpRequest对象
          if(window.ActiveXObject){
            try{
              alert("Msxml2.XmlHttp.5.0");
                xmlHttp = new ActiveXObject("Msxml2.XmlHttp.5.0");
            }catch(e){
              try{
                xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
              }catch(e){
                alert("Microsoft.XMLHttp");
              }
            }
          }else{
            xmlHttp = new XMLHttpRequest();
          }
        }
        function showMes(){   //2设置回调函数
          if(xmlHttp.readyState==4){ //数据接收完成并可以使用
            if(xmlHttp.status==200){ //http状态OK
            //5、在回调函数中针对不同响应状态进行处理
            // document.getElementById("sp").innerHTML = xmlHttp.responseText; //服务器的响应内容
              var name = xmlHttp.responseXML.getElementsByTagName("name")[0].firstChild.nodeValue;
              var age = xmlHttp.responseXML.getElementsByTagName("age")[0].firstChild.nodeValue;
              var sex = xmlHttp.responseXML.getElementsByTagName("sex")[0].firstChild.nodeValue;
              document.getElementById("spanname").innerHTML = name;
              document.getElementById("spanage").innerHTML = age;
              document.getElementById("spansex").innerHTML = sex;
            }else{
              alert("出错:"+xmlHttp.statusText); //HTTP状态码对应的文本
            }
          }
        }
        /**
        //这是GET方法传送
        function getMes(){
          createXMLHttpRequest();
          var txt = document.getElementById("txt").value;
          var url="servlet/AjaxServlet?txt="+txt;
          url = encodeURI(url); //转换码后再传输
          xmlHttp.open("GET",url,true); //3使用Open方法建立与服务器的连接
          xmlHttp.onreadystatechange=showMes;
          xmlHttp.send(null); //4向服务器发送数据
        }
        */
        /**
        *这是post方法
        */
        function postMes(){
          createXMLHttpRequest();
          var txt = document.getElementById("txt").value;
        // var url = "servlet/AjaxServlet";
          var url = "work02forxml-2.jsp"
          var params = "username="+txt;
          xmlHttp.open("POST",url,true);
          xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
          xmlHttp.send(params);
          xmlHttp.onreadystatechange = showMes;
        }
      </script>
     </head>
     <body>
      <input type="text" />
      <input type="button" value="query" onclick="postMes()" /><br>
      <span ></span>
      姓名:<span ></span><br>
      年龄:<span ></span><br>
      性别:<span ></span>
     </body>
    </html>
    
    

    PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

    在线XML/JSON互相转换工具:
    http://tools.jb51.net/code/xmljson

    在线格式化XML/在线压缩XML
    http://tools.jb51.net/code/xmlformat

    XML在线压缩/格式化工具:
    http://tools.jb51.net/code/xml_format_compress

    XML代码在线格式化美化工具:
    http://tools.jb51.net/code/xmlcodeformat

    更多关于ajax相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《JavaScript中ajax操作技巧总结》、《PHP+ajax技巧与应用小结》及《asp.net ajax技巧总结专题》

    希望本文所述对大家ajax程序设计有所帮助。

    jsjbwy
    下一篇:没有了