CGB2005 0808 JAVA06总结

在这里插入图片描述
依旧AJAX异步更新
在这里插入图片描述

要讲的
在这里插入图片描述
讲0,1,2,3,4

在这里插入图片描述demo五步 从debugger开始

debugger分析
在这里插入图片描述
debugger调试入口
如上图 设置了断点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
增加功能 同步请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
html页面
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对应增加的日期
在这里插入图片描述
放好一点

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
先彻底了解同步

新内容 Ajax 表单请求

在这里插入图片描述

在这里插入图片描述
在span实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果没有存在,则返回空值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
controller层

@Controller
@RequestMapping("/")
public class AjaxController {
	
	  //====================Ajax-02====================================
	  private List<String> names=new ArrayList<String>();//假设这时存储数据的表

	  @RequestMapping("doAjax02UI")
	  public String doAjax02UI() {
		  return "ajax-02";
	  }
	  
	  /**通过此方法校验名字是否存在*/
	  @RequestMapping("doCheck")
	  @ResponseBody
	  public String doCheck(String name) {
		 if(names.contains(name))
			 return "名字"+name+"已经存在,请选择其它名字";
		 return "名字"+name+"不存在,可以注册";
	  }
	  //===================Ajax-01=======================================
	  @RequestMapping("doAjax01UI")
	  public String doAjax01UI() {
		  return "ajax-01";
	  }
	  
	  //处理传统请求的服务端设计
	  @RequestMapping("doGet")
	  public String doGet(Model model) {
		  model.addAttribute("message", "Get request result");
		  return "ajax-01";
	  }
	
	  //处理ajax请求的服务端设计
	  @RequestMapping("doAjaxGet")
	  @ResponseBody //将方法返回值以字符串形式进行输出
	  public String doAjaxGet() throws Exception{
		  System.out.println("==doGet()==");
		  //Thread.sleep(3000);//模拟耗时操作
		  return "Ajax Get request result";
	  }
	  
}

html 客户端层 ajax-02

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <h1>The Ajax 02 Page</h1>
 <fieldset>
    <legend>Ajax 表单请求</legend>
    <form>
       <input type="text" name="name" id="nameId" onblur="doCheck()">
       <input type="button" value="Save">
    </form>
    <span id="result"></span>
 </fieldset>
 <script type="text/javascript">
     function doCheck(){//在此函数中向服务端发起异步请求,检测name是否存在
    	 //......
     }
 </script>
</body>
</html>

配置文件

server.port=80
spring.thymeleaf.cache=false

最终效果
在这里插入图片描述
再继续拓展
在这里插入图片描述
实现按钮操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全面代码与总结 自己看

@Controller
@RequestMapping("/")
public class AjaxController {
	  //====================Ajax-03====================================
	
	  @RequestMapping("doAjax03UI")
	  public String doAjax03UI() {
		  return "ajax-03";
	  }
	
	  //====================Ajax-02====================================
	  private List<String> names=new ArrayList<String>();//假设这是存储数据的表

	  @RequestMapping("doAjax02UI")
	  public String doAjax02UI() {
		  return "ajax-02";
	  }
	  
	  /**通过此方法校验名字是否存在*/
	  @RequestMapping("doCheck")
	  @ResponseBody
	  public String doCheck(String name) {
		 if(names.contains(name))
			 return "名字"+name+"已经存在,请选择其它名字";
		 return "名字"+name+"不存在,可以注册";
	  }
	  
	  /**将客户端请求数据写入到names对应的集合*/
	  @RequestMapping("doSave")
	  @ResponseBody
	  public String doSave(String name) {
		  System.out.println("name="+name);
		  names.add(name);
		  return "save ok";
	  }

	  //===================Ajax-01=======================================
	  @RequestMapping("doAjax01UI")
	  public String doAjax01UI() {
		  return "ajax-01";
	  }
	  
	  //处理传统请求的服务端设计
	  @RequestMapping("doGet")
	  public String doGet(Model model) {
		  model.addAttribute("message", "Get request result");
		  return "ajax-01";
	  }
	
	  //处理ajax请求的服务端设计
	  @RequestMapping("doAjaxGet")
	  @ResponseBody //将方法返回值以字符串形式进行输出
	  public String doAjaxGet() throws Exception{
		  System.out.println("==doGet()==");
		  //Thread.sleep(3000);//模拟耗时操作
		  return "Ajax Get request result";
	  }
	  
}


Ajax 01

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <h1>The Ajax 01 Page <strong id="timeId"></strong></h1>
 <div>
   <!-- 传统方式的同步请求测试 -->
   <fieldset> <!-- 分组设置 -->
     <legend>传统方式的同步请求</legend> <!-- 设置分组名称 -->
     <button  onclick="doGet()">Get Request</button>
     <span id="resultId">[[${message}]]</span>
   </fieldset>
   <script type="text/javascript">
     //scirpt只要被加载就会执行
     document.getElementById("timeId").innerHTML=new Date().toLocaleString()
     function doGet(){
    	 location.href="http://localhost/doGet";
     }
     
   </script>
 </div>
