SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Javaで軽快に使える「軽量フレームワーク」特集

Javaで軽快に使える「軽量フレームワーク」特集
~小さなライブラリ1つで動くStripes Framework(1)

第17回

  • このエントリーをはてなブックマークに追加

 注目の軽量フレームワークをフットワーク軽く取り上げていく本連載。今回は、小さなライブラリ1つで動く「Stripes Framework」を紹介します。

  • このエントリーをはてなブックマークに追加

はじめに

 この連載も、回を追うに従い取り上げるフレームワークも大掛かりなものとなり、「どこが軽量だ?」とお叱りを頂戴することも多くなってしまいました。しかし今回は久々に、自信を持って「軽量です!」とオススメできるものです。

 「Stripes Framework」(以下、Stripes)は、Tim Fennellが中心となり開発が行われているフレームワークです。昨今のJavaフレームワークというと、圧縮ファイルを展開すると無数のライブラリファイルが並び「これ、全部入れないといけないのか?」とげんなりしてしまうことが多くなってしまいました。しかしこのStripesは、たった1つのJarだけで構成されている、非常に小型軽量なフレームワークです。あまり知られていないようですが、実は1.0がリリースされたのは5年以上も前という、意外と歴史のあるフレームワークなのです。

対象読者

  • Javaで手ごろなフレームワークを探している技術者。
  • 最近のフレームワークをごくざっと理解しておきたい方。
  • Web開発の手法がどうも気に入らない、と常々考えているJavaプログラマ。

Stripesの入手とインストール

 Stripesは、現在Stripesの公式サイトにて配布されています。本稿執筆の時点で、1.5.3が最新版としてアップロードされています。ここでは、このバージョンを使って説明を行います。

 Stripesは圧縮ファイルとして配布されています。ダウンロードした「stripes-1.5.3.zip」というファイルを展開すると、その中に「lib」フォルダが作成され、そこにいくつかのjarファイルが作成されていることが分かります。これらが、Stripesのプログラムです。ここにはいくつかのファイルが用意されていますが、実を言えばStripesを動かすのに必要なのは「stripts.jar」ファイルただ1つだけなのです。

 では、実際に簡単なWebアプリケーションを作成してみましょう。手作業でファイルやフォルダを作成してもよいですが、ここではEclipse for Java EE Developersを使って作成していくことにします(なお、使用するEclipseはPleiadesで日本語化したものを前提としています)。

 まず、新しいプロジェクトを作成しましょう。Eclipseでは、JSP/サーブレットによるWebアプリケーションは「動的Webプロジェクト」として作成します。ここでは「stripes_app」という名前で作成しておくことにしましょう。また動的Webモジュールバージョンは「2.5」にしておきます。構成は、それぞれの環境で用意してあるサーブレットコンテナの構成をそのまま使ってかまいません(本稿では、Tomcat 6.0を使っています)。

「stripes_app」というプロジェクト名で動的Webプロジェクトを作成する
「stripes_app」というプロジェクト名で動的Webプロジェクトを作成する

 動的Webプロジェクトを作成すると、プロジェクトには基本的なファイルやフォルダが用意されます。Webアプリケーションのディレクトリ「WebContent」内には、「WEB-INF」フォルダやweb.xmlファイルがあらかじめ用意されています。このWEB-INF内の「lib」フォルダ(なければ作成してください)内に、先ほどの「stripes.jar」をコピーしてください。そしてweb.xmlを開き、<web-app>内に次のように追記します。

<filter>
  <display-name>Stripes Filter</display-name>
  <filter-name>StripesFilter</filter-name>
  <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class>
  <init-param>
    <param-name>ActionResolver.Packages</param-name>
    <param-value>jp.codezine</param-value>
  </init-param>
  <init-param>
    <param-name>LocalePicker.Locales</param-name>
    <param-value>en_US:UTF-8,ja:UTF-8</param-value>
  </init-param>
</filter>

<filter-mapping>
  <filter-name>StripesFilter</filter-name>
  <url-pattern>*.jsp</url-pattern>
  <dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
  <filter-name>StripesFilter</filter-name>
  <servlet-name>StripesDispatcher</servlet-name>
  <dispatcher>REQUEST</dispatcher>
</filter-mapping>

<servlet>
  <servlet-name>StripesDispatcher</servlet-name>
  <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>StripesDispatcher</servlet-name>
  <url-pattern>*.action</url-pattern>
</servlet-mapping>

 Stripesでは、サーブレットとフィルタを組み合わせて基本的な仕組みを構築しています。net.sourceforge.stripes.controllerパッケージの「StripesFilter」というフィルタにより、ここではJSPファイルへのアクセス(および、次のStripesDispatcherへのアクセス)時にすべてフィルタが適用されるようにしています。これにより、指定のJSPファイルにアクセスすると、Stripesのシステムが先に呼び出されるようになります。

 また、net.sourceforge.stripes.controllerパッケージの「DispatcherServlet」サーブレットは、「*.action」というURLへのアクセス時に呼び出されるように設定されています。これは、Stripesでフォームを送信するなどさまざまな「アクション」が発生された際の処理を管理するものです。この2つのクラスが中心となって、Stripesは動いているのです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
JSPファイルを作ってみる

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Javaで軽快に使える「軽量フレームワーク」特集連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5249 2010/07/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング