您现在的位置:首页 >> 前端 >> 内容

Servlet与AJAX引擎互发XML并解析

时间:2017/10/8 10:14:00 点击:

  核心提示:客户端AJAX脚本:var xmlAjax = new XmlAJAX();//封装好的AJAX类,详见下var xmlToSend=34;//要发送到服务器的XML文本xmlAjax.get(/te...

客户端AJAX脚本:

var xmlAjax = new XmlAJAX();//封装好的AJAX类,详见下
var xmlToSend="34";//要发送到服务器的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里显示
}

服务器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="你的账号fes";//发到客户端的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();
        }
    }

web.xml文件:

   
        testServlet
        test.Servlet
    
    
        testServlet
        /testServlet
    

Tags:SE ER RV VL 
作者:网络 来源:身披白袍s博客