Ajax

AJAX

1. 简介

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax 是一种用于创建快速动态网页的技术,在无需重新加载整个网页的情况下,能够更新部分网页。

2. Ajax的基本使用

<input onblur="check()" />
<h1 id="msg"></h1>
		// 创建异步请求对象
		var xmlhttp = new XMLHttpRequest();
		// 设置请求类型、请求地址以及参数、是否异步
		xmlhttp.open("post","HelloServlet",true);
		// 设置请求头部信息
		xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
		// 发送请求
		xmlhttp.send("userName="+$("input").val());
		// 状态监听
		xmlhttp.onreadystatechange = function(){
			// 当状态为4 响应码为200的时则表示请求完成
			if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
				// 获取返回请求结果
				 var result = xmlhttp.responseText;
				 // 根据请求结果进行处理
				 if(result == 1){
				  	$("#msg").text("恭喜你,可以使用此用户名");					 
				 }else{
				 	$("#msg").text("对不起,此用户名已被使用");					 
				 }
			}
		};

后台代码:

		// 获取用户提交的请求参数
		String name = request.getParameter("userName");
        PrintWriter pw = response.getWriter();
        // 当用户名是seven返回字符串0,否则返回字符串1
        if("seven".equals(name)){
            pw.write("0");
        }else{
            pw.write("1");
        }

3. JQuery中的Ajax使用

			// $.ajax 表示jquery中的ajax的调用方式
			$.ajax({
					 "url":"HelloServlet",  // 请求地址
					 "data":"userName="+$("input").val(),  //参数
					 "type":"POST",  // 请求类型
					 "success":function(data){    // 请求成功时的回调函数
						 if(data == 1){
							 $("#msg").text("恭喜你,可以使用此用户名");
						 }else{
							 $("#msg").text("对不起,此用户名已被使用");
						 }
						
					 },
					 "error":function(){  // 请求失败时的回调函数
						
					 } 
				});

后台代码同上。

如果与服务器交互的数据时json格式可使用如下方式:

			/*
				使用 HTTP GET 请求从服务器加载 JSON 编码的数据
				第1个参数为请求地址,第2个参数为请求参数,请3个参数为成功时的回到函数
			*/
			$.getJSON("HelloServlet",{userName:$("input").val()},function(data){
                // 如果返回的json字符串定义了result的键,可以直接通过键取出值进行判断操作
					if(data.result){
						 $("#msg").text("恭喜你,可以使用此用户名");
					 }else{ 
						 $("#msg").text("对不起,此用户名已被使用");
					 }
			});

后台代码:

		// 获取用户提交的请求参数
		String name = request.getParameter("userName");
		PrintWriter pw = response.getWriter();
		if("seven".equals(name)){
			pw.write("{\"result\":false}");
		}else{
			pw.write("{\"result\":true}");
		}
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
</head>
<body>
	<h1 id="msg"></h1>
	<form>
		<!-- 账号:<input id="userName" onblur="check()" ><br /><br />  -->
		账号:<input id="userName"><br /> <br />
		密码:<input type="password"><br /> <br />
		 <input type="submit">
	</form>

	<script type="text/javascript">
	
	//第三种方法
	/*
		使用 HTTP GET 请求从服务器加载 JSON 编码的数据
		第一个参数为请求地址,
		第二个参数为请求参数,
		第三个参数为成功时的回到函数
	*/
 	


	$(function(){
		
		$("#userName").on("blur",function(){
			
			$.getJSON("${pageContext.request.contextPath}/HelloServlet",
					{"m":"login1","userName":$("#userName").val()},
				function(data){
				// data  {\"result\":false}
				if(data.result){
					$("#msg").text("恭喜你,可以使用此用户名-")  ;
				}else{
					 $("#msg").text("对不起,此用户名已经被使用-")  ;
				}
			})
			
		});

	})
	
	
 
	
	
	
	
	
	
	
	
	
	
	//第二种方式
	
	/*$("#userName").on("blur",function(){
		
		$.ajax({
			"url":"${pageContext.request.contextPath}/HelloServlet",
			"data":"m=login&userName="+ $("#userName").val() ,
			"type":"post",
			"success":function(data){
				if(data==0){
					$("#msg").text("对不起,此用户名已经被使用-");
					
				}else{
					$("#msg").text("恭喜你,可以使用此用户名-");
				}
						
			},
			"error":function(){
				$("#msg").text("error");	
			}
			
		})
		
	})*/
	


	//第一种方式
/* 	function check() {
		var input = document.getElementById("userName");
	
		// 偷偷访问后台此用户名是否已经被注册过
		var xmlhttp = new XMLHttpRequest();
		xmlhttp.open("post","${pageContext.request.contextPath}/HelloServlet",true);
		xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
		// 发送请求
		xmlhttp.send("m=login&userName="+input.value);
		
		xmlhttp.onreadystatechange = function(){
			// 当状态为4 响应码为200的时则表示请求完成
			if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
				// 获取返回请求结果
				 var result = xmlhttp.responseText;
				 // 根据请求结果进行处理
				 var h = document.getElementById("msg") ;
				if(result == 0){
					h.innerText = "对不起,此用户名已经被使用";
				 }else{
					 h.innerText = "恭喜你,可以使用此用户名";
				 }
			}
		}
	}; */

	
	</script>
</body>
</html>
package com.blb.Demo;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/HelloServlet")
public class HelloServlet extends BaseServlet {
	
	
	public void login(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String name = request.getParameter("userName");
        PrintWriter pw = response.getWriter();
        // 当用户名是seven返回字符串0,否则返回字符串1
        if("seven".equals(name)){
            pw.write("0");
        }else{
            pw.write("1");
        }
	}
	
	public void login1(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获取用户提交的请求参数
		String name = request.getParameter("userName");
        PrintWriter pw = response.getWriter();
        if("seven".equals(name)){
            pw.write("{\"result\":true}");
        }else{
            pw.write("{\"result\":false}");
        }
		
		
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值