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 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!