原生js 实现Ajax 异步处理 实列

本文通过实例演示了如何在JavaWeb环境中利用原生JavaScript实现Ajax异步处理。详细介绍了在Eclipse中创建动态网页,包括dologinServlet.java的后端处理、login.js中的Ajax调用以及dologin.jsp的前端交互逻辑。

打开 eclipse  创建如下 动态网页  如下图所示:

dologinServlet.java   代码如下:

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/login")
public class dologinServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		//获取url请求中对应的username
		String username=request.getParameter("username");
		String opr=request.getParameter("opr");
		if(opr.equals("checkUsername")) {
			//模拟调用三层,验证用户名是否存在
			if(username.equals("admin")) {//存在
				out.print("exist");
			}else {//不存在
				out.print("noexist");
			}
		}
		//关闭资源
		out.flush();
		out.close();
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		doGet(request, response);
	}
}

 

login.js 代码如下:

$(function(){
	//发送ajax请求
	$("#username").blur(function(){
		//获取用户名
		var username=$(this).val();
		console.log(username);
		//参数较多的情况,可以简化data的拼接
		var params=new Object();//创建js对象
		params.username=username;
		params.opr="checkUsername";
		$.ajax({
			"url":ctx+"/login",
			"type":"POST",
			"data":params,
			"dataType":"text",
			"success":function(result){
				if(result=="exist"){//存在
					$("#spanInof").html("用户名已被使用,我滴个神");
				}else{//不存在
					$("#spanInof").html("用户名可以使用");
				}
			},
			"error":function(){
				console.log("发生错误");
			}
		});
		
		
	});
	
	
	
})

dologin.jsp  代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ajax验证用户名是否可用</title>
<script>
	var ctx="${pageContext.request.contextPath}";
</script>
</head>
<body>
<form action="#" method="post">
    <table>
        <tr>
            <td>用户名:</td>
            <td>
                <input type="text"name="username" id="username" />
                <span id="spanInof"></span>
                &nbsp;
                <font color="#coofff">*</font>
            </td>
        </tr>
    </table>
</form>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.12.4.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/login.js"></script>
</body>
</html>

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值