Bu bölümde CsvDataSourceServlet
tanıtılmaktadır. CsvDataSourceServlet
, harici veri deposu olarak CSV dosyası kullanan bir örnek uygulamadır. Bu bölümde, CsvDataSourceServlet
öğesini çalıştırma ve test etme hakkında adım adım talimatlar da verilmiştir.
Not: Bu bölüme başlamadan önce Veri Kaynaklarını Kullanmaya Başlama bölümünü tamamlamanız gerekir.
Karşınızda CsvDataSourceServlet
CsvDataSourceServlet
sınıfı examples
paketinde yer alıyor. Bu sınıf, harici veri deposu olarak CSV dosyası kullanan bir örnek uygulama sağlar. CsvDataSourceServlet
, DataSourceServlet
değerini devralır, generateDataTable()
özelliğini uygular ve bir servlet kapsayıcısında çalıştırılmalıdır.
Aşağıda, CsvDataSourceServlet
snippet'i verilmiştir. generateDataTable
işlevi, verileri kitaplıkta gösterir. Bu işlev, veri tablosu açıklaması oluşturur, veri tablosu sütunlarını tanımlar ve veri tablosunu bir CSV dosyasından elde edilen verilerle doldurur. CSV dosyası, istenen görselleştirmenin sorgusunda belirtilen bir URL'den okunur. Kitaplık, veri tablosunu sorgu görselleştirmesine döndürmek için gereken diğer tüm işlemleri gerçekleştirir.
/** * A demo servlet for serving a simple, constant data table. * This servlet extends DataSourceServlet, but does not override the default * empty implementation of method getCapabilities(). This servlet therefore ignores the * user query (as passed in the 'tq' url parameter), leaving the * query engine to apply it to the data table created here. * * @author Nimrod T. */ public class CsvDataSourceServlet extends DataSourceServlet { /** * Log. */ private static final Log log = LogFactory.getLog(CsvDataSourceServlet.class.getName()); /** * The name of the parameter that contains the url of the CSV to load. */ private static final String URL_PARAM_NAME = "url"; /** * Generates the data table. * This servlet assumes a special parameter that contains the CSV URL from which to load * the data. */ @Override public DataTable generateDataTable(Query query, HttpServletRequest request) throws DataSourceException { String url = request.getParameter(URL_PARAM_NAME); if (StringUtils.isEmpty(url)) { log.error("url parameter not provided."); throw new DataSourceException(ReasonType.INVALID_REQUEST, "url parameter not provided"); } Reader reader; try { reader = new BufferedReader(new InputStreamReader(new URL(url).openStream())); } catch (MalformedURLException e) { log.error("url is malformed: " + url); throw new DataSourceException(ReasonType.INVALID_REQUEST, "url is malformed: " + url); } catch (IOException e) { log.error("Couldn't read from url: " + url, e); throw new DataSourceException(ReasonType.INVALID_REQUEST, "Couldn't read from url: " + url); } DataTable dataTable = null; ULocale requestLocale = DataSourceHelper.getLocaleFromRequest(request); try { // Note: We assume that all the columns in the CSV file are text columns. In cases where the // column types are known in advance, this behavior can be overridden by passing a list of // ColumnDescription objects specifying the column types. See CsvDataSourceHelper.read() for // more details. dataTable = CsvDataSourceHelper.read(reader, null, true, requestLocale); } catch (IOException e) { log.error("Couldn't read from url: " + url, e); throw new DataSourceException(ReasonType.INVALID_REQUEST, "Couldn't read from url: " + url); } return dataTable; } }
CsvDataSourceServlet
çalıştırılıp test ediliyor
Bu bölümde, CsvDataSourceServlet
'nun çalıştırılması ve test edilmesiyle ilgili talimatlar verilmiştir.
CsvDataSourceServlet
oyununu çalıştırmak ve test etmek için bir CSV dosyası oluşturun, web uygulamanızı güncelleyin ve aşağıdaki bölümlerde açıklandığı gibi, veri kaynağını sorgulayan bir görselleştirme oluşturun:
- CSV Dosyası Oluşturma
- Apache Tomcat'teki Web Uygulamanızı Güncelleme
- Verileri Görüntülemek İçin Görselleştirme Kullanma
CSV Dosyası Oluşturma
csv_example.csv
dosyası <data_source_library_install>/examples/src/html
dizininde sağlanır.
Aşağıdaki değerleri içerir:
Employee,Manager Roger,John Robert,John Jane,Roger Jack,Jane Bob,Jane
Bu dosyayı, Başlarken bölümünde oluşturduğunuz <tomcat_home>/webapps/myWebApp
dizinine kopyalayın.
Apache Tomcat'ta Web Uygulamanızı Güncelleme
Apache Tomcat'te web uygulamanızı güncellemek için aşağıdaki talimatları uygulayın veya uyarlayın. Bu talimatlar bir Windows sisteminde Apache Tomcat'e özeldir:
- Daha önce
WEB-INF
dizinine kopyaladığınızweb.xml
dosyası, bu örnek için gereken tanımı ve eşlemeyi zaten içeriyor. Bunu tanımlayan satırlar:
<servlet> <servlet-name>CSV Example</servlet-name> <description> CsvDataSourceServlet </description> <servlet-class>CsvDataSourceServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CSV Example</servlet-name> <url-pattern>/csv</url-pattern> </servlet-mapping>
- Tomcat'i başlatın veya zaten çalışıyorsa Tomcat'i yeniden başlatın.
- Şu bağlantıyı tıklayın:
http://localhost:8080/myWebApp/csv?url=http://localhost:8080/myWebApp/csv_example.csv
Ekranın genişliğine bağlı olarak ekranda 6-7 satırlık metinler gösterilir.
Metingoogle.visualization.Query.setResponse
ile başlar ve{c:[{v:'Bob'},{v:'Jane'}]}]}});
ile biter. Bu, örnek CSV veri kaynağının görselleştirmeye gönderdiği yanıttır.
Verileri Görüntülemek için Görselleştirmeyi Kullanma
<data_source_library_install>/examples/src/html
dizinindeki all_examples.html
dosyası, verilerin görselleştirmesini görüntülemek için kullanılabilir.
all_examples.html
dosyasının kaynağını görüntülerseniz dosyada üç görselleştirme olduğunu görürsünüz. Aşağıdaki snippet'ler bu görselleştirmelerin spesifikasyonunu yeniden oluşturmuştur.
- Aşağıdaki satır, bu bölümde açıklanan
csv
örneğini belirtir:
query = new google.visualization.Query('csv?url=http://localhost:8080/myWebApp/csv_example.csv');
Aşağıdaki satır, kuruluş şeması görselleştirmesini belirtir:var chart = new google.visualization.OrgChart(document.getElementById('csv_div'));
- Aşağıdaki satır, Başlarken bölümünde yer alan
simpleexample
öğesini belirtir:
var query = new google.visualization.Query('simpleexample?tq=select name,population');
Aşağıdaki satır, bir pasta grafik görselleştirmesini belirtir:var chart = new google.visualization.PieChart(document.getElementById('simple_div'));
- Aşağıdaki satır, Yetenekleri Tanımlama ve Etkinlik Akışı bölümünde açıklanan
advanced
örneğini belirtir:
query = new google.visualization.Query('advanced?tableId=planets&tq=select planet,mass');
Aşağıdaki satır bir çubuk grafik görselleştirmesini belirtir:var chart = new google.visualization.BarChart(document.getElementById('advanced_div'));
Bir grafiğin nasıl belirtileceği ve sorgu dilini nasıl kullanacağınız hakkında daha fazla bilgi için Grafik Araçlarını Kullanmaya Giriş ve Sorgu Dili Referansı bölümlerine bakın.
CsvDataSourceServlet
tarafından sunulan verilerin görselleştirmesini görüntülemek için aşağıdaki talimatları uygulayın veya uyarlayın:
all_examples.html
dosyasını<data_source_library_install>/examples/src/html
dizininden<tomcat_home>/webapps/myWebApp/
dizinine kopyalayın.- Şu bağlantıyı tıklayın: http://localhost:8080/myWebApp/all_examples.html. Aşağıdaki görselleştirmeyi görmeniz gerekir.
Gelişmiş Veri Kaynağı örneği, Yetenekleri Tanımlama ve Etkinliklerin Akışı bölümünde açıklanmıştır.
Sonraki Adımlar
Bir sonraki örnek, Yetenekleri Tanımlama ve Etkinliklerin Akışı bölümünde açıklanmıştır. Alternatif olarak, aşağıdaki bağlantıları da keşfedebilirsiniz:
- Kitaplık tarafından en sık kullanılan sınıflara giriş için Anahtar Sınıflar sayfasını inceleyin.
- Veri kaynağının
DataSourceServlet
devralması yerine, başka bir sınıftan devralmasını sağlayabilirsiniz. Daha fazla bilgi için Kendi Hizmet Cihazınızı Kullanma bölümünü inceleyin. - Bir uygulamadan veri kaynağına parametre iletme hakkında bilgi edinmek için Parametreleri
DataTableGenerator.generateDataTable
öğesine iletme başlıklı makaleye bakın.