Ajax+Servlet 验证用户名是否存在

index.jsp

<%@ 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>

<!-- 
	1. 导入 jQuery 库
	2. 获取 name = "username" 的节点 username
	3. 为 username 添加 change响应函数
		3.1 获取 username 的 value 属性值,去除前后空格且不为空
		3.2 发送 Ajax 请求检验 username 是否可用
		3.3 在服务端直接返回一个 html 片段
		3.4 在客户端浏览器把其直接添加到 #message 的 html 中
 -->
<script type="text/javascript" src ="${pageContext.request.contextPath}/scipts/jquery-2.1.0.js"></script>
<script type="text/javascript">

	$(function(){
		
			$(":input[name = 'username' ]").change(function(){
			var val = $(this).val();
			val = $.trim(val);
			
			if(val != ""){
				var url = "${pageContext.request.contextPath}/valiateUserName";
				var args = {"userName":val , "time": new Date()};
				
				$.get(url, args, function(data){
					$("#message").html(data);
				});
			}
			
		});
	})
</script>
</head>
<body>
	<form action="" method = "post">
		
		userName: <input type = "text" name = "username" placeholder="Search..."/>
		<br><br>
		<div id = "message"></div>
		<br>
		<input type = "submit" value = "Submit" />
		
	</form>
</body>
</html>

ValiateUserNameServlet.java

package com.anqi.ajax.app.servlets;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

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("/valiateUserName")
public class ValiateUserNameServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public ValiateUserNameServlet() {
        super();
    }


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		List<String> userNames = Arrays.asList("AAA", "BBB", "CCC");
		
		String userName = request.getParameter("userName");
		String result = null;
		if(userNames.contains(userName))
			result = "<font color = 'red'>用户名已经存在</font>";
		else
			result = "<font color = 'green'>用户名可以使用</font>";
		response.setContentType("test/html");
		response.setCharacterEncoding("UTF-8");
		response.getWriter().print(result);
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}

}

结果展示

拓展知识:


  • 服务端响应的是 HTML 格式文件

    

<script type="text/javascript" src = "jquery-2.1.0.js"></script>
<script type="text/javascript">
 $(function(){
	 $("a").click(function(){
		 
		 var url = this.href;
		 var args = {"time":new Date};
		 
		 $.get(url,args,function(data){

			 var name = data.name;
			 var website = data.website;
			 var email = data.email;
		 $("#details").empty()
				.append("<h2><a href = 'mailto:"+email+"'>"+name+"</a></h2>")
				.append("<a href = '"+website+"'>"+website+"</a>");
		 },"JSON");
	 });
 })
</script>
<body>
	<h1>People</h1>
	<ul>
		<li><a href = "file/andy.js">Andy</a></li>
		<li><a href = "file/richard.js">Richard</a></li>
		<li><a href = "file/jeremy.js">Jeremy</a></li>
		
		<div id = "details"></div>
	</ul>
</body>

  • 服务端响应的是 XML 格式文件
    
$(function(){
		$("a").click(function(){
			
			var url = this.href;
			var args = {"time":new Date()};
			
			$.get(url, args, function(data){
				var name = $(data).find("name").text();
				var website = $(data).find("website").text();
				var email = $(data).find("email").text();
				$("#details").empty()
						.append("<h2><a href = 'mailto:"+email+"'>"+name+"</a></h2>")
						.append("<a href = '"+website+"'>"+website+"</a>");
			});
			
			return false;
		});
	})

  • 服务端响应的是 JSON 格式文件
    
$(function(){
	 $("a").click(function(){
		 
		 var url = this.href;
		 var args = {"time":new Date};
		 
		 $.get(url,args,function(data){

			 var name = data.name;
			 var website = data.website;
			 var email = data.email;
		 $("#details").empty()
				.append("<h2><a href = 'mailto:"+email+"'>"+name+"</a></h2>")
				.append("<a href = '"+website+"'>"+website+"</a>");
		 },"JSON");
	 });
 })



  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值