Jquery—Jquery异步功能实例
Jquery确实是一个非常好的JavaScript框架,今天利用闲暇时间给大家一个借助Jquery异步实现校验username的唯一性的样例:
代码1——index.jsp文件:
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <%
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>怎样使用jquery实现异步验证username的唯一性</title>
- <script type="text/javascript" src="<%=basePath%>js/jquery-1.8.3.min.js"></script>
- <script type="text/javascript">
- function checkUserName(){
- $.ajax({
- url : "<%=basePath%>JqueryAjaxCheckUserNameServlet", //(默认: 当前页地址) 发送请求的地址
- type: "post", //(默认: "get") 请求方式 ("post" 或 "get")。 默觉得 "get"。
- 注意:其他 http请求方法,如 put和 delete也能够使用。但仅部分浏览器支持。
- timeout:10,//设置请求超时时间(毫秒)。此设置将覆盖全局设置。
- async:true,//(默认: true) 默认设置下。全部请求均为异步请求。假设须要发送同步请求。请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完毕才干够运行。
- contentType:"application/x-www-form-urlencoded",//(默认: "application/x-www-form-urlencoded") 发送信息至server时内容编码类型。默认值适合大多数应用场合。
- data: 'userName='+$("#userName").val(),//发送到server的数据。将自己主动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自己主动转换。必须为 Key/Value 格式。假设为数组。jQuery 将自己主动为不同值相应同一个名称。
- 如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。
- dataType:'json',/*预期server返回的数据类型。假设不指定,jQuery 将自己主动依据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数參数传递,可用值:
- *"xml": 返回 XML 文档,可用 jQuery 处理。
- *"html": 返回纯文本 HTML 信息;包括 script 元素。
- *"script": 返回纯文本 JavaScript 代码。不会自己主动缓存结果。
- *"json": 返回 JSON 数据 。
- *"jsonp": JSONP 格式。
- 使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自己主动替换 ? 为正确的函数名,以运行回调函数。
- */
- success: function(json, textStatus){//假设调用servlet成功,响应200。
- 请求成功后回调函数。
- 这种方法有两个參数:server返回数据,返回状态(能够缺省)。
- console.log(textStatus);
- var flag = json.flag;
- if(flag == 'true'){
- $('#showUserName').html("<font size=\"2\" color=\"green\"> username有效!</font>");
- }else if(flag == 'false'){
- $('#showUserName').html("<font size=\"2\" color=\"red\"> username已被使用!
- </font>");
- }
- },
- error:function (XMLHttpRequest, textStatus, errorThrown) {//假设调用servlet出现故障,响应非200(这里响应405)。通常情况下textStatus和errorThown仅仅有当中一个有值 。
- (默认: 自己主动推断 (xml 或 html)) 请求失败时将调用此方法。这种方法有三个參数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。
- console.log(textStatus);
- $('#showUserName').html("<font size=\"2\" color=\"red\"> 请求发送失败。</font>");
- }
- });
- }
- </script>
- </head>
- <body>
- <center style="margin-top: 10%"><font style="color: red;font-size: 18pt;font-weight: bold;">怎样使用jquery实现异步验证username的唯一性</font><br><br>
- username:<input type="text" id="userName" name="userName" size="27" onblur="checkUserName();">
- <font size="2" id="showUserName"> *username必填。具有唯一性。</font>
- </center>
- </body>
- </html>
代码2——JqueryAjaxCheckUserNameServlet.java文件:
- package com.ghj.packagofserlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class JqueryAjaxCheckUserNameServlet extends HttpServlet {
- private static final long serialVersionUID = 6387744976765210524L;
- public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
- doPost(request,response);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
- try{
- response.setCharacterEncoding("UTF-8");
- request.setCharacterEncoding("UTF-8");
- System.out.println(1/0);//有益出现异常,以检查index.jsp中error方法是否可用
- PrintWriter out = response.getWriter();
- String userName=request.getParameter("userName");//获取“username”
- if("admin".equals(userName)) {
- out.write("{\"flag\":\"false\"}");//“false”表示username不可用。
- } else {
- out.write("{\"flag\":\"true\"}");//“true”表示username可用。
- }
- out.flush();
- out.close();
- }catch (Exception e) {
- e.printStackTrace();
- response.setStatus(405);//此时将运行index.jsp中error方法。
- }
- }
- }
代码3——web.xml文件:
- <?xml version="1.0" encoding="UTF-8"?
- >
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
- <servlet>
- <servlet-name>JqueryAjaxCheckUserNameServlet</servlet-name>
- <servlet-class>com.ghj.packagofserlet.JqueryAjaxCheckUserNameServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>JqueryAjaxCheckUserNameServlet</servlet-name>
- <url-pattern>/JqueryAjaxCheckUserNameServlet</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
说明:上面的样例用到了jquery-1.8.3.min.js文件,该文件可在以下的下载资源中找到。
【0分下载资源】
Jquery—Jquery异步功能实例的更多相关文章
- 基于jQuery带备忘录功能的日期选择器
今天给大家分享一款基于jQuery带备忘录功能的日期选择器.这款日期控制带有备记忘录功能.有备忘录的日期有一个圆圈,单击圆圈显示备忘录.该实例适用浏览器:360.FireFox.Chrome.Safa ...
- jQuery图片懒加载插件jquery.lazyload.js使用实例注意事项说明
jQuery图片懒加载插件jquery.lazyload.js使用实例注意事项说明 jquery.lazyload.js是一个用JavaScript编写的jQuery插件.它可以延迟加载长页面中的图片 ...
- 超炫jQuery测试答题功能
推荐一款超炫jQuery测试答题功能插件 实例代码 <body> <div class="container" id="main"> & ...
- 很不错的jQuery学习资料和实例
这些都是学习Jquery很不错的资料,整理了一下,分享给大家. 希望能对大家的学习有帮助. 帕兰 Noupe带来的51个最佳jQuery教程和实例, 向大家介绍了jQuery的一些基本概念和使用的相关 ...
- Jquery Ajax 异步设置Table中某列的值
可根据table中某列中的ID去改变某列的值! 只是参考,实际应用中不能这样做的,如果有很多行,频繁访问服务器,服务器是顶不住的! JS: $(document).ready(function () ...
- jQuery的基础语法实例
jQuery 基础语法 jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作. 基础语法是:$(selector).action() 美元符号定义 jQuery 选择符(sele ...
- 自己使用Jquery封装各种功能分享
自己使用Jquery封装各种功能分享: 左右滚动图片 瀑布流 流动显示列表 广告切换 头像切换And广告切换 获取搜索引擎的来源关键字 上面列表中展示的功能都是使用jquery进行封装实现的,希望大家 ...
- jquery实现菜单功能(单击展开或者关闭)-一般应用于后台
<!doctype html> <html> <head> <meta charset="gb2312"> <title> ...
- Asp.net+jquery+ajaxpro异步仿Facebook纵向时间轴效果
Asp.net+jquery+ajaxpro异步仿Facebook纵向时间轴效果 在一个项目中,用到了时间轴展示产品的开发进度,为了更好用户体验,想到了Facebook的timeline效果, 搜了一 ...
随机推荐
- WPF使用DEV之TreeListControl---加入复选框
1.绑定的Class中加入一个Bool类型的属性 2. 该属性无需初始赋值,你执行就可以看到如图: Bool类型数据自己主动变成了复选框 watermark/2/text/aHR0cDovL2Js ...
- acm2024
/** * C语言合法标识符 */ import java.util.*; public class acm2024 { public static void main(String[] args ...
- UDP和TCP的比較
当client须要请求数据库server上的某些数据时,它至少须要三个数据报来建立TCP连接.三个数据报礼发送和确认少量数据,三个用来关闭连接. 然而,假设使用UDP的话,只须要发出两个数据报就能达到 ...
- RESTful到底是什么玩意??
0. REST不是"rest"这个单词,而是几个单词缩写.: 1. REST描述的是在网络中client和server的一种交互形式:REST本身不实用,实用的是如何设计 RE ...
- java正则表达式简介
Java的正则表达式讲解:(为了能看清,本文正则表达式用中文的句号代替英文句点) 1 英文句点符号:匹配单个任意字符. eg: 表达式”t.o 可以匹配:tno,t#o,teo等等.不可以匹配:tn ...
- 从官方的BZR源安装avant-window-navigator
资料来自: http://blog.163.com/azhai@126/blog/static/111056312008315842433/http://www.ibentu.org/2007/09/ ...
- Bootstrap系列 -- 15. 下拉选择框select【转发】
<form role="form"> <div class="form-group"> <select class="f ...
- 【Oracle】事务处理
名词解释 DML:Data Manipulation Language (数据库操纵语言) 例如:DELETE.INSERT.UPDATE.SELECT DDL:Data Definition Lan ...
- Java 获取盘符及分类
import java.io.File; import javax.swing.filechooser.FileSystemView; public class ByteTest { public s ...
- MYSQL查询一周内的数据(最近7天的)
select * from wap_content where week(created_at) = week(now) 如果你要严格要求是某一年的,那可以这样 查询一天: select * from ...