AJAX基础,AJAX验证邮箱是否存在的例子。
例子: function loadXMLDoc(email_){ var xmlhttp; if(window.XMLHttpRequest){//判断浏览器是否支持XMLHttpRequest()对象。 xmlhttp=new XMLHttpRequest();// }else{//不支持的话创建ActiveXObject()对象。 xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function()//状态改变时调用 { if(xmlhttp.readyState==4&&xmlhttp.status==200){ document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } else{document.getElementById("myDiv").innerHTML="用户名拉取失败";} } var url="do/user?email="+email_; xmlhttp.open("GET",url,true) xmlhttp.send(); } function getValue(){//用来获取ID的值。 var str=document.getElementById("email").value; loadXMLDoc(str); } 一下为servlet的代码: package cn.wodeschool.school.web.controller; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.wodeschool.school.model.entity.User; import cn.wodeschool.school.model.servicer.imple.ServiceFactory; @WebServlet("/do/user") public class LoginUserServlet extends HttpServlet{ private static final long serialVersionUID = -2726821096314314651L; protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ String op =request.getParameter("op"); String email=request.getParameter("email"); String password=request.getParameter("password"); User user=new User(); user.setEmail(email); user.setPassword(password); if("reg".equals(op)){ doRegister(request,response,user); }else if("login".equals(op)){ doLogin(request,user); } } @SuppressWarnings("unchecked") private void doLogin(HttpServletRequest request,HttpServletResponse response,User user) throws IOException { List<User> list=ServiceFactory.getService("user").findByConditions(user.getEmail()); if(list.isEmpty()||!list.get(0).getPassword().equals(user.getPassword())){ response.getWriter().write("用户名或者密码错误"); return; } request.getSession().setAttribute("user",list.get(0)); response.getWriter().write("登录成功"); } private void doRegister(HttpServletRequest request,User user) throws IOException { String phone=request.getParameter("phone"); String name=request.getParameter("name"); String profession=request.getParameter("profession"); user.setName(name); user.setPhone(phone); user.setProfession(profession); @SuppressWarnings("unchecked") List<User> list=ServiceFactory.getService("user").findByConditions(name); if(!list.isEmpty()){ response.getWriter().write("该邮箱已经被注册"); return; } int row=ServiceFactory.getService("user").save(user); //request.getSession().setAttribute("users",user); System.out.println(row); } protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ String email=request.getParameter("email"); System.out.println(email); @SuppressWarnings("unchecked") List<User> list=ServiceFactory.getService("user").findByConditions(email); if(list.isEmpty()){ response.getWriter().write("邮箱可用"); return ; }else{ response.getWriter().write("该邮箱已经被注册"); } } } XMLHttpRequest是ajax的基础,创建xmlhttprequest的方法是:老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象: variable=new XMLHttpRequest(); variable=new ActiveXObject("Microsoft.XMLHTTP"); 在使用时首先判断浏览器是否支持XMLHttpRequest对象if(window.XMLHttpRequest)。 如果需要向服务器发送请求,使用XMLHttpRequest对象的open()和send()方法。 xmlhttp.open("method","url"async); xmlhttp.send(); method表示请求的方式,post或者get,url请求的地址。async:true(异步)或false(同步). send(string)将请求发送到服务器,string仅用于POST请求。 简单的POST请求。 xmlhttp.open("POST","demo_a",true); 如果要想HTML表单那样post数据,使用setRequestHeader()来添加HTTP头。 xmlhttp.open("POST","ajax_test.html",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("fname=Henry&lname=Ford"); setRequestHeader(header,value) header.规定头的名称,value:规定头的值。 xmlhttp.responseText;//获得字符串形式的响应数据; onreadystatechange 事件当请求被发送到服务器时,我们需要执行一些基于响应的任务。 每当 readyState 改变时,就会触发 onreadystatechange 事件。 readyState 属性存有 XMLHttpRequest 的状态信息。 下面是 XMLHttpRequest 对象的三个重要的属性:
菜鸟教程的例子:http://www.runoob.com/ajax/ajax-xmlhttprequest-onreadystatechange.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在C#中测试/注入私有字段的好习惯是什么?
- Notepad++安装xml插件
- 《老罗Android》学习之SQLite
- PrimeFaces inputText ajax event = valueChange在单击comm
- c – 在编码时考虑内存碎片:过早优化?
- 使用db类库 玩转sqlite
- ruby-on-rails – Rails 3.1.0.rc4 Postgres – 重启后无法
- File opened that is not a database file file is encrypt
- 记录下:解决fatal error: sqlite3.h: No such file or dir
- cocos2d-x 中多线程的c/c++代码通过JNI调用java代码