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 相关文章推荐
关于__defineGetter__ 和__defineSetter__的说明
May 12 Javascript
jquery nth-child()选择器的简单应用
Jul 10 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
Feb 27 Javascript
一个JavaScript处理textarea中的字符成每一行实例
Sep 22 Javascript
jQuery实现防止提交按钮被双击的方法
Mar 24 Javascript
javascript获取网页宽高方法汇总
Jul 19 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
Jan 05 Javascript
如何快速上手Vuex
Feb 14 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
利用Vue实现一个markdown编辑器实例代码
May 19 Javascript
详解Vue2.5+迁移至Typescript指南
Aug 01 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 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
一个颜色轮换的简单例子
2006/10/09 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
动态加载iframe
2006/06/16 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
Python中捕获键盘的方式详解
2019/03/28 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
np.random.seed() 的使用详解
2020/01/14 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
进修护士自我鉴定
2013/10/14 职场文书
高中英语教学反思
2014/02/04 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
男方婚礼答谢词
2015/01/20 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
外出听课学习心得体会
2016/01/15 职场文书