</body>
</html>


在这里插入图片描述

Ajax 02

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <h1>The Ajax 02 Page</h1>
 <fieldset>
    <legend>Ajax 表单请求</legend>
    <form>
       <input type="text" name="name" id="nameId" onblur="doCheck()" onfocus="doClear()">
       <input type="button" onclick="doSave()" value="Save">
    </form>
    <span id="result"></span>
 </fieldset>
 <script type="text/javascript">
     function doClear(){
    	 document.getElementById("result").innerHTML="";
     }
     
     function doSave(){
    	//1.创建XHR对象
     	var xhr=new XMLHttpRequest();
     	//2.设置状态监听
     	xhr.onreadystatechange=function(){
     	     if(xhr.readyState==4&&xhr.status==200){
     	          document.getElementById("result").innerHTML="<font color='red'>"+xhr.responseText+"</font>";
     	     }
     	};
     	//3.打开链接
     	//var name=document.getElementById("nameId").value;
     	var  name=document.forms[0].name.value;
     	xhr.open("POST","/doSave",true);
     	//post请求要设置请求头(规定)
     	xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     	//4.发送请求
     	xhr.send("name="+name);//Post请求send方法传值 
     }
     
     function doCheck(){//在此函数中向服务端发起异步请求,检测name是否存在
    	//1.创建XHR对象
    	var xhr=new XMLHttpRequest();
    	//2.设置状态监听
    	xhr.onreadystatechange=function(){
    	     if(xhr.readyState==4&&xhr.status==200){
    	          document.getElementById("result").innerHTML="<font color='red'>"+xhr.responseText+"</font>";
    	     }
    	};
    	//3.打开链接
    	//var name=document.getElementById("nameId").value;
    	var  name=document.forms[0].name.value;
    	console.log("name",name);
    	xhr.open("GET","/doCheck?name="+name,true);
    	//4.发送请求
    	xhr.send(null);//Get请求send方法传值
     }
     
 </script>
</body>
</html>

在这里插入图片描述

Ajax 03

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <h1>The Ajax 03 Page</h1>
 <fieldset>
    <legend>Ajax 表单请求(对Ajax共性代码进行封装)</legend>
    <form>
       <input type="text" name="name" id="nameId" onblur="doCheck()" onfocus="doClear()">
       <input type="button" onclick="doSave()" value="Save">
    </form>
    <span id="result"></span>
 </fieldset>
 <script type="text/javascript">
     function doClear(){
    	 document.getElementById("result").innerHTML="";
     }
     
     function doSave(){
    	//1.创建XHR对象
     	var xhr=new XMLHttpRequest();
     	//2.设置状态监听
     	xhr.onreadystatechange=function(){
     	     if(xhr.readyState==4&&xhr.status==200){
     	          document.getElementById("result").innerHTML="<font color='red'>"+xhr.responseText+"</font>";
     	     }
     	};
     	//3.打开链接
     	//var name=document.getElementById("nameId").value;
     	var  name=document.forms[0].name.value;
     	xhr.open("POST","/doSave",true);
     	//post请求要设置请求头(规定)
     	xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     	//4.发送请求
     	xhr.send("name="+name);//Post请求send方法传值 
     }
     //定义一个函数这个函数主要用于发送Ajax GET请求,目的封装共性,提取特性,以实现代码的可重用性
     function doAjaxGet(url,params,callback){
    	//1.创建XHR对象
     	var xhr=new XMLHttpRequest();
     	//2.设置状态监听
     	xhr.onreadystatechange=function(){
     	     if(xhr.readyState==4&&xhr.status==200){
     	    	 callback(xhr.responseText);//处理服务端响应的结果数据
     	     }
     	};
     	//3.打开链接
     	//var name=document.getElementById("nameId").value;
     	xhr.open("GET",url+"?"+params,true);
     	//4.发送请求
     	xhr.send(null);//Get请求send方法传值
     }
     
     function doCheck(){//在此函数中向服务端发起异步请求,检测name是否存在
    	//1.创建XHR对象
    	var xhr=new XMLHttpRequest();
    	//2.设置状态监听
    	xhr.onreadystatechange=function(){
    	     if(xhr.readyState==4&&xhr.status==200){
    	          document.getElementById("result").innerHTML="<font color='red'>"+xhr.responseText+"</font>";
    	     }
    	};
    	//3.打开链接
    	//var name=document.getElementById("nameId").value;
    	var  name=document.forms[0].name.value;
    	console.log("name",name);
    	xhr.open("GET","/doCheck?name="+name,true);
    	//4.发送请求
    	xhr.send(null);//Get请求send方法传值
     }
     
 </script>
