Ajax(5):利用json做数据交换
来源:互联网 发布:太平洋网站软件下载 编辑:程序博客网 时间:2024/04/30 09:13
工程目录:
show.jsp :
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%><html><head><title>Insert title here</title><script type="text/javascript" src="js/prototype1.6.js"></script><script>function getXmlHttpRequest(){var xhr=null;if((typeof XMLHttpRequest)!='undefined'){xhr=new XMLHttpRequest();}else{xhr=new ActiveXObject("Microsoft.XMLHttp");}return xhr;}var intervalId;function show(){intervalId=setInterval(getShareInfo,1000);}function stopShow(){clearInterval(intervalId);}function getShareInfo(){var xhr=getXmlHttpRequest();xhr.onreadystatechange=function(){if(xhr.readyState==4){var jsonStr=xhr.responseText;var share=jsonStr.evalJSON();$('d1').innerHTML="股票名称:"+share.shareName+"<br>股票价格:"+share.sharePrice+"<br>时间:"+share.date;}}xhr.open("post","show",true);xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xhr.send(null);}</script></head><body onload="show();"><div style="width:250px;height:70px;border:1px solid black" id="d1"></div><input type="button" value="停止报价" onclick="stopShow();"></body></html>Share.java :
public class Share {private String shareName;private double sharePrice;private Date date;public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public String getShareName() {return shareName;}public void setShareName(String shareName) {this.shareName = shareName;}public double getSharePrice() {return sharePrice;}public void setSharePrice(double sharePrice) {this.sharePrice = sharePrice;}public Share() {super();}public Share(String shareName, double sharePrice, Date date) {super();this.shareName = shareName;this.sharePrice = sharePrice;this.date = date;}}DateProcessor.java :
public class DateProcessor implements JsonValueProcessor {private String pattern="yyyy-MM-dd HH:mm:ss";public void setPattern(String pattern) {this.pattern = pattern;}@Overridepublic Object processArrayValue(Object arg0, JsonConfig arg1) {Date date=(Date)arg0;SimpleDateFormat sdf=new SimpleDateFormat(pattern);return sdf.format(date);}@Overridepublic Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {Date date=(Date)arg1;SimpleDateFormat sdf=new SimpleDateFormat(pattern);return sdf.format(date);}}ShowServlet.java :
public class ShowServlet extends HttpServlet {public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {Random random=new Random();String shareName="share"+random.nextInt(99999);double sharePrice=Math.ceil(random.nextDouble()*10);Share share=new Share(shareName,sharePrice,new Date());DateProcessor processor=new DateProcessor();JsonConfig config=new JsonConfig();config.registerJsonValueProcessor(Date.class,processor);JSONObject json=JSONObject.fromObject(share,config);response.setContentType("text/html;charset=UTF-8");PrintWriter pw=response.getWriter();pw.println(json.toString());pw.close();}}为ShowServlet映射的url为show。
数据转换涉及两个过程:
① 服务器端将Java对象Share转换为符合json语法的字符串,并发送给客户端。
② 浏览器接收到符合json语法的字符串,利用evalJSON( )函数将字符串转换为JavaScript对象,并及时更新页面数据。
当然,上面的程序在实际中无意义,它仅仅为了演示json是如何做数据交换的。
- Ajax(5):利用json做数据交换
- struts2的验证码及利用jquery发送ajax请求并利用json做数据交换
- 利用JSON插件进行数据交换格式
- 如何利用php+ajax动态交换数据
- ajax+json 做数据异步交互
- 利用json数据做父子二级菜单
- ajax与servlet利用json传送数据
- javascript 利用ajax读取json数据
- Java Web利用ajax提交JSON数据
- Ajax------------- spring+dwr整合--json作为数据交换
- JSON 在Ajax数据交换中的简单运用
- ajax学习——理想的数据交换语言JSON
- AJAX Unit02: JSON 、 使用JSON实现数据交换 、 jQuery对AJAX的支持
- JSON数据交换格式
- JSON数据交换格式
- JSON 轻量级数据交换
- JSON 数据交换
- jquery-ajax数据交换
- Registering Your Controls in Web.config
- 语音信号处理之(二)基音周期估计(Pitch Detection)
- open-embeded及bitbake
- linux 访问目录及文件
- 点击按钮 换一批 效果
- Ajax(5):利用json做数据交换
- PDF — — (二)
- iso七层
- Oracle 开发人员分析SQL 执行计划的关注点
- Python枚举指定文件夹下的特定文件
- Ubuntu 12.04 安装出现的问题
- 内存管理 - 11.1 页
- 数据结构--堆排序
- d