使用JavaScript编写原生态的Ajax
来源:互联网 发布:移动网络终端 编辑:程序博客网 时间:2024/05/18 00:56
介绍
Ajax的底层是如何实现,这里只研究了post和get的实现方式。这里的代码比较简单,主要是编写JavaScript模仿Ajax异步实现请求数据,加深对Ajax的理解,有需要的会注释上。欢迎一起交流。:-)
内容
jsp表单
<form action="" method="post" onsubmit="return checkDB()"> name:<input id="name" name="name" type="text"> <br/> password:<input id="pass" name="pass" type="text"> <br/> <br/> <input type="submit" onclick="check()" value="submit"> <br/> <p style="visibility: hidden" id="putError">用户名或密码错误</p> <br/></form>
解释函数的作用:check()检查用户名或密码是否为空(即是否未输入数据),checkDB()通过JavaScript原生态Ajax和后端进行校验,用户名和密码是否正确。
JavaScript实现
<script type="text/javascript"> var Ajax={ get:function (url,fun) { var obj = new XMLHttpRequest(); obj.open('GET', url, true); obj.onreadystatechange = function () { if(obj.status==200 && obj.readyState==4) { fun.call(this, obj.responseText) } }; obj.send(null); }, post : function (url,data,fun) { var obj = new XMLHttpRequest(); obj.open('POST', url, true); obj.onreadystatechange = function() { if(obj.status==200 || obj.readyState==4) { fun.call(this, obj.responseText) } }; obj.send(data); } };</script><script type="text/javascript"> function check() { var name = document.getElementById("name").value; var pass = document.getElementById("pass").value; alert(name); if(name == ""|| name==null || pass==null || pass == ""){ alert("用户名或密码没有输入!"); return false; } } function checkDB(){ var name = document.getElementById("name").value; var pass = document.getElementById("pass").value; var data = {"name": name, "pass": pass}; Ajax.post('demo',data,putError); } function putError(data) { if(data=="error"){ document.getElementById("putError").style.visibility = "visible"; return false; } }</script>
请求的demo会被MyServlet类拦截。这里var Ajax定义为一个数组,这个数组是一个键值对,键是get post 而值是一个函数,这个函数先一步,对数据进行校验。
Servlet实现
public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { User user = new User("xiaoming", "666"); String name = request.getParameter("name"); String pass = request.getParameter("pass"); if (user.getName().equals(name) && user.getPass().equals(pass)){ response.getWriter().write("succ"); } else{ response.getWriter().write("error"); } }}
上面的Servlet没有使用到doGet,所以没有贴出来。
阅读全文
0 0
- 使用JavaScript编写原生态的Ajax
- 原生态ajax使用
- XMLHttpRequest 使用 原生态的AJAX
- AJAX的原生态写法
- 原生态的Ajax写法
- 原生态javascript实现ajax验证用户名
- javascript原生态Ajax及java注解
- MVC 原生态的AJAX的应用
- 原生态ajax的省市联动
- 原生态Ajax的五个步骤
- js封装原生态的ajax
- js原生态的Ajax实现+Struts2
- js原生态的Ajax实现+SpringMVC
- Ajax原生态
- 原生态AJAX
- Ajax原生态
- 1 AJAX原生态
- ajax原生态写法
- 2017微软秋季校园招聘在线编程笔试-#1402 : MS Recognition
- 16秋计算机JAVA第一节课作业(钟永钜)
- cmd运行class文件提示“错误: 找不到或无法加载主类”
- day59-struts2_01:笔记。----【框架就是jar包】而已
- 大端与小端
- 使用JavaScript编写原生态的Ajax
- 深度分析Rabbitmq在openstack中的实现
- BUG集锦
- 【Java】中断
- GRAY 灰度图
- Qt 学习之路 2(20):event()
- 基于Linux的文件操作
- 多处理器编程-互斥
- 一个切换名言的页面(json)