jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路


Posted in Javascript onApril 08, 2013

       jQuery是时下比较流行的一个js库,能够用简单的代码做出理想的效果,就像官网上说的那样“write less ,do more”。Jquery在一定程度上改写了以往对JavaScript的写法,本人就用jquery实现上篇中用ajax实现异步通信的效果,感受一下jquery的魅力。

     首先你需要下载jquery的最新的js文件,并将其引入到文件中,你也可以在此下载:点我下载。

     这次通信用的是jquery的jQuery.post(url,[data][callback],[type])方法,这是一个简单的POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。参数为:url,[data],[callback],[type] 相对应的参数类型为String,Map,Function,String:

     ●url:发送请求地址。

     ●data:待发送 Key/value参数。

     ●callback:发送成功时回调函数。

     ●type:返回内容格式,xml,html, script, json, text, _default)

     新建一个jsp文件jqueryDemo.jsp,代码如下所示:

<%@ page language="java"contentType="text/html; charset=GB18030" 
pageEncoding="GB18030"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type"content="text/html; charset=GB18030"> 
<title>jquery</title> 
<style type="text/css"> 
table.demo{border-collapse: collapse;margin-top: 50px;margin-left: 220px;} 
table.demo th,td {padding: 0; border: 1px solid #000;} 
#img,#msg{position: static;float: left;} 
#account,#password1,#password2{margin-left: 10px;} 
#img{margin-left: 10px;} 
</style> 
<script type="text/javascript" src="jquery/jquery-1.7.2.min.js"></script> 
<script type="text/javascript"> 
function accountCheck(){ 
var account=$('#account').val(); 
if(account==""){ 
alert("用户帐号不能为空!"); 
$('#img').html(""); 
$('#msg').text(""); 
return; 
} 
$.post('JqueryServlet',{strAccount:account},function(data){ 
eval("data="+data); 
if(data.success){ 
$('#img').html("<img src='img/cross.png'/>"); 
}else{ 
$('#img').html("<img src='img/tick.png'/>"); 
} 
$('#msg').text(data.msg); 
}); 
} 
</script> 
</head> 
<body> 
<form action=""method="post" > 
<table class="demo" style="width: 450px;height: 200px;"> 
<tr> 
<td colspan=3 align=center>新用户注册</td> 
</tr> 
<tr> 
<td style="width:90px; ">用户帐号:</td> 
<td style="width:185px; "><input type="text"id="account" name="account"onblur="accountCheck();"><font color=red>*</font></td> 
<td style="width:175px; "> 
<div id="img" class="img"></div> 
<div id="msg"class="msg"></div> 
</td> 
</tr> 
<tr> 
<td>用户密码:</td> 
<td><input type="password"id="password1" name="password1"></td> 
<td></td> 
</tr> 
<tr> 
<td>重复密码:</td> 
<td><input type="password"id="password2" name="password2"></td> 
<td></td> 
</tr> 
<tr> 
<td colspan=3 align=center><input type="submit"value="注册"></td> 
</tr> 
</table> 
</form> 
</body> 
</html>

     新建一个servlet文件JqueryServlet.java,代码如下所示:

package com.ldfsoft.servlet; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
importjavax.servlet.http.HttpServletRequest; 
importjavax.servlet.http.HttpServletResponse; 
/** 
*Servlet implementation class JqueryServlet 
*/ 
public class JqueryServlet extendsHttpServlet { 
privatestatic final long serialVersionUID = 1L; 
/** 
* @see HttpServlet#HttpServlet() 
*/ 
public JqueryServlet() { 
super(); 
// TODO Auto-generated constructor stub 
} 
/** 
* @see HttpServlet#service(HttpServletRequestrequest, HttpServletResponse response) 
*/ 
protectedvoid service(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException { 
//TODO Auto-generated method stub 
request.setCharacterEncoding("utf-8"); 
response.setContentType("text/html;charset=utf-8"); 
String account=request.getParameter("strAccount"); 
PrintWriter out=response.getWriter(); 
String str=""; //用以json传值 
if(account.equals("admin")){ 
str="{success:true,msg:'该账户已存在'}"; 
}else{ 
str="{success:false,msg:'该账户可以使用'}"; 
} 
out.write(str); 
} 
}

     好了,现在可以运行了,打开服务器,运行此jsp文件,页面如下所示:

jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路

    当输入admin时,页面如下所示:

jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路

     当输入其他的字符时,页面如下所示:

jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路

     可以看出jquery能够实现ajax的功能,并且代码更简洁了。

     只是,最后本人有一个问题迟迟没有解决,那就是输入中文时传到后台的值乱码,按照网上的好多办法都没有解决掉,不知道为什么,谁有更好的方法希望能给我推荐一下,本人不胜感激。

      这是本人学习的结果,允许转载,欢迎交流,但转载务必给出本文章的链接地址

Javascript 相关文章推荐
Js 本页面传值实现代码
May 17 Javascript
jQuery 解析xml文件
Aug 09 Javascript
一些经常会用到的Javascript检测函数
May 31 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 Javascript
改变checkbox默认选中状态及取值的实现代码
May 26 Javascript
jQuery特殊符号转义的实现
Nov 30 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
May 02 Javascript
搭建一个Koa后端项目脚手架的方法步骤
May 30 Javascript
Vue解析带html标签的字符串为dom的实例
Nov 13 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
Apr 08 #Javascript
Jquery图片滚动与幻灯片的实例代码
Apr 08 #Javascript
Js动态添加复选框Checkbox的实例方法
Apr 08 #Javascript
JS解决url传值出现中文乱码的另类办法
Apr 08 #Javascript
JS继承--原型链继承和类式继承
Apr 08 #Javascript
原生js实现shift/ctrl/alt按键的获取
Apr 08 #Javascript
原生js实现跨浏览器获取鼠标按键的值
Apr 08 #Javascript
You might like
php生成图片验证码
2015/06/09 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
es6 symbol的实现方法示例
2019/04/02 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python自动12306抢票软件实现代码
2018/02/24 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
python3图片文件批量重命名处理
2019/10/31 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
超市重阳节活动方案
2014/02/10 职场文书
人力资源管理求职信
2014/08/07 职场文书
自我工作评价范文
2015/03/06 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书