最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery Ajax傳值到Servlet出現(xiàn)亂碼問題的解決方法

 更新時間:2016年10月09日 10:22:50   作者:SpringLife  
jquery ajax 傳值給Servlet,在Servlet里Get接受參數(shù)亂碼,怎么解決呢?下面小編給大家?guī)砹薺query ajax傳值到Servlet出現(xiàn)亂碼問題的解決方法,一起看看吧

最近在學jquery ui,在做一個小功能的時候需要將前臺的值獲取到,通過Ajax傳遞給Servlet,然后再在返回數(shù)據(jù)結(jié)果,但是在Servlet接受參數(shù)的時候,通過后臺打印,發(fā)現(xiàn)接受亂碼,代碼示例如下:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String testword=request.getParameter("criticalword")
System.out.println(testword);
out.println(testword);
out.flush();
out.close();
}

  我只用的是ajax的get方式傳遞的,所以上面也只截取了doGet()方法的代碼,那么對于亂碼,會有哪幾種情況呢,我談一下我的看法,具體每個階段的方法我會以代碼和截圖的方式給出:

1.保證jsp網(wǎng)頁沒有亂碼

  首先得確保你的JSP頁面沒有亂碼,具體代碼如下:

%@page pageEncoding="utf-8" contentType="text/html;charset=utf-8" %

  這句話添加在網(wǎng)頁最頂部就可以了,補充下page指令的兩個參數(shù)的具體含義,很多人也許會用,但是我覺得還是有必要了解下的:

a.pageEncoding參數(shù)

  pageEncoding屬性用來指定JSP頁面的字符編碼,默認為ISO-8859-1,由于該方法不支持中文,所以,如果要指定JSP頁面的字符編碼方式支持中文編碼,則需要將page指令的pageEncoding屬性設置為"GB2312"、"GBk"或"UTF-8"。

b.contentType參數(shù)

  contentType屬性用來指定JSP頁面輸出內(nèi)容的類型和字符編碼方式。屬性值中的內(nèi)容類型部分可以為text/html(純文本HTML頁面)、text/plain(純文本文件)等。

2.保證jQuery Ajax在傳遞前沒有亂碼

  下面貼出的Ajax代碼,我要給后臺傳遞的參數(shù)是get類型,參數(shù)名叫criticalword,代碼如下:

$('#search').autocomplete({
source:function(request,response){
     alert('看看在傳遞前有沒有亂碼'+request.term);
$.ajax({
type:'get',
url:'/SGAME/servlet/IndexSearchItems',
data:{criticalword:encodeURI(request.term)},
success:function(response,status,xhr){
alert(response);
}
});
},
delay:100
})

  正如我代碼紅色所標記的,你在傳遞前先alert()彈窗,測測看是不是你的js文件已經(jīng)亂碼,如果是的話,解決方法:

    1.回查上一步是不是沒解決

    2.js文件編碼問題:在資源管理器用記事本打開js,然后另存為,在編碼里選擇utf-8

  如下圖:

  當你的第一個彈窗沒有亂碼,那說明在傳給Servlet前沒有問題,那個在進入下一步前先做一個準備工作,如上述紅色代碼所示,先給參數(shù)轉(zhuǎn)碼:

criticalword:encodeURI(request.term)

  這個轉(zhuǎn)碼是為了防止在Servlet中出現(xiàn)接收亂碼的函數(shù),形式為:encodeURI(param)

3.保證Servlet在接受Ajax的參數(shù)時(request)沒有亂碼

  到了這一步說明你離成功不遠了,只需要先request和resopnse設置編碼的方式,然后再解碼即可,doGet代碼如下:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String testword=URLDecoder.decode(request.getParameter("criticalword"),"utf-8");
System.out.println(testword);
out.println(testword);
out.flush();
out.close();
}

  其中主要有三個要點:

  a.response.setContentType():用于設置響應回jsp或者Ajax的字符編碼。

  b.request.setCharacterEncoding():用于設置接收請求的響應編碼。

  c.URLDecoder.decode():此函數(shù)需要先導入java.net包,用于對Ajax的編碼進行解碼。

  完成以上三個步驟后,你可以像我一樣,在返回前加一個System.out.println(yourParam)試試,如果是中文那就沒問題啦

