注目の軽量フレームワークをフットワーク軽く取り上げていく本連載。連載第12回目となる今回は、「Vaadin」の第3回目として、データの扱いを中心に紹介していきます。
はじめに
JavaScriptと連携した開発では、クライアントとサーバ間のデータのやり取りもAjaxを使い、ページ遷移することなく行われます。Vaadinではさらに一歩進められ、Javaのアプリケーションの中でやり取りする感覚でデータを扱うことができます。
もちろん、従来から行われているような「サーブレットにアクセスしてデータを取ってくる」というような方法も可能です。しかしそれよりも、データをモデルとして用意し、オブジェクティブに扱う方法がよりVaadinらしいスタイルと言えるでしょう。
対象読者
- Javaで手ごろなフレームワークを探している技術者
- 最近のフレームワークをごくざっと理解しておきたい方
- Web開発の手法がどうも気に入らない、と常々考えているJavaプログラマ
外部からのデータ取得
まずは、コンテナへの表示を外部から取得してみましょう。コンテナを多用するようになってくると、そこに表示する内容をどのように取得するかも重要な課題となってきます。特に、多量のデータを取得し表示するような場合、外部から必要な情報を取得して表示する仕組みが必要となります。
誰もが考えるのは「特定のアドレスにアクセスして必要なデータをテキストとして取得し表示する」という方法でしょう。実は、Vaadinには、そのための専用の便利な機能はありません。ストリームを使って必要な情報を取り出して利用することになります。
実際に、簡単なサンプルを作ってみましょう。まず、テキストを出力する簡単なサーブレットを用意してみます。ここでは「DataServlet」という名前で次のように作成をしておきます。
package com.example.myvaadin;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DataServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public DataServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("sjis");
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.write("<h2>外部からのデータ</h2><p>これは、外部から取得したテキストです。</p>");
}
}
ここでは、doGetでテキストを出力するシンプルな処理を用意してあります。これはweb.xmlで次のように登録します。
<servlet> <description></description> <display-name>DataServlet</display-name> <servlet-name>DataServlet</servlet-name> <servlet-class>com.example.myvaadin.DataServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DataServlet</servlet-name> <url-pattern>/data</url-pattern> </servlet-mapping>
この記事は参考になりましたか?
- この記事の著者
-
掌田 津耶乃(ショウダ ツヤノ)
三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
