Ajax---狂神说

Ajax

AjAX=Asynchronous javaScript and XML(异步的javaScript和XML)。

Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术

C/S

增加B/S的体验性

B/S:未来的主流,并且会爆发式的持续增长;

H5+网页+客户端+手机端

使用JQuery需要先导入jQuery的js文件;

Copy@Controller

@RequestMapping("/ajax")

public class AjaxController{

//第一种方式,服务器要返回一个字符串,直接使用response

@RequestMapping("/a1")

public void ajax(String name,HttpServletResponse response){

if("admin".equals(name)){

response.getWriter().print("true");

}else{

response.getWriter().print("false");

}

}

}

@RequestMapping("/a2")

@ResponseBody

public List ajax2(){

List list =new ArrayList<>();

User user1 =new User("豪",1,"男");

User user2=new User("豪",1,"男");

list.add(user1);

list.add(user2);

return list; //由于加了@ResponseBody注解,他会返回一个字符串

}

ajax 写法

Copy

function a1() {

//所有参数:

//url:待载入页面的URL地址,Json

//data:待发送Key/value参数

//success:载入成功时回调函数

//data:封装了服务器返回的数据

//status:状态

$.ajax({

url:"${pageContext.request.contextPath}/ajax/a1",

data:{"name":$("txtName").val()},

success:function (data,status) {

console.log(data)

console.log(status)

}

});

//将文本输入的值,

$("txtName").val();

// //发送给服务器,

// //接受服务器返回的数据

}

Copy

$(function(){

$("#btn").click(function(){

$.post("${pageContest.request.contextPath}/ajax/a2",function(data){

console.log(data);

var html="";

for(var i=0;i

html+="

"+

"

"+data[i].name+""+

"

"+data[i].age+""+

"

"+data[i].sex+""+

"

"

}

$("#content").html(html);

})

})

})

第三种#

Copy@RequestMapping("/a3")

@ResponseBody

public String ajax3(String name,String pwd){

String msg="";

if(name!=null){

if("admin".equals(name)){

msg="ok";

}else{

msg="用户名有误";

}

}

if(pwd != null){

if("123456".equals(pwd)){

msg="ok";

}else{

msg="密码输入有误";

}

}

return msg;

}

Copy

Title

function a1(){

$.post({

url:"${pageContext.request.contextPath}/ajax/a3",

data:{"name":$("#name").val()},

success:function(data){

if(data.toString()=='ok'){

//信息核对成功

$('#userInfo').css("color","green");

}else{

$("#userInfo").css("color","red");

}

$("#userInfo").html(data);

}

})

}

function a2(){

$.post("${pageContext.request.contextPath}/ajax/a3",{"pwd":$("pwd").val()},function(data){

if(data.toString()='ok'){//信息核对成功

$('#pwdInfo').css("color","green");

}else{

$('#pwdInfo').css("color","red");

}

$("#pwdInfo").html(data);

})

}

用户名:

密码:

Ajax 总结:

使用jQuery需要导入JQuery,使用Vue就导入Vue,两个都用,自己原生态实现

三步曲:

1.编写对应处理的Controller,返回消息或者字符串汇总json格式的数据

2.编写ajax请求

1.url: Controller 请求

2.data: 键值对

3 . SUCCESS: 回调函数

3.给Ajax绑定事件,点击click,失去焦点onblur,键盘弹起keyup

在前面的密码修改中,我们避开使用了前端素材中验证旧密码的Ajax功能,是因为要把Ajax单独拿出来讲

前面实现的密码修改功能是直接输入两遍新密码进行的修改,这显然是不安全的,所以我们应该在修改密码的时候加入验证旧密码的操作,而这个操作根据前端素材就需要使用到Ajax了

1.什么是Ajax

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)

AJAX 不是新的编程语言,而是一种使用现有标准的新方法

AJAX 是在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的艺术

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新

这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面

2.怎么实现旧密码验证?