4.保證Servlet在響應(response)給jsp沒有亂碼

 其實在第三部的要點b設置好后,其實返回給html或jsp就應該之中文了。

注:如果你用的是post方法,直接在Ajax里加上contentType:application/x-www-form-urlencoded;charset=utf-8就可以了,不需要進行轉(zhuǎn)碼。

相關(guān)文章

  • jQueryUI DatePicker 添加時分秒

    jQueryUI DatePicker 添加時分秒

    本文主要介紹jQueryUI DatePicker添加時分秒的方法,簡單實用,需要的朋友可以參考下。
    2016-06-06
  • IE8下Jquery獲取select選中的值post到后臺報錯問題

    IE8下Jquery獲取select選中的值post到后臺報錯問題

    IE8下出現(xiàn)的問題是直接將selectedValue post發(fā)送到后臺,后臺接收時會報錯,這是因為IE8下selectedValue當成了數(shù)組,后臺無法識別
    2014-07-07
  • jQuery zTree如何改變指定節(jié)點文本樣式

    jQuery zTree如何改變指定節(jié)點文本樣式

    這篇文章主要介紹了jQuery zTree如何改變指定節(jié)點文本樣式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Jquery選擇器 $實現(xiàn)原理

    Jquery選擇器 $實現(xiàn)原理

    在此之前對于Microsoft Ajax的Sys和Jquery的$符號一直很好奇, 不明白為什么輸入一個'$()'就可以實現(xiàn)選擇器?
    2009-12-12
  • jquery each的幾種常用的使用方法示例

    jquery each的幾種常用的使用方法示例

    在jQuery里有一個each方法,用起來非常的爽,不用再像原來那樣寫for循環(huán),下面介紹each的幾種常用的用法
    2014-01-01
  • jquery圖片延遲加載 前端開發(fā)技能必備系列

    jquery圖片延遲加載 前端開發(fā)技能必備系列

    在網(wǎng)上經(jīng)常會看到一些很長的網(wǎng)頁會延遲加載其中的圖片,我認為這是一種按需分配的做法,網(wǎng)頁只為那些想繼續(xù)瀏覽網(wǎng)頁的人加載后面的圖片,在不影響用戶體驗的前提下,最大程度地減少服務器負擔和流量
    2012-06-06
  • jquery實現(xiàn)轉(zhuǎn)盤抽獎功能

    jquery實現(xiàn)轉(zhuǎn)盤抽獎功能

    本文主要介紹了用的jqueryRotate插件實現(xiàn)轉(zhuǎn)盤抽獎功能的方法,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • jQuery實現(xiàn)鼠標可拖動調(diào)整表格列寬度

    jQuery實現(xiàn)鼠標可拖動調(diào)整表格列寬度

    這篇文章主要介紹了通過jQuery實現(xiàn)鼠標可拖動調(diào)整表格列寬度,需要的朋友可以參考下
    2014-05-05
  • jquery中JSON的解析方式

    jquery中JSON的解析方式

    用jquery解析JSON數(shù)據(jù)的方法,作為jquery異步請求的傳輸對象,jquery請求后返回的結(jié)果是json對象,這里考慮的都是服務器返回JSON形式的字符串的形式,對于利用JSONObject等插件封裝的JSON對象,與此亦是大同小異,這里不再做說明
    2015-03-03
  • jquery用ajax方式從后臺獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表

    jquery用ajax方式從后臺獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表

    從后臺獲取json數(shù)據(jù),將內(nèi)容填充到下拉列表,頁面做如何處理,接下來,通過本篇文章給大家實例講解jquery用ajax方式從后臺獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表,需要的朋友可以參考下
    2015-08-08

最新評論

桃江县| 当阳市| 泉州市| 体育| 莲花县| 周口市| 白朗县| 扶余县| 靖江市| 汤原县| 交城县| 容城县| 阳城县| 靖远县| 新巴尔虎左旗| 双牌县| 汉阴县| 五河县| 盐津县| 格尔木市| 大同市| 霍山县| 慈利县| 凤阳县| 衢州市| 平度市| 广德县| 土默特右旗| 清徐县| 改则县| 甘南县| 兰州市| 临海市| 噶尔县| 五大连池市| 彰武县| 黔江区| 莱州市| 陇南市| 兴和县| 武陟县|