ajax实现简单实时验证功能
什么是ajax
Ajax即“AsynchronousJavascriptAndXML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
Ajax=异步JavaScript和XML(标准通用标记语言的子集)。
Ajax是一种用于创建快速动态网页的技术。
Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面。
这是百度对它的定义,足够详细。
值得补充的一点是对异步的理解,异步是相对于同步来说的,在这里他们指的是服务器和浏览器的交互模式。
同步,每次请求发出之后,用户操作即被阻塞,必须要求返回响应后继续操作。而异步指的是发出请求后,用户无需等待响应,一切由ajax来实现,无需进行刷新网页就可以局部更新数据。提高了俩端的沟通效率。
来个小demo
做一个无刷新验证表单的demo,在对话框中输入用户名,在后台进行验证,使用ajax技术。
项目结构,使用maven构建
login.jsp
<%@pagecontentType="text/html;charset=UTF-8"language="java"isELIgnored="false"%>login
欢迎登陆:
用户名:
main.js
alert("useajax!") //创建XMLHttpRequest对象,在不同浏览器 functioncreateXMLHTTP(){ if(window.XMLHttpRequest){ //IE7+,Firefox,Chrome,Opera,Safari浏览器执行代码 xmlhttp=newXMLHttpRequest(); }else{ //IE6,IE5浏览器执行代码 xmlhttp=newActiveXObject("Microsoft.XMLHTTP"); } returnxmlhttp; } functionCallServer(){ varusername=document.getElementById("username").value; //判断为空 if((username==null)||(username==""))return; varxmlhttp=createXMLHTTP(); //构建请求url varurl="/loginServlet"+"?"+"username="+username; //状态码改变调用事件 xmlhttp.onreadystatechange=function(){ //正常返回,替换msg内容 if(xmlhttp.readyState==4&&xmlhttp.status==200){ document.getElementById("msg").innerHTML=xmlhttp.responseText; } } //异步提交请求 xmlhttp.open("GET",url,true); //发送请求 xmlhttp.send(); }
web.xml
ArchetypeCreatedWebApplication index.jsp loginServlet com.lbw.servlet.loginServlet loginServlet /loginServlet
loginServlet.java
packagecom.lbw.servlet; importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importjava.io.IOException; importjava.io.PrintWriter; /** *后端使用Servlet处理请求 */ publicclassloginServletextendsHttpServlet{ protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //设置编码和响应头 request.setCharacterEncoding("UTF-8"); response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); //获取参数 Stringusername=request.getParameter("username"); Stringmsg=""; if("lbw".equals(username)){ msg="名称正确"; }else{ msg="名称错误"; } PrintWriterout=response.getWriter(); out.println(msg); } protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ doPost(request,response); } }
开始测试
输入localhost:8888/login.jsp,弹出窗口
代表在jsp中引入js成功
在输入框输入测试数据
由Servlet中逻辑决定,返回错误信息
由Servlet中逻辑决定,返回成功信息
由此,初步实现了ajax异步请求,达到了实时验证的要求
一些小细节
1.在使用maven构建项目,注意ProjectStructure->Facets,这里设置web.xml和webapp的路径,idea会使用到
2.在引入js时,注意使用相对路径的方式来进行映入,并且用到EL表达式要开启isELIgnored="false"·`避免没有解析。
总结
以上所述是小编给大家介绍的ajax实现简单实时验证功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!