曾经在天涯论坛博客写过js调用AJAX时Get和post的乱码化解办法,可是选拔js代码相比较繁琐,大家在选用ajax举办多少交互时方可行使js的多个成熟框架—jQuery。

澳门微尼斯人手机版 1
演示地址:
代码下载:
查询QQ音乐是很早前就出去的多少个接口。
此处运用jQuery和jPlayer来实现QQ空间音乐的询问。
率先多谢bejson采撷的种种有效的接口,当然也暗含QQ空间音乐接口。
它的网站是:
大家要动用的接口位于bejson接口页面中的音乐接口栏里。
QQ音乐接口地址:

此处给出宗旨代码:
1.gtk参数的拿走格局

[html]

二个网址的统筹,不管是挂号登陆依然分页查找,都供给付出参数到服务器以便赢得所需的页面数据。为了减弱顾客因刷新页面带来的折腾,ajax诞生。可是初学者进行项目开支时,会超出二个很可恶的标题:粤语乱码。

复制代码 代码如下:

复制代码 代码如下:

下边小编就通过五个轻便的实例来报告大家哪些地方或许会促成乱码,大家供给经过如何方法来化解。
咱俩这么些实例主要完结顾客注册时顾客名是还是不是精确(已存在),在火爆移开username文本text时,对username进行异步提交并由servlet进行领取推断,并将结果回到页面做出相应提醒。

澳门微尼斯人手机版,function getGTK() {
var str = “@HR3etVm80”;
var hash = 5381;
for (var i = 0,
len = str.length; i < len; ++i) {
hash += (hash << 5) + str.charAt(i).charCodeAt();
}
var gtk = hash & 0x7fffffff;
//document.getElementById(“gtk”).value = gtk;
return gtk;
}

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“; 
<HTML xmlns=”; 
<HEAD> 
<TITLE>弹出窗口</TITLE> 
<META http-equiv=Content-Type content=”text/html;
charset=utf-8″> 
<style> 
#popupcontent{  
  position: absolute; 
  visibility: hidden;    
  overflow: hidden;    
  border:1px solid #CCC;    
  background-color:#F9F9F9;    
  border:1px solid #333;    
  padding:5px;} 
</style> 
<script> 
var baseText = null;  
function showPopup(w,h){    
    var popUp = document.getElementById(“popupcontent”);    
    popUp.style.top = “200px”;    
    popUp.style.left = “200px”;    
    popUp.style.width = w + “px”;    
    popUp.style.height = h + “px”;     
    if (baseText == null) baseText = popUp.innerHTML;   
    popUp.innerHTML = baseText + “<div
id=\”statusbar\”><input type=\”button\” value=\”Close
window\” onClick=\”hidePopup();\”></div>”;    
    var sbar = document.getElementById(“statusbar”);    
    sbar.style.marginTop = (parseInt(h)-60) + “px”;   
    popUp.style.visibility = “visible”; 

function hidePopup(){    
    var popUp = document.getElementById(“popupcontent”);    
    popUp.style.visibility = “hidden”; 

</script> 
<META content=”MSHTML 6.00.2900.2838″
name=GENERATOR></HEAD> 
<BODY> 
<div id=”popupcontent”>content</div> 

第一步,新建二个web工程(私下认可GBK格式),取名jQuery_Ajax。在其WebRoot目录下新建js文件包,将jquery-1.4.4.js放于当中。

2.伸手QQ空直接口

 
<p><a href=”#” onClick=”showPopup(300,200);”
>onclick</a></p> 
</BODY> 
</HTML> 

第二步,在src下创建servlet包,并编写Vali.java

复制代码 代码如下:

] 复制代码 代码如下: !DOCTYPE HTML PUBLIC
“-//W3C//DTD HTML 4.01 Transitional//EN”
“” HTML
xmlns=”…

复制代码 代码如下:

function getMusicId() {
var qqNo = document.getElementById(“qqNo”).value;
var url =
” + qqNo +
‘&json=1&g_tk=’ + getGTK();
$.getScript(url);
}

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
public class Vali extends HttpServlet {
@Override
protectedvoid service(HttpServletRequest request, HttpServletResponse
response)
throwsServletException, IOException {
StringuserName =
URLDecoder.decode(request.getParameter(“userName”),”utf-8″);
System.out.println(userName);
response.setContentType(“text/html;charset=utf-8”);
PrintWriter pw =response.getWriter();
if(userName.equals(“张三”)){
pw.println(“错误”);
}else{
pw.println(“正确”);
}
}
}

3.回调拼装JSON
根据再次回到的JSON接口
澳门微尼斯人手机版 2 
咱们来剖析音乐JSON

从可从代码看出,含有编码格式的说话正是化解乱码的办法之一。
在代码中注意:
1.UQashqaiLDecoder.decode(request.getParameter(“userName”),”utf-8″)——将页面传来的数目进行格式转换并提取
2.response.setContentType(“text/html;charset=utf-8”)——将响应重回值举行utf-8编码后赶回页面
3.特别注意第22中学的转换需写在本方法内一切的response此前,不然大概失效
4.本servlet对数码的格式编码只适合Post方法,若提交方式为GET则提取页面数据的代码如下:

复制代码 代码如下:

发表评论

电子邮件地址不会被公开。 必填项已用*标注