当前位置: 首页 > news >正文

学习做网站大概多久时间/互联网营销怎么赚钱

学习做网站大概多久时间,互联网营销怎么赚钱,设计公司网站域名,wordpress在线教育主题购买编码问题 (1)发送get请求 为什么会产生乱码? ie浏览器提供的ajax对象,对中文会使用gbk来编码,非ie浏览器 会使用utf-8来编码。服务器端默认会使用"iso-8859-1"来解码, 所以会产生乱码。 如何解决? step1. 在服务器端&#…

编码问题

(1)发送get请求

为什么会产生乱码? 

ie浏览器提供的ajax对象,对中文会使用gbk来编码,非ie浏览器 会使用utf-8来编码。服务器端默认会使用"iso-8859-1"来解码, 所以会产生乱码。

如何解决?

step1. 在服务器端,统一使用"utf-8"来解码。
<Connector URIEncoding="utf-8"/>

step2. 浏览器端,使用encodeURI对中文进行编码。
注: encodeURI函数会使用utf-8来编码。

代码如下:

var uri = "check_admin.do?adminCode=" + $F("adminCode");
xhr.open("get",encodeURI(uri),true);

(2)发送post请求

为什么会产生乱码? 

浏览器所提供的ajax对象都会使用utf-8对中文进行编码。 而服务器端会使用iso-8859-1来解码。

如何解决?

request.setCharacterEncoding("utf-8"); 

2. JSON (Javascript Object Notation)

(1)JSON是什么?

是一种轻量级的数据交换格式。

什么是数据交换?

将数据转换成一种与平台无关的数据格式(比如xml),然后交给接收方 来处理。

轻量级

相对于xml,json文档更小,解析的速度更快。

(2)基本语法

表示一个对象

{属性名:属性值,属性名:属性值...} 
注:
a. 属性名必须使用双引号括起来。
b. 属性的类型可以是string,number,true/false,null,object。
c. 属性值如果是string,必须使用双引号括起来。

表示由对象组成的数组

[{},{},{}...] 

(3)使用json

(1)java对象如何转换成json字符串。

使用json官方工具(json-lib)json-lib

注意:此处要导入6个jar包,其中json-lib的pom文件中要加入标签以便指明JDK的版本

JSONObject  JSONArray  调用fromObject()方法返回fromObject对象,再调用toString()方法转换为符合JSON格式的字符串

(2)json字符串如何转换成javascript对象。

使用javascript内置对象 JSON.parse()方法,返回javascript对象(或数组)

==================================================

处理编码问题示例代码:

 

package web;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ActionServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("service()");request.setCharacterEncoding("utf-8");//post请求时候解决中文乱码//分析请求资源路径//例如http://ip:port/ajax-day01/check.do (端口号后面的字符串为该路径)String uri= request.getRequestURI();System.out.println(uri);String action = uri.substring(uri.lastIndexOf("/"),uri.lastIndexOf("."));System.out.println(action);//checkresponse.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();//获得输出流if("/check_admin".equals(action)){String adminCode = request.getParameter("adminCode");System.out.println("adminCode:"+adminCode);if("King".equals(adminCode)){//帐号已经存在out.println("帐号已经存在");}else{out.println("可以使用");}}else if("/luck".equals(action)){//获取随机整数Random rand = new Random();int num = rand.nextInt(100);out.println(num);}out.close();}}

==================================================

使用JSON的示例代码:

实体类:

package bean;public class Stock {private String code;private String name;private int price;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}}

测试代码:

package json;import java.util.ArrayList;
import java.util.List;import bean.Stock;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;public class JsonTest {/*** 将java对象转换为json字符串(符合json语法的字符串)*/public static void test1(){Stock s = new Stock();s.setCode("60087");s.setName("中国嘉陵");s.setPrice(10);//使用json-lib提供的工具来转换JSONObject jsonObj = JSONObject.fromObject(s);String jsonStr = jsonObj.toString();System.out.println(jsonStr);}/*** 多个对象组成的数组或者集合转换为字符串*/public static void test2(){List<Stock> list = new ArrayList<Stock>();for(int i=0;i<3;i++){Stock s = new Stock();s.setCode("60087" + i);s.setName("中国嘉陵" + i);s.setPrice(10 + i);list.add(s);}//fromObject()方法可以传入集合或者传入数组JSONArray jsonArr = JSONArray.fromObject(list);String jsonStr = jsonArr.toString();System.out.println(jsonStr);}public static void main(String[] args) {test1();test2();}
}
<!DOCTYPE HTML>
<html><head><meta charset="utf-8" /><script type="text/javascript">//使用json语法表示一个对象function f1(){var obj = {"code":"600877","name":"中国嘉陵"};alert(obj.code+"\n"+obj.name);}function f2(){var obj = {"name":"Sally","address":{"city":"北京","street":"长安街","room":1008}};alert(obj.address.street);}//使用json语法表示对象组成的数组function f3(){var arr = [{"code":"600877","name":"中国嘉陵"},{"code":"600015","name":"山东高速"}]; alert(arr[1].code+":"+arr[1].name);}/*将json字符串转换为javascript对象*/function f4(){var str = '{"name":"Tom","age":22}';//使用javascript内置的JSON对象提供的方法var obj = JSON.parse(str);alert(obj.name+":"+obj.age);}function f5(){var str = '[{"name":"Tom","age":22},'+'{"name":"Eric","age":25}]';var arr = JSON.parse(str);//此处返回数组alert(arr[1].name);}</script></head><body style="font-size:30px;"><a href="javascript:f1();">ClickMe</a><a href="javascript:f2();">ClickMe</a><a href="javascript:f3();">ClickMe</a><a href="javascript:f4();">ClickMe</a><a href="javascript:f5();">ClickMe</a></body>
</html>

 

相关文章: