欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-11-17 08:34:23
本文实例讲述了ajax+jsp实现读取xml内容并按排列显示输出的方法。分享给大家供大家参考,具体如下: 实现功能:点击按扭,显示出jsp页面中通过out.println...

本文实例讲述了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" id="txt"/>
  <input type="button" value="query" onclick="postmes()" /><br>
  <span id="sp"></span>
  姓名:<span id="spanname"></span><br>
  年龄:<span id="spanage"></span><br>
  性别:<span id="spansex"></span>
 </body>
</html>

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

在线xml/json互相转换工具:

在线格式化xml/在线压缩xml

xml在线压缩/格式化工具:

xml代码在线格式化美化工具:

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

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