大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Ajax亂碼解決方案

Ajax亂碼解決方案

更新時間:2022-03-14 10:17:00 來源:動力節點 瀏覽1461次

1.JSP、STRUTS等中文亂碼的解決方法其實解決的只有一種:

request.setCharacterEncoding(編碼);

只有一種方法,但我們有不同的方法,初學者會直接在JSP頁面中使用,而有經驗的程序員會使用過濾器。現在的方法是說過濾器。這里統一使用UTF-8編碼為例進行說明。具體過程就不多說了,網上有很多教程。有點懶,把TOMCAT抄過來就行了。TOMCAT 目錄下的“webapps” jsp-examples “WEB-INF” classes “filters” 找到SetCharacterEncodingFilter.java 這個類進入你的程序并配置映射路徑。配置完你的垃圾問題基本解決了。但我想映射路徑警告是你不能使用'*'

< Filter-Mapping > < filter-name > Set Character Encoding </ filter-name > < servlet-name > * </ servlet-name > </ filter-Mapping >

如上如此配置(也許是網上大部分教程的方法,我記得也對我造成了傷害),你可能只解決了JSP亂碼,需要解決STRUTS的亂碼映射*.do或servletActionName。設置初始化參數編碼中的值就行了。

< init-param > < param-name >編碼</ param-name > < param-value > UTF-. 8 </ param-value > </ init-param >

當然,最重要的是要記住,按照前面提到的方法,你使用的保存文件的編碼編輯器的更改必須與使用的字符編碼保持一致。

在JSP的內容中,比如網上的教程或者使用說的那種招數,把所有的頁面加到最上面:

<% @Page Language = "Java" contentType = " text / HTML; charset = UTF - .8 "
    pageEncoding = "UTF - .8 " %>

至此,相信JSP、ACTION亂碼都不太可能出現。

2.資源文件亂碼的解決辦法

資源文件大家都知道國際支持是不可或缺的,如果資源文件出現亂碼也很可怕?其實資源文件亂碼是一個很好的解決辦法,其原因是因為使用UTF-8編碼的文件作為JSP代碼,不會導致資源文件發生相應的變化,所以只要保存資源文件的編碼即可改正,垃圾問題就解決了。當然,你要使用中文native2ascii命令進行適當的轉換。

3.調用JS時,JS內容亂碼的解決方法。

其實JS亂碼還是跟編碼文件有關系,如果JS中有中文,那么保存JS文件編碼必須現在調用這個頁面編碼相同的JS否則,所有你要從中文JSP傳過來的頁面JS出現正常. 可見對于JS出現亂碼調用是最容易解決的。

4.AJAX提交數據亂碼、返回數據亂碼的解決辦法

本來的目的,當然是跟AJAX相關的編碼亂碼問題,其實很多人和我一樣想到文件編碼設置,在編碼設置requet訪問數據集在響應數據返回編碼一切都會很順利,但一切都是徒勞的,討厭的垃圾再次出現在你面前。N 之后你嘗試了各種方法,包括 JS 自己的 escape、unescape 方法,你發現屏幕上仍然瘋狂出現垃圾。

其實這個方法試過N多之后,很多人都找不到很簡單的解決方法,而它的答案就在于我們處理過的JSP亂碼。再來看看經典的AJAX請求方式代碼

xmlhttp.open(“POST”,URL,異步);
xmlhttp.setRequestHeader("內容-類型", "text/HTML");
xmlhttp.send(參數);

通過前面的描述,你現在不知道辨別沒有。不知道是受網上教程的影響還是其他方面的影響,setRequestHeader 和是同年的,沒有人希望它改變過去,但問題只是出了這個地方。回想一下JSP頁面的內容編碼設置,這里有這樣一個:

contentType = "文本/html;字符集 = UTF-8"

問題現在知道了,所以我們需要把代碼改成第二句:

xmlhttp.setRequestHeader ("Content-Type", "text/html; charset = UTF-8");

最后,不要忘記在返回數據時也設置:

response.setContentType(“文本/XML”);
response.setCharacterEncoding("UTF-.8");

如果要問為什么,那么,其實我們可以看成是一個臨時的xmlhttp頁面,它是由瀏覽器動態生成的,主要作用是在后臺獲取請求的數據(可以看成一個高級iframe )。所以對于普通的編碼設置頁面,應該是一樣的設置。servlet中的返回數據為什么設置contentType和encoding其原因是一樣的。眾所周知,它是jsp servlet的最后一種形式,而jsp top設置的內容其實就是讓生成的servlet生成這么兩句話:

response.setContentType(“文本/HTML”);
response.setCharacterEncoding("UTF-.8");

pageEncoding現在jvm描述了這個頁面的內容保存你想用什么編碼(生成后跟CLASS有關系)。因此在 servlet 響應中設置編碼是被授予的。

response.setContentType ("text/xml; charset = UTF-8");
response.setHeader("Pragma", "no-cache");//HTTP 1.0  
response.setDateHeader("Expires", 0);//防止在代理服務器緩存  
PrintWriter out = response.getWriter();
out.write (outXML);
out.flush();
out.close();

寫給客戶端中文數據是UTF-8編碼,客戶端js腳本拿到request.responseXML也好,responseText還是,里面的數據不會亂碼。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久久久亚洲精品一区二区三区 | 新久草在线 | 日日摸天天添天天添破 | 日韩免费观看一级毛片看看 | 精品外国呦系列在线观看 | 九色国产在视频线精品视频 | 免费一级a毛片免费观看欧美大片 | 免费99精品国产自在现线观看 | 视频一区精品 | 男人午夜免费视频 | 亚洲va精品中文字幕动漫 | 精品美女视频在线观看2023 | 国产成人一区二区三区在线播放 | 夜色成人免费观看 | 狠色狠狠色狠狠狠色综合久久 | 99热这里有免费国内精品 | 殴美一级片 | 欧美成人午夜影院 | 黄色男人的天堂 | 久久精品免视看国产明星 | 久久久久久极精品久久久 | 人人爱天天做夜夜爽毛片 | 狠狠色噜噜狠狠狠狠色综合久 | 黄色成人免费观看 | 色综合色| 国产精品国产三级国产专区5o | 午夜毛毛片 | 大乳孕妇一级毛片 | 91手机视频| 无遮挡又黄又爽又色1000部 | 这里只有精品视频在线观看 | 国产精品99久久久久久宅男 | 中文字幕亚洲精品久久 | 亚洲国产精品ⅴa在线观看 亚洲国产精品aa在线看 | 成人做爰小视频 | 日本一区二区三区高清在线观看 | 久久69精品久久久久久hb | 天天摸日日 | 欧美丰满大乳大屁股毛片 | 在线观看国产精品入口 | 国产真实伦视频在线观看 |