jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿(mǎn)快樂(lè)、美好的愿望和寧?kù)o時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂(lè)或者寧?kù)o的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0
          http://pouyang.javaeye.com/blog/575245?
          字符串可以被包含在單引號(hào)或雙引號(hào)中,它可能包含0個(gè)或多個(gè)字符\(反斜線符號(hào))是轉(zhuǎn)義字符
          ? JavaScript在被創(chuàng)建的時(shí)候,Unicode是一個(gè)16位的字符集,所以JavaScript中的所有字符都是16位的.
          ? JavaScript沒(méi)有字符類(lèi)型,要表示一個(gè)字符,只須創(chuàng)建僅包含一個(gè)字符的字符串即可


          Js代碼 復(fù)制代碼
          1. alert( "A" ?==? "\u0041" ); //true ??
          2. alert( "seven" .length);? //?5 ??
          3. "o" + "y" + "p" ?==? "oyp" ; //true; ??
          4. "oyp" .toUpperCase()?==? 'CAT' ;??


          字符串是不可變的,一旦字符串被創(chuàng)建,就永遠(yuǎn)無(wú)法改變它,跟java一樣,所以語(yǔ)言都是相通的



          現(xiàn)在流行的異步提交,豐富多彩的互聯(lián)網(wǎng),現(xiàn)在不僅程序員享受著這種異步交互帶來(lái)的成就感,客戶(hù)也很期待也很享受Ajax的強(qiáng)大的交互功能,異步提交難免會(huì)出現(xiàn)js變量(中文)作為URL參數(shù),js變量作為URL參數(shù)傳到后臺(tái)會(huì)出現(xiàn)中文亂碼情況,(Jquery form動(dòng)態(tài)提交不會(huì)出現(xiàn)亂碼問(wèn)題),異步請(qǐng)求過(guò)去會(huì)得到,以下是解決方法


          Js代碼 復(fù)制代碼
          1. //前臺(tái) ??
          2. var ?accountCN?= "中文" ; ??
          3. var ?account?=?encodeURI(encodeURI(accountCN)); //?關(guān)鍵所在 ??
          4. var ?updateURL?=? "http://localhost:7001/ouyangping/demo.do?account=" account ??
          5. function ?updateRow(updateURL)?{ ??
          6. ????$.ajax(?{ ??
          7. ????????type?:? "POST" , ??
          8. ????????url?:updateURL, ??
          9. ????????cache?:? false , ??
          10. ????????dataType:? "json" , ??
          11. ????????success?:? function ?updateSuceess(data)?{ ??
          12. ???????? ??
          13. ???????????? ??
          14. ???????????? if ?(data.state?==? '1' )?{ ??
          15. ????????????????alert( '修改成功!' ); ??
          16. ????????????}? else ?{???? ??
          17. ????????????????alert( '修改失敗!' ); ??
          18. ????????????} ??
          19. ????????} ??
          20. ????}); ??
          21. }??


          //后臺(tái) 控制層

          Java代碼 復(fù)制代碼
          1. String??account?=?java.net.URLDecoder.decode(iRequest.getParameter("account"),"utf-8");//關(guān)鍵所在 ??
          2. JSONObject?json?=?new?JSONObject(); ??
          3. json.clear(); ??
          4. iResponse.setHeader("X-JSON",?json.toString()); ??
          5. iResponse.setCharacterEncoding("UTF-8"); ??
          6. iResponse.setHeader("Cache-Control",?"no-cache,must-revalidate");//?清楚緩存 ??
          7. iResponse.setHeader("Pragma",?"no-cache");?//?HTTP?1.0 ??
          8. iResponse.setDateHeader("Expires",?0);?//?prevents?caching?at?the ??
          9. //更新是否成功 ??
          10. //int?state?=?userManagerService.modUserByYui(userManagerDTO); ??
          11. int?state?=?userManagerService.modUserByYui(userManagerDTOJS); ??
          12. json.put("state",state); ??
          13. try?{ ??
          14. ????iResponse.getWriter().print(json.toString()); ??
          15. }?catch?(IOException?e)?{ ??
          16. ????e.printStackTrace(); ??
          17. } ??
          18. return?null;??

          ------------------------

          ? 有了兩個(gè)關(guān)鍵所在,就可以處理中文亂碼問(wèn)題了.但是很多地方都要處理,所以也要重構(gòu)下
          ? 這也帶來(lái)了問(wèn)題,如果URL后面的參數(shù)過(guò)多那么會(huì)導(dǎo)致URL非常長(zhǎng),曾經(jīng)考慮過(guò)把所有參數(shù)封裝成一個(gè)變量傳遞過(guò)去,這種方法可行是可行,但是解決不了中文亂碼的問(wèn)題,以下附上這種方法.



          Js代碼 復(fù)制代碼
          1. //這種把對(duì)象o傳遞過(guò)去,o里的內(nèi)容是json格式。 ??
          2. Object?o?=?new?Object() ??
          3. o.user?=?document.getElementById("user"); ??
          4. o.password?=?document.getElementById("password");??




          Js代碼 復(fù)制代碼
          1. //以Json格式獲取頁(yè)面上的查詢(xún)條件,且這些參數(shù)的name要一致 ??
          2. function?getJsonParameters(page)?{ ??
          3. ????$('input:text').each(function(){? ??
          4. ????????this.value?=?jQuery.trim(this.value); ??
          5. ????????} ??
          6. ????);? ??
          7. ????var?parameters?=?document.getElementsByName('form1'); ??
          8. ????var?parameter?=?"{"; ??
          9. ????for?(var?i?=?0?;?i?<?parameters.length;?i++?)?{ ??
          10. ????????if?(parameters[i].value?!=?null?&&?parameters[i].value?!=?'')?{ ??
          11. ????????????parameter?+=?parameters[i].id?+":'"+parameters[i].value+"',"; ??
          12. ????????} ??
          13. ????} ??
          14. ????if?(''+page?!=?'undefined'){ ??
          15. ????????parameter?+='page'+":'"+page+"',"; ??
          16. ????} ??
          17. ????parameter?+=?"}"; ??
          18. ????return?parameter; ??
          19. }??

          o 或者 parameter 傳遞過(guò)去,這種格式的在后臺(tái)這樣處理:


          Java代碼 復(fù)制代碼
          1. ???? ??
          2. //?頁(yè)面參數(shù)轉(zhuǎn)化為Bean ??
          3. String?parameter?=?iRequest.getParameter("parameter"); ??
          4. ????????????JSONObject?jsonObject?=?JSONObject.fromObject(parameter); ??
          5. ????????????UserManagerDTO?user?=?(UserManagerDTO)?JSONObject.toBean( ??
          6. ????????????????????jsonObject,?UserManagerDTO.class);??
          主站蜘蛛池模板: 旌德县| 舟山市| 筠连县| 甘南县| 正定县| 白沙| 罗山县| 关岭| 十堰市| 庆阳市| 锦州市| 绥化市| 邓州市| 星子县| 化德县| 沧州市| 郑州市| 永年县| 岳池县| 嘉鱼县| 姜堰市| 兴海县| 福贡县| 南平市| 宁武县| 雷波县| 巴林右旗| 平安县| 重庆市| 讷河市| 措美县| 桐庐县| 桂林市| 开原市| 乐昌市| 新龙县| 剑川县| 和平区| 循化| 南木林县| 宁晋县|