直接的做法就是去数据库中查找,但是这样的画我们又要写一条线:Dao开始-->service-->servlet-->JSP

我们可以采取一种很简单的方式进行:在用户登陆的时候我们将整个用户对象都存储到session中了,所以我们可以利用Ajax的异步请求+session中的user对象实现旧密码的验证

做法就是在后端复用的servlet中再定义一个方法,这个方法专门负责对比Ajax传递给后端的旧密码是否和session中User对象的密码一致,并通过对比的情况和结果来返回JSON数据给前端

3.编写servlet

oldpassword.on("blur",function(){

$.ajax({

type:"GET",

url:path+"/jsp/user.do",//Ajax提交的URL,可见和我们修改密码的JSP页面的表单提交的URL一样,所以我们应该复用servlet

data:{method:"pwdmodify",oldpassword:oldpassword.val()},//提交的参数

//上面两句话等价于 = path+/jsp/user.do ? method=pwdmodify & oldpassword=oldpassword.val()

dataType:"json",

success:function(data){

if(data.result == "true"){//旧密码正确

validateTip(oldpassword.next(),{"color":"green"},imgYes,true);

}else if(data.result == "false"){//旧密码输入不正确

validateTip(oldpassword.next(),{"color":"red"},imgNo + " 原密码输入不正确",false);

}else if(data.result == "sessionerror"){//当前用户session过期,请重新登录

validateTip(oldpassword.next(),{"color":"red"},imgNo + " 当前用户session过期,请重新登录",false);

}else if(data.result == "error"){//旧密码输入为空

validateTip(oldpassword.next(),{"color":"red"},imgNo + " 请输入旧密码",false);

}

},

error:function(data){

//请求出错

validateTip(oldpassword.next(),{"color":"red"},imgNo + " 请求错误",false);

}

});

//2.验证旧密码

//直接与session中的user对象的密码进行对比即可,不用再去查数据库

public void pwdModify(HttpServletRequest req, HttpServletResponse resp){

Object user = req.getSession().getAttribute(Constants.USER_SESSION);

String oldpassword = req.getParameter("oldpassword");

//使用Map集合存储返回给前端的数据

Map resultMap = new HashMap();

if (user==null){//session中的user对象失效了

resultMap.put("result","sessionerror");

}else if (StringUtils.isNullOrEmpty(oldpassword)){//输入的密码为空

resultMap.put("result","error");

}else {

String userPassword = ((User)user).getUserPassword();

if (userPassword.equals(oldpassword)){//输入的密码匹配

resultMap.put("result","true");

}else {//输入的密码不匹配

resultMap.put("result","false");

}

}

//将Map集合中的数据转为JSON格式传输给前端

try {

resp.setContentType("application/JSON");//设置返回数据是一个JSON,这样浏览器拿到这个数据之后就会按照JSON的数据格式来解析它

PrintWriter writer = resp.getWriter();//获取输出流

writer.write(JSONArray.toJSONString(resultMap));//使用阿里巴巴提供的一个JSON工具类,直接将其他数据格式的数据转为JSON数据格式,然后直接将其写出去

writer.flush();//刷新缓冲区

writer.close();//关闭资源

} catch (IOException e) {

e.printStackTrace();

}

}

4.测试

标签:function,oldpassword,else,---,密码,Ajax,狂神,data

来源: https://www.cnblogs.com/999520hzy/p/13882365.html

狂神ajax,Ajax---狂神说相关推荐

  1. sweet+alert+ajax,Ajax相关

    Ajax Ajax的特性可以实现异步提交与局部刷新. Ajax是一门js的技术 基于原生js开发的,但是用原生的js写代码过于繁琐, 我们在学的时候 只学如何用jQuery实现ajax. AJAX 最 ...

  2. html同时执行多个ajax,Ajax方法详解以及多个Ajax并发执行

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).javascript 先来一段代码html $.ajax({ type: &q ...

  3. jQuery ajax - ajax()

    jQuery ajax - ajax() 方法 jQuery Ajax 参考手册 实例 通过 AJAX 加载一段文本: jQuery 代码: $(document).ready(function(){ ...

  4. jQuery Ajax - ajax()方法,参数注释

    jQuery Ajax - ajax()方法,参数注释 ajax(参数注释,解答): $.ajax({// type,请求方式type: "get", // url,地址,就是ac ...

  5. JavaScript之Ajax-1 Ajax(Ajax原理、Ajax对象属性和方法)

    一.Ajax原理 Ajax简介 - Asynchronous JavaScript And Xml 异步的 JavaScript 和 Xml - Ajax 是一种用来改善用户体验的技术,其实质是,使用 ...

  6. Ajax 什么是Ajax? Ajax的基本语法

    Ajax 什么是Ajax? AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML".即使用Javascript ...

  7. AJAX工作原理及其优缺点 1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页

    参考文章:https://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137180.html AJAX工作原理及其优缺点 1.什么是AJAX? AJ ...

  8. 什么是Ajax?Ajax如何发送请求(详)

    本篇来讲关于Ajax的内容,当然还有小伙伴可能不知道该怎么读 "Ajax",它读 "阿贾克斯" ,当然了读法可能因人而异,下面来进入正题,先来了解一下什么是Aj ...

  9. 给动态生成的按钮添加ajax,Ajax/Javascript动态创建按钮的问题

    你没有指定一个事件处理程序,您调用它.函数createButtons马上被调用,并且它返回的任何东西都被赋值给window.onload. window.onload = createButtons( ...

  10. 让页面先发送ajax,Ajax, 了解一下

    原标题:Ajax, 了解一下 ​Ajax是什么 Ajax =AsynchronousJavaAndXM(异步Java和XML).首先,它不是一门新的语言,而是一种用于创建交互式网页应用的网页开发技术. ...

最新文章

  1. 资源 | 100+个自然语言处理数据集大放送,再不愁找不到数据!
  2. php session存入redis
  3. Javascript 取小数点后面N位
  4. IT人士群聚喝酒的讲究(转载)
  5. Angular里遇到的一个依赖注入问题以及解决办法
  6. Ubuntu下如何正确安装FFmpeg
  7. Python基础入门_2基础语法和变量类型
  8. php组成,PHP的控制结构,PHP脚本是由一系列语句组成的。
  9. HDFS-HA-federation的机制和功能组件
  10. 如何用python爬视频_如何使用python网络爬虫抓取视频?
  11. linux上压缩pdf文件,如何压缩PDF文件?
  12. Win10删除微软拼音输入法
  13. Python9--面向对象编程
  14. (SCI论文写作)三种高效的论文用公式编辑器推荐(Word、mathtype、亿图公式编辑器)
  15. python win32gui模块详解_pythonwin-win32gui 窗口查找和遍历
  16. PBC【Packaged Business Capabilities】的理解
  17. python读取配置文件列表失败_从配置文件python中读取列表
  18. 日志php-error错误日志查看
  19. RTX2050怎么样 rtx2050显卡什么水平
  20. python基础-PyYaml操作yaml文件

热门文章

  1. 编程入门前应该先学什么?
  2. 航班延误来领钱,信用卡航班延误险最全攻略(2018年版)
  3. CNN | 00卷积神经网络应用
  4. 朴素贝叶斯凉鞋问题推导
  5. 电子纸BUSY引脚不同状态下说明(大连佳显)
  6. 无法访问 您可能没有权限使用网络资源
  7. 为什么RISC-V在中国岌岌可危?
  8. 2020计算机视觉会议地点,2020年计算机视觉与信息技术国际会议(CVIT 2020)
  9. 计算机网络——模拟信号(四)
  10. mac mysql 没有my.cnf_mac下mysql配置my.cnf无效