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 面向对象的技术创建高级 Web 应用程序
Feb 25 Javascript
深入理解javascript的执行顺序
Apr 04 Javascript
js限制checkbox选中个数以限制六个为例
Jul 15 Javascript
JavaScript中的类(Class)详细介绍
Dec 30 Javascript
JavaScript实现点击按钮切换网页背景色的方法
Oct 17 Javascript
利用JavaScript阻止表单提交的两种方法
Aug 11 Javascript
原生JS实现不断变化的标签
May 22 Javascript
JavaScript严格模式下关于this的几种指向详解
Jul 12 Javascript
VUE脚手架的下载和配置步骤详解
Apr 01 Javascript
vue+element实现打印页面功能
May 20 Javascript
基于vue hash模式微信分享#号的解决
Sep 07 Javascript
vue实现轮播图帧率播放
Jan 26 Vue.js
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
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
Javascript的一种模块模式
2008/03/22 Javascript
Javascript 继承机制的实现
2009/08/12 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
使用PYTHON接收多播数据的代码
2012/03/01 Python
python通过floor函数舍弃小数位的方法
2015/03/17 Python
wxPython中listbox用法实例详解
2015/06/01 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
Python单元测试简单示例
2018/07/03 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
python异常处理和日志处理方式
2019/12/24 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
error和exception有什么区别
2012/10/02 面试题
宣传工作经验材料
2014/06/02 职场文书
2014年法院工作总结
2014/11/24 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android