Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML),是指一種建立交互式網頁應用的網頁開辟手藝。
Ajax = 異步 JavaScript 和 XML 或者是 HTML(尺度通用標識表記標幟說話的子集)。
Ajax 是一種用于建立快速動態網頁的手藝。
Ajax 是一種在無需從頭加載整個網頁的環境下,可以或許更新部門網頁的手藝。
經由過程在后臺與辦事器進行少量數據互換,Ajax 可以使網頁實現異步更新。這意味著可以在不從頭加載整個網頁的環境下,對網頁的某部門進行更新。
傳統的網頁(不利用 Ajax)若是需要更新內容,必需重載整個網頁頁面。
第一步:問題定位。
1、呈現亂碼的原因一般都是因為編碼的紛歧致導致的。ajax請求接管字符編碼一般都為utf-8
2、在數據傳輸的過程中,前端get請求或post請求在顛末Tomcat和java的一些框架時,都可能會呈現編碼紛歧致的問題導致亂碼,亂碼一般都是中文。
第二步:問題重現。
1、我們重現的是比力原始的javaweb的servlet開辟,status2和springmvc和其它框架道理根基都是一樣的。
2、代碼實現
2.1 起首搭建一個javaweb項目
編寫servlet關頭代碼
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "張三");
map.put("name2", "李四");
map.put("name3", "網二");
JSONObject json = new JSONObject(map);
PrintWriter out = response.getWriter();
out.write(json.toString());
out.close();
}
2.2 web.xml設置裝備擺設
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>com.test.servlet.ServletController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/servlet.do</url-pattern>
</servlet-mapping>
第三步:重現亂碼測試。
1、打開頁面。
2、單擊按鈕ajax
3、彈出內容亂碼,問題重現
第四步:問題解決。
1、解決的思惟本家兒如果經由過程領受數據,傳輸數據之前先利用utf-8編碼解決。
2、具體代碼如下所示
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=utf-8");
// setContentType與setCharacterEncoding的挨次不克不及更調,不然仍是無法解決中文亂碼的問題
response.setCharacterEncoding("UTF-8");
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "張三");
map.put("name2", "李四");
map.put("name3", "網二");
JSONObject json = new JSONObject(map);
PrintWriter out = response.getWriter();
out.write(json.toString());
out.close();
}
3、測試。
3.1 打開頁面,
3.2點擊ajax按鈕如下圖所示。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!