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

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

打开 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>

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
原生JS实现Ajax的步骤如下: 1. 首先,创建一个XMLHttpRequest对象。 2. 设置状态监听函数,监听请求的状态。 3. 使用`open`方法设置请求的类型(GET或POST)和URL。 4. 如果是跨域请求,需要处理跨域问题,例如设置请求头或者使用代理等方法。 5. 使用`send`方法发送请求,可以传递数据作为参数。 6. 在状态监听函数中,判断`readyState`和`status`的值是否满足请求成功的条件(readyState=4 & status=200)。 7. 如果请求成功,可以使用`responseText`或`responseXML`接收响应数据,并使用原生JS操作DOM进行显示。 8. 可以使用`JSON.parse`方法将响应数据解析成JSON格式。 跨域请求的实现方法有多种,常见的方法包括JSONP、CORS、代理等。具体的实现方法需要根据具体的情况进行选择和配置。 请注意,跨域请求需要服务器端的支持和配置,否则会出现安全性问题。在开发时,需要注意跨域请求的规范和安全性考虑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [原生js实现ajax以及ajax的跨域请求](https://blog.csdn.net/qq_41720311/article/details/83991593)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [原生JS实现AjaxAjax的跨域请求](https://blog.csdn.net/Geezer_007/article/details/100402235)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值