連載
» 2011年01月11日 00時00分 公開

Google App EngineとSlim3で始める携帯Web入門クラウドとフレームワークで超簡単ケータイ開発(1)(3/3 ページ)

[森俊夫,@IT]
前のページへ 1|2|3       

まずは、絵文字でHello World!

 Eclipseで「build.xml」を選択し、[Run](実行)→[Ant Build](Ant ビルド。3番目の項目)を選択します。以下のダイアログが表示されるので、デフォルト値の「gen-controller」のまま、[Run](実行)ボタンを押下します。

図1 [Edit Configuration]ダイアログ 図1 [Edit Configuration]ダイアログ

 ダイアログボックスに「/twitter/」と入力し、[OK]を押下します。

図2 [Ant Input Request]ダイアログ 図2 [Ant Input Request]ダイアログ

 すると、コントローラクラスファイルが2つとJSPファイルが1つできます。

  • com.hayato.gpstweet.controller.twitter.IndexController
  • com.hayato.gpstweet.controller.twitter.IndexControllerTest
  • war/tweet/index.jsp

 作成されたJSPファイル「war/twitter/index.jsp」を編集します。

<%@page pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@taglib prefix="f" uri="http://www.slim3.org/functions"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>twitter Index</title>
</head>
<body>
<p>Hello twitter Index !!! &#xE63E;</p>
</body>
</html>
index.jsp

 「&#xE63E;」は、太陽の絵文字をUnicodeのテキスト入力で指定しています。

 「http://localhost:8888/twitter/」にアクセスし、Webブラウザで確認します。FireMobileSimulatorを有効にしていない場合、絵文字は表示されません。

図3 絵文字が出ない…… 図3 絵文字が出ない……

 Firefoxのメニューから[ツール]→[FireMobileSimulator]→[DC P903i]を選択し、ドコモの携帯電話をシミュレートします。

 Webブラウザを再読み込みすると、以下のように絵文字が表示されます。

図4 絵文字が出た! 図4 絵文字が出た!

 GAE上にデプロイすれば、ケータイからアクセスしても同じように表示されます。

これは便利! Slim3の主な基本機能

 ここで、Slim3の基本機能を押さえておきましょう。

URLパスとコントローラとJSPの関係

 Slim3は、リクエストURLパスをコントローラに自動的にマッピングします。以下の関係で、呼び出されるコントローラが決定します。

リクエストURLパス コントローラ
/ <slim3.rootPackage>.controller.IndexController
/twitter <slim3.rootPackage>.controller.TwitterController
/twitter/ <slim3.rootPackage>.controller.twitter.IndexController
/twitter/tweet <slim3.rootPackage>.controller.twitter.TweetController

 <slim3.rootPackage>は、web.xmlで指定します。今回の場合、「com.hayato.gpstweet」となります。

 コントローラから呼び出されるJSPは、コントローラのソースコードで指定します。

画面遷移

 コントローラクラスは、org.slim3.controller.Controllerクラスを継承し、run()を必ず実装します。コントローラを呼び出すと、このrun()を実行します。run()の戻り値は、org.slim3.controller.Navigationクラスとなり、そこでJSPを指定します。

 JSPをレンダリングする場合は、以下のようにします。run()の処理が終了後、index.jspが呼び出されます。

return forward("index.jsp");

 別のページへリダイレクトする場合(コントローラ指定)は以下のようにします。IndexControllerにリダイレクトされます。

return redirect("index");

 別のページへリダイレクトする場合(URL指定)は以下のようにします。「http://www.atmarkit.co.jp/」にリダイレクトされます。

return redirect("//www.atmarkit.co.jp/");

リクエストとセッションの操作

 HttpServletRequestやHttpSessionにアクセスする方法として、org.slim3.controller.ControllerクラスにrequestScope()とsessionScope()があります。

 キーを指定して、値を取得する場合は、requestScopeを使います。

String tokenKey = requestScope("token_key");

 また、以下のようにリクエストから値を取得する際に型変換を行う便利なメソッドがあります。

asString()、asShort()、asInteger()、asLong()、asFloat()、asDouble()、asBoolean()、asDate()

 キーを指定して、値を保存する場合は、sessionScopeを使います。

いつでもどこでもつぶやける機能を追加

 いかがでしたでしょうか。クラウドやフレームワークを使うことでケータイ向けWebアプリを超簡単に作れることが理解できたかと思います。次回以降、本稿で作成したサンプルに機能を足していきます。完成版のサンプルコードを最終回でダウンロードできるようにしますので、まずは自身で作ってみてください。

 ケータイは、いつでもどこでも触れるため、何げなくつぶやくためのデバイスとして最適です。そこで次回は、Java言語のライブラリ「Twitter4j」からTwitterのAPIを操作する方法を解説します。どうぞお楽しみに。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。