Ajax小案例

Ajax核心是XMLHttpRequest,明白这个对象的属性(readyState,status,responseText,statusText)以及方法(open,send),事件(onreadystatechange),以及get和post请求就可以写这两个Ajax小案例了。

1.使用Ajax检测用户名是否可以注册

注册jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var xhr; 
if(window.ActiveXObject)
	{
	xhr=new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器
	}else
		{
		xhr=new XMLHttpRequest();//其他浏览器
		}
function check() {
	document.getElementById("nametip").innerHTML="";
	var name=document.getElementById("uname").value;
	if(name.length<6)
		{
		document.getElementById("nametip").innerHTML="用户名长度不少于六位";//获取对象插入内容
		return; 
		}
	xhr.open("get","check.jsp?name="+name);//get请求加传递参数
	xhr.onreadystatechange=yanzheng;
	xhr.send(null);
	function yanzheng() {
		if(xhr.readyState==4)//响应完成
			{
			if(xhr.status==200)
				{
				var result=xhr.responseText;
				document.getElementById("nametip").innerHTML=result;
				}else
					{
					alert(xhr.status);//打印错误状态码
					}
			
				}
		}
	}
</script>
</head>
<body>
<form action="">
用户名:<input type="text" name="name" id="uname" onblur="check()"><span id="nametip"></span><br>
密码:<input type="password" name="pwd">
</form>
</body>
</html>

验证注册jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String name=request.getParameter("name");
boolean flag=true;
if(name.indexOf("suzy")>=0)//用户名包含suzy即用户名被占用(没有用数据库)
{
	flag=false;
}
if(flag)
{
	out.print("用户名可以使用");
}else
{
	out.print("用户名被占用");
}
%>
</body>
</html>

 

效果:

包含suzy即用户名被占用

2.使用Ajax根据生日获取相应的名字和地址

birth.jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var xhr; 
function check() {
	var birth=document.getElementById("birth").value; //首先通过ID获取生日
	if(window.ActiveXObject)
	{
	xhr=new ActiveXObject("Microsoft.XMLHTTP");
	}else
		{
		xhr=new XMLHttpRequest();
		}	
	xhr.open("get","BirthServlet?birth="+birth);
	
	xhr.onreadystatechange=function() {
		if(xhr.readyState==4)
			{
			if(xhr.status==200)
				{
				var result=xhr.responseText;
				var arr=result.split(",");//arr是数组,通过,分割数组元素
				document.getElementById("uname").value=arr[0];//将下标为0值赋给ID为uname的元素即名字
				document.getElementById("uaddress").value=arr[1];//将下标为1值赋给ID为uaddress的元素即地址
				}else
					{
					alert(xhr.status);
					}
			
				}
		
	};
	xhr.send(null);
}
</script>
</head>
<body>
<form action="">
<!-- onblur是去执行相应函数并不影响整个页面 -->
生日:<input type="text" name="birth" id="birth" onblur="check()"><br>
名字:<input type="text" name="name" id="uname"><br>
地址:<input type="text" name="address" id="uaddress"><br>
</form>
</body>
</html>

BirthServlet代码:(使用map容器添加了一些数据主要用于测试)

package com.suzy.servlet;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class BirthServlet
 */
public class BirthServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public BirthServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String birh=request.getParameter("birth");
		Map<String,String> map=new HashMap<>();
		map.put("0621", "仲夏,西安");
		map.put("0530", "允儿,首尔");
		map.put("1010", "秀智,光州");
		map.put("0611", "新垣结衣,冲绳");
		map.put("0216", "小松菜奈,东京");
		String result=map.get(birh);
		if(result==null)
		{
			result="没有存入,没有存入";
		}
		response.setContentType("text/html; charset=UTF-8");
response.getWriter().println(result);
		
				}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

效果:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经典案例,带数据库脚本、Java源文件和页面源文件。有演示效果,也可以自己部署看效果。以下是案例的目录。 1-1.EXE 动态加载的FAQ实例演示 1-2.EXE 根据邮政编码获取地区信息实例演示 1-3.EXE 动态树形列表实例演示 1-4.EXE 多级联动菜单实例演示 1-5.EXE 条件设置向导实例演示 1-6.EXE 页面关键词提示实例演示 2-1.EXE 无刷新显示回帖实例演示 2-2.EXE 输入内容前提示实例演示 2-3.EXE 带进度的文件上传实例演示 2-4.EXE 大量数据动态浏览查询实例演示 2-5.EXE 信息排序实例演示 2-6.EXE 切换标签页实例演示 3-1.EXE 注册表单验证实例演示 3-2.EXE 购物车实例演示 3-3.EXE 产品快速检索实例演示 3-4.EXE 系列产品特性速查实例演示 3-5.EXE 邮件订阅实例演示 3-6.EXE 产品评级实例演示 4-1.EXE 简单计算器实例演示 4-2.EXE 文章拼写检查实例演示 4-3.EXE 拼词游戏实例演示 4-4.EXE 在线词典实例演示 4-5.EXE 远程网页源代码读取实例演示 5-1.EXE 相册浏览实例演示 5-2.EXE 幻灯片实例演示 5-3.EXE 灯箱效果实例演示 5-4.EXE 聊天室实例演示 6-1.EXE 自动登录实例演示 6-2.EXE 自动保存草稿实例演示 6-3.EXE 实时更新的股价实例演示 6-4.EXE 提前加载分页文章实例演示 7-1.EXE 获取服务器当前时间实例演示 7-2.EXE 远程PING服务器实例演示 7-3.EXE 服务器监测系统实例演示 7-4.EXE 使用滑动栏设置参数实例演示 8-1.EXE RSS阅读器实例演示 8-2.EXE 天气情况查询实例演示 8-3.EXE 访问搜索服务实例演示 8-4.EXE 读取Amazon产品目录实例演示 9-1.EXE 名片册实例演示 9-2.EXE 自定义个人门户实例演示 9-3.EXE 个人任务管理实例演示 9-4.EXE 许愿墙实例演示 9-5.EXE 日程表实例演示 9-6.EXE 考试系统实例演示

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值