[JavaScript][AJAX]Servlet与AJAX引擎互发XML并解析

客户端AJAX脚本:

var xmlAjax = new XmlAJAX();//封装好的AJAX类,详见下
var xmlToSend="<?xml version='1.0' encoding='utf-8'?><me><age>34</age></me>";//要发送到服务器的XML文本
xmlAjax.get("/testServlet?value="+xmlToSend);//利用封装类的get方法发送
if(xmlAjax.isReady()){//服务器回应
    var xml=xmlAjax.getData();//获得服务器回应的XML
    var tet=xml.getElementsByTagName("name")[0].childNodes[0].nodeValue;//解析
    document.getElementById("result").innerHTML = xml;//在HTML里显示
}
其中,XmlAJAX()类的获取详见: http://blog.csdn.net/shenpibaipao/article/details/78156965

服务器Servlet的doGet方法:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/xml;charset=UTF-8");//添加文件头,标明是xml文本 和 UTF-8编码(防止中文乱码)
        response.setHeader("Cache-control", "no-cache");//不做缓存
        //System.out.println("GET收到了");//服务器控制台输出提示

        PrintWriter out = response.getWriter();
        String txt="<?xml version='1.0' encoding='utf-8'?><user><name>你的账号</name><pwd>fes</pwd></user>";//发到客户端的XML
        out.write(txt);//发到客户端
        try{
            String value = new String(request.getParameter("value").getBytes("ISO8859-1"),"UTF-8");//防止中文乱码
            //System.out.println("收到了"+value);//服务器控制台输出接受到的文本

            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();//获取解析器
            DocumentBuilder db = dbf.newDocumentBuilder();
            InputSource is = new InputSource(new StringReader(value));//把String转为Document对象
            Document doc = db.parse(is);
            String age = doc.getElementsByTagName("age").item(0).getChildNodes().item(0).getTextContent();//解析
            System.out.println("age="+age);//输出        
        }catch (Exception e){
            e.printStackTrace();
        }
    }

其中,关于Document的解析参见:http://blog.csdn.net/shenpibaipao/article/details/72802529


web.xml文件:

    <servlet>
        <servlet-name>testServlet</servlet-name><!--Servlet名(可任取)-->
        <servlet-class>test.Servlet</servlet-class><!--类所在位置-->
    </servlet>
    <servlet-mapping>
        <servlet-name>testServlet</servlet-name><!--Serrvlet名(与上相同)-->
        <url-pattern>/testServlet</url-pattern><!--Servlet对应的url(客户端访问的url地址)-->
    </servlet-mapping>



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值