ajax学习笔记2
第二种方式:使用XMLHttpRequest对象的responseXML的方式来接受XML数据对象的DOM对象 AJAXXMLServer.java
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import java.io.IOException; import java.io.PrintWriter; //XML的数据 public class AJAXXMLServer extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException { //response.setContentType("text/html;charset=utf-8"); response.setContentType("text/xml;charset=utf-8"); //修改此次为text/xml PrintWriter out=response.getWriter(); //1.取参数 String old=request.getParameter("name"); StringBuffer sb=new StringBuffer(); sb.append("<message>"); //2.检查是否有问题 if(old==null||old.length()==0){ sb.append("用户名不能为空").append("</message>"); //拼装XML }else{ //3.校验操作 String name=old; if(name.equals("pan")){ //4.和传统应用不同之处。这一步需要将用户感兴趣的数据返回给页面端,而不是将一个新的页面发送给用户 //写法没有变,本质变了 sb.append("用户名["+name+"]已经存在").append("</message>"); //拼装XML }else{ sb.append("用户名["+name+"]可以使用").append("</message>"); //拼装XML } } out.println(sb.toString());//注意,此句一定不能少了,并且注意放置的位置 } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { this.doGet(request,response); } } 2.修改web.xml
<servlet> <servlet-name>AJAXXMLServer</servlet-name> <servlet-class>AJAXXMLServer</servlet-class> </servlet> <servlet-mapping> <servlet-name>AJAXXMLServer</servlet-name> <url-pattern>/AJAXXMLServer</url-pattern> </servlet-mapping> 3.修改verify.js文件 responseText //获取服务器端返回的数据 //第一种方式:获取服务器端输出的纯文本数据 var responseText=xmlhttp.responseText; //将数据显示在页面上 通过dom的方式找到div标签对应的元素节点 var divNode=document.getElementById("result"); //设置元素节点中的html的内容 divNode.innerHTML=responseText; 改为: 第三处: text/html
if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType("text/html"); }
改为:
if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType("text/xml");//XML的方式时需要修改这个地方 }
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- LayaAir引擎学习日志3----FlashDevelop/Flash Builder开发环
- C#中的“MoveFile”功能(重启后删除文件)
- swift 中#pragma mark 表示方法
- XML序列化数据对象(二)
- cocos2dx封装一个具有Layout功能的Point类 (提供源码)
- react-native – 无法使用远程redux devtools连接本机应用程
- 你能“绑定”或者提供一个替代实现的数据框架在R?
- L1、L2 损失、正则
- ruby-on-rails – 如何使用Backbone.history.navigate传递参
- c# – Process.Start()什么时候可以返回null?