GWT JSON用法

本文概述

  • 创建Servlet
  • 包括服务器端代码
  • 检索JSON数据
JSON(JavaScript对象表示法)是一种与语言无关的数据格式。它与XML类似, 因为XML使用标签JSON使用JavaScript的对象-语言表示法。
实作
创建Stock Exchange的JSON数据源示例:
我们已经实现了股票价格类别并刷新监视列表方法为:
/** * Generate random stock prices. */ private void refreshWatchList() { final double MAX_PRICE = 100.0; // $100.00 final double MAX_PRICE_CHANGE = 0.02; // +/- 2%StockPrice[] prices = new StockPrice[stocks.size()]; for (int i = 0; i < stocks.size(); i++) { double price = Random.nextDouble() * MAX_PRICE; double change = price * MAX_PRICE_CHANGE * (Random.nextDouble() * 2.0 - 1.0); prices[i] = new StockPrice(stocks.get(i), price, change); }updateTable(prices); }

创建Servlet 在此, 我们为JSON格式的股票报价创建一个servlet文件。以下是创建servlet的步骤:
1)创建一个Servlet
  1. 在程序包资源管理器中, 选择客户端程序包:com.google.gwt.sample.stockwatcher.client
  2. 在Eclipse中, 打开“新建Java类”向导(“文件”> “新建”> “类”)。
GWT JSON用法

文章图片
2)在Package下, 将名称从.client更改为.server
  1. 在名称下, 输入JsonStockData。
  2. Eclipse将为服务器端代码创建一个包, 并为JsonStockData类创建一个存根。
GWT JSON用法

文章图片
3)用以下代码替换存根:
package com.google.gwt.sample.stockexchange.server; 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 JsonStockData extends HttpServlet {private static final double MAX_PRICE = 100.0; // $100.00 private static final double MAX_PRICE_CHANGE = 0.02; // +/- 2%@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Random rnd = new Random(); PrintWriter out = resp.getWriter(); out.println('['); String[] stockSymbols = req.getParameter("q").split(" "); boolean firstSymbol = true; for (String stockSymbol : stockSymbols) {double price = rnd.nextDouble() * MAX_PRICE; double change = price * MAX_PRICE_CHANGE * (rnd.nextDouble() * 2f - 1f); if (firstSymbol) { firstSymbol = false; } else { out.println(", "); } out.println("{"); out.print("\"symbol\": \""); out.print(stockSymbol); out.println("\", "); out.print("\"price\": "); out.print(price); out.println(', '); out.print("\"change\": "); out.println(change); out.println("}"); } out.println(']'); out.flush(); }}

包括服务器端代码 GWT由内部构建servlet容器Jetty组成, 该容器托管以JSON格式生成库存数据的servlet。在GWT中包含服务器端代码的步骤是:
  1. 在StockWatcher / war / WEB-INF / web.xml下编辑以下代码
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> < web-app> < !-- Default page to serve --> < welcome-file-list> < welcome-file> StockExchange.html< /welcome-file> < /welcome-file-list> < !-- Servlets --> < servlet> < servlet-name> jsonStockData< /servlet-name> < servlet-class> com.google.gwt.sample.stockexchange.server.JsonStockData< /servlet-class> < /servlet> < servlet-mapping> < servlet-name> jsonStockData< /servlet-name> < url-pattern> /stockexchange/stockPrices< /url-pattern> < /servlet-mapping> < /web-app>

检索JSON数据 【GWT JSON用法】在开发模式下调试StockExchange。
  1. 此时, 库存数据仍来自客户端代码。
测试股票报价服务器。
  1. 确保开发模式代码服务器正在运行, 并将股票代码传递到Servlet URL http:// localhost:8888 / stockexchange / stockPrices?q = ABC + DEF
servlet生成以JSON格式编码的模拟股票数据数组。
GWT JSON用法

文章图片

    推荐阅读