本節介紹 SimpleExampleServlet
,這是程式庫提供的資料來源最簡單的方法實作。本節也會提供如何執行及測試 SimpleExampleServlet
的逐步操作說明。
隆重推出 SimpleExampleServlet
SimpleExampleServlet
類別位於 examples
套件中。這個類別提供最簡單的資料來源實作範例。SimpleExampleServlet
繼承自 DataSourceServlet
、實作 generateDataTable()
,且必須在 bq 容器內執行。
下方提供 SimpleExampleServlet
的程式碼片段。generateDataTable
函式會將資料提供給程式庫。這個函式會建立資料表說明、定義資料表資料欄,並在資料中填入資料。程式庫會將資料資料表傳回至查詢視覺化所需的所有其他動作。
// This example extends DataSourceServlet public class SimpleExampleServlet extends DataSourceServlet { @Override public DataTable generateDataTable(Query query, HttpServletRequest request) { // Create a data table, DataTable data = new DataTable(); ArrayListcd = new ArrayList (); cd.add(new ColumnDescription("name", ValueType.TEXT, "Animal name")); cd.add(new ColumnDescription("link", ValueType.TEXT, "Link to wikipedia")); cd.add(new ColumnDescription("population", ValueType.NUMBER, "Population size")); cd.add(new ColumnDescription("vegeterian", ValueType.BOOLEAN, "Vegetarian?")); data.addColumns(cd); // Fill the data table. try { data.addRowFromValues("Aye-aye", "http://en.wikipedia.org/wiki/Aye-aye", 100, true); data.addRowFromValues("Sloth", "http://en.wikipedia.org/wiki/Sloth", 300, true); data.addRowFromValues("Leopard", "http://en.wikipedia.org/wiki/Leopard", 50, false); data.addRowFromValues("Tiger", "http://en.wikipedia.org/wiki/Tiger", 80, false); } catch (TypeMismatchException e) { System.out.println("Invalid type!"); } return data; } }
執行及測試 SimpleExampleServlet
本節提供執行 SimpleExampleServlet
測試及測試的操作說明。
如果您尚未安裝,請參閱安裝一節,瞭解必備條件及下載和建構程式庫的操作說明。若您的系統沒有在 Jupyter 容器中運作 (如 Apache Tomcat) 的伺服器,請確認已安裝這些網路伺服器。本節的操作說明僅適用於 Windows 系統上的 Apache Tomcat。
如要執行並測試 SimpleExampleServlet
,請建立執行 SimpleExampleServlet
資料來源的網頁應用程式,然後執行範例網頁,以視覺化方式呈現從資料來源查詢的資料。相關說明如下:
在 Apache Tomcat 上建立網頁應用程式
請按照下列操作說明或調整,在 Apache Tomcat 上建立網頁應用程式。以下操作說明僅適用於 Windows 系統上的 Apache Tomcat:
- 前往已安裝 Tomcat 的目錄。並在這份文件中是以
<tomcat_home>
形式寫入。
- 前往
webapps
子目錄。
- 建立名為
myWebApp
的子目錄。
- 變更為您稍早建立的子目錄,並建立另一個名為
WEB-INF
的子目錄。
- 變更為
WEB-INF
子目錄並建立另一個名為lib
的子目錄。
完整路徑應為<tomcat_home>/webapps/myWebApp/WEB-INF/lib
。
- 將
web.xml
從<data_source_library_install>/examples/src/html
複製到WEB-INF
目錄。其中<data_source_library_install>
是您安裝資料來源程式庫的目錄。web.xml
中的以下這行程式碼定義並對應SimpleExampleServlet
:
<servlet> <servlet-name>My Servlet</servlet-name> <description>My servlet description.</description> <servlet-class>SimpleExampleServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>My Servlet</servlet-name> <url-pattern>/simpleexample</url-pattern> </servlet-mapping>
- 前往已安裝資料來源資料庫的目錄。這份文件的撰寫格式為
<data_source_library_install>
。
- 將所有依附元件套件複製到
<tomcat_home>/webapps/myWebApp/WEB-INF/lib
。除非您將套件放在其他目錄中,否則這些套件會安裝在<data_source_library_install>/lib
中。
- 如果您自行建構程式庫,請將
visualization-datasource-1.0.2.jar
和visualization-datasource-examples.jar
從<data_source_library_install>/build
複製到<tomcat_home>/webapps/myWebApp/WEB-INF/lib
。
如果您已將 ZIP 檔案解壓縮,請將visualization-datasource-1.0.2.jar
和visualization-datasource-examples.jar
從<data_source_library_install>
複製到<tomcat_home>/webapps/myWebApp/WEB-INF/lib
。
請注意,jar 檔案名稱可能會依最新版本號碼而有所不同。 - 啟動 Tomcat,或如果 Tomcat 已在執行中,請重新啟動。
- 請點選以下連結:
http://localhost:8080/myWebApp/simpleexample
畫面會根據螢幕寬度顯示 6 到 7 行文字。
文字開頭為google.visualization.Query.setResponse
結尾為/Tiger'},{v:80.0},{v:false}]}]}});
這是資料來源為查詢視覺化傳回的資料。
使用視覺化功能查看資料
<data_source_library_install>/examples/src/html
目錄中的 getting_started.html
檔案可用來查看資料圖表。從 getting_started.html
取得的以下指令列指定要使用的 Webhook。您可以在在 Apache Tomcat 上建立網頁應用程式的步驟 8 設定 Webhook 對應。
var query = new google.visualization.Query('simpleexample');
如要進一步瞭解如何指定視覺化並使用查詢語言,請參閱使用圖表和查詢語言參考資料。
請按照下列操作說明,或調整相關資料來源的視覺化呈現資料:
- 將
getting_started.html
檔案從<data_source_library_install>/examples/src/html
目錄
複製到<tomcat_home>/webapps/myWebApp/
目錄。
- 請點選下列連結 http://localhost:8080/myWebApp/get_begin.html,
您應該會看到:
這樣就大功告成了!您已設定第一個資料來源。
後續步驟
如需下一個範例,請參閱使用外部資料儲存庫一節。您也可以返回簡介,或探索下列連結:
- 如需程式庫最常用的類別介紹,請參閱主要類別。
- 如需實作自己事件流程和查詢功能的範例,請參閱定義功能和流程。
- 如果不想沿用
DataSourceServlet
,可以按照「使用自己的教學課程」一節的說明實作資料來源。例如,如果您繼承其他類別的 src,則可能無法沿用DataSourceServlet
。 - 如果您不想使用 bq,請參閱實作非 Webhook 資料來源。
- 如要瞭解如何將參數從資料來源傳遞至資料來源,請參閱將參數傳遞至
DataTableGenerator.generateDataTable
。