</body>
</html>

在这里插入图片描述

下午
在这里插入图片描述

函数的调用

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述自调用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
callback函数的回调在这里插入图片描述
第一步在这里插入图片描述

第二步在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
03页面拓展
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
controller层

@Controller
@RequestMapping("/")
public class AjaxController {
	  //====================Ajax-03====================================
	
	  @RequestMapping("doAjax03UI")
	  public String doAjax03UI() {
		  return "ajax-03";//03页面在02页面的基础之上做了一个封装
	  }
	
	  //====================Ajax-02====================================
	  private List<String> names=new ArrayList<String>();//假设这是存储数据的表

	  @RequestMapping("doAjax02UI")
	  public String doAjax02UI() {
		  return "ajax-02";
	  }
	  
	  /**通过此方法校验名字是否存在*/
	  @RequestMapping("doCheck")
	  @ResponseBody
	  public String doCheck(String name) {
		 if(names.contains(name))
			 return "名字"+name+"已经存在,请选择其它名字";
		 return "名字"+name+"不存在,可以注册";
	  }
	  
	  /**将客户端请求数据写入到names对应的集合*/
	  @RequestMapping("doSave")
	  @ResponseBody
	  public String doSave(String name) {
		  System.out.println("name="+name);
		  names.add(name);
		  return "save ok";
	  }

	  //===================Ajax-01=======================================
	  @RequestMapping("doAjax01UI")
	  public String doAjax01UI() {
		  return "ajax-01";
	  }
	  
	  //处理传统请求的服务端设计
	  @RequestMapping("doGet")
	  public String doGet(Model model) {
		  model.addAttribute("message", "Get request result");
		  return "ajax-01";
	  }
	
	  //处理ajax请求的服务端设计
	  @RequestMapping("doAjaxGet")
	  @ResponseBody //将方法返回值以字符串形式进行输出
	  public String doAjaxGet() throws Exception{
		  System.out.println("==doGet()==");
		  //Thread.sleep(3000);//模拟耗时操作
		  return "Ajax Get request result";
	  }
	  
}


html 客户端层

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <h1>The Ajax 03 Page</h1>
 <fieldset>
    <legend>Ajax 表单请求(对Ajax共性代码进行封装)</legend>
    <form>
       <input type="text" name="name" id="nameId" onblur="doCheck()" onfocus="doClear()">
       <input type="button" onclick="doSave()" value="Save">
    </form>
    <span id="result"></span>
 </fieldset>
 <script type="text/javascript" src="/ajax/ajax.js"></script>
 <script type="text/javascript">
     function doClear(){
    	 document.getElementById("result").innerHTML="";
     }
     //保存业务的实现
     function doSave(){
    	//1.定义请求url
    	var url="doSave";
    	//2.定义请求参数
    	var params="name="+document.forms[0].name.value;
    	//3.发送异步的post请求
    	doAjaxPost(url,params,function(result){
    		document.getElementById("result").innerHTML=result;
    	})
     }
     //检查名字是否存在的业务代码
     function doCheck(){//在此函数中向服务端发起异步请求,检测name是否存在
         //1.定义请求url
         var url="doCheck";
         //2.定义请求参数
         var name=document.forms[0].name.value;
         var params="name="+name;
         //3.发送异步Get请求
         doAjaxGet(url,params,function(result){
        	 document.getElementById("result").innerHTML=result;
         })
     }
     
 </script>
</body>
</html>

js 封装的代码

 //Ajax Post请求的封装
 function doAjaxPost(url,params,callback){
    	//1.创建XHR对象
     	var xhr=new XMLHttpRequest();
     	//2.设置状态监听
     	xhr.onreadystatechange=function(){
     	     if(xhr.readyState==4&&xhr.status==200){
     	    	 callback(xhr.responseText);
     	     }
     	};
     	//3.打开链接
     	//var name=document.getElementById("nameId").value;
     	var  name=document.forms[0].name.value;
     	xhr.open("POST",url,true);
     	//post请求要设置请求头(规定)
     	xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     	//4.发送请求
     	xhr.send(params);//Post请求send方法传值 
}

//定义一个函数这个函数主要用于发送Ajax GET请求,目的封装共性,提取特性,以实现代码的可重用性
function doAjaxGet(url,params,callback){
    	//1.创建XHR对象
     	var xhr=new XMLHttpRequest();
     	//2.设置状态监听
     	xhr.onreadystatechange=function(){
     	     if(xhr.readyState==4&&xhr.status==200){
     	    	 callback(xhr.responseText);//处理服务端响应的结果数据
     	     }
     	};
     	//3.打开链接
     	xhr.open("GET",url+"?"+params,true);
     	//4.发送请求
     	xhr.send(null);//Get请求send方法传值
}

jquery
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

没有监听 发送请求 ajax被封装了 都在前面
设置新链接 整合到一起
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值