Ajax和原生js的两种对异步的处理
<%--
Created by IntelliJ IDEA.
User: tomel
Date: 2022/6/1
Time: 8:11
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="jquery.min.js"></script>
<script>
function funmove(){
//id的属性用$("#id")获取
//判断她为空的话,给span一个文本发生
if (null== $("#userid").val()||''==$("#userid").val()){
$("#spanid").text("用户名不能为空")
return
}
//这里是用户看到后进行输入,再次执行清空sqan的操作;就不执行if了
$("#spanid").text("")
//发送异步请求
$.ajax(
{
type:"GET",//method的方式
url:"unameCheckServlet.do?",// 请求的后台服务的路径
data:"username="+$("#userid").val(),// 提交的参数
success:function (msg) {// 响应成功执行的函数
$("#spanid").text(msg)
}
}
)
}
</script>
</head>
<body>
<form method="get" action="unameCheckServlet.do">
账号:<input id="userid" name="username" type="text" onblur="funmove()">
<span id="spanid" style="color: red"></span><br/>
密码:<input name="password" type="password"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: tomel
Date: 2022/5/31
Time: 10:04
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<style>
table{
border: 3px solid antiquewhite ;
margin: 0px auto;
padding: 0px;
}
tr,td{
border:2px solid green ;
margin: 0px auto;
padding: 0px;
}
td{
align : "center"
}
.row{
padding-left: 85px;
}
</style>
<script>
var xhr;
function checkUname(){
//获取输入框中的id对象
let id = document.getElementById("unameI");
//获取通过对象获取输入框内容
let value = id.value;
//获取标签span的对象,调用方法innertext在标签中打印提示内容
let elementById = document.getElementById("unameInfo");
if(value==null||value==''){
// elementById.innerText="用户名不能为空";
return;
}
elementById.innerText=""
}
// 发送异步请求
// 获取一个 XMLHttpRequest对象 ,对象可以帮助我们发送异步请求
xhr = new XMLHttpRequest();
// 使用xhr对象设置打开链接,设置请求方式和参数xhr.open("请求方式","请求的URL",是否使用异步方式);
xhr.open("GET","unameCheckServlet.do?uname="+unameText,true);
// 设置回调函数
xhr.onreadystatechange=showReturnInfo;
// 正式发送请求
xhr.send(null);
function showReturnInfo() {
if (xhr.readyState == 4 && xhr.status == 200) {
//获取相应文本msg
var returnInfo = xhr.responseText;
var unameInfoDom = document.getElementById("unameInfo");
unameInfoDom.innerText = returnInfo;
}
}
</script>
</head>
<body>
<form action="" method="get" >
<table>
<tr>
<td>
账号:
</td>
<td >
<input id="unameI" name="username" type="text" onblur="checkUname()">
<span id="unameInfo" style="color: red"></span><br/>
</td>
</tr>
<tr>
<td >
密码:
</td>
<td >
<input name="password" type="password" >
</td>
</tr>
<tr>
<td colspan="2" class="row">
<input type="submit" value="登 录" width=>
</td>
</tr>
</table>
</form>
</body>
</html>
package com.msb;
import com.sun.net.httpserver.HttpServer;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/unameCheckServlet.do")
public class servlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String parameter = req.getParameter("username");
String info= "";
if (parameter==null||parameter==""){
info="用户名不能为空";
}else if ("msb".equals(parameter)){
info="用户名已经被用";
}
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().println(info);
}
}