本格派エンジニアの工具箱

第9回 JavaによるWebアプリケーション開発のための軽量フレームワーク「Apache Click」

この記事を読むのに必要な時間:およそ 3 分

Apache Clickとは

Apache Clickは,Java EEを用いたWebアプリケーションを素早く簡潔に開発できるようにする軽量フレームワークです。Apache Clickでは,JSP(JavaServer Pages)やMVC(Model-View-Control)フレームワークを用いることなく,HTMLテンプレートと POJO(Plain Old Java Object: 複雑な依存性を排除した,昔ながらのシンプルなJavaオブジェクトを意味する造語)にるシンプルな構成でWebアプリケーションを作成できます。そのため,Java EEの複雑な手続きを意識することなく手軽に利用できる点が大きな特徴となっています。

ダウンロードと利用方法

Apache Clickは,その名の通りApache Software Foundationによって開発されており,Apache License, Version 2.0に基づいてオープンソースで公開されています。ダウンロードはこのページより行うことができます。本稿執筆時点での最新版はバージョン2.3.0であり,配布ファイル名は「click-2.3.0.zip」となっています。

これをダウンロードして任意のフォルダに展開してください。Apache Clickによる通常のWebアプリケーション開発には,distフォルダ内にある「click-2.3.0.jar」「click-extra-2.3.0.jar」を使用します。この2つのファイルを,Webアプリケーション・プロジェクトのWEB-INF/libフォルダに追加することでApache Clickが利用できるようになります。

NetBeansを用いた開発の場合には,プロジェクトの「ライブラリ」フォルダを右クリックして[JAR/フォルダを追加]を選択し,上記の2ファイルを追加します。Eclipseの場合には「WebContent/WEB-INF/lib」フォルにダに2つのファイルをコピーします。それぞれのIDEにおけるWebアプリケーション開発の方法については,本連載の第3回および第7回の記事を参照してください。

なお,Apache ClickにはClickIDEというEclipseプラグイン形式の開発環境も用意されています。Click IDEでは各種ウィザードや設定ファイルエディタ,テンプレートエディタなどの機能が提供されます。ただし,付属するApache Clickのバージョンが2.1.0で少々古いため,今回は使用しません。本稿ではNetBeans + GlassFish Serverという環境を例にして解説を進めます。

Apache Clickを用いたWebアプリケーションの開発

それでは,実際に簡単なWebアプリケーションを作ってみましょう。まず,web.xmlは次のように記述します。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
            http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
                
    <servlet>
        <servlet-name>ClickServlet</servlet-name>
        <servlet-class>org.apache.click.ClickServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ClickServlet</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
    
    <welcome-file-list>
        <welcome-file>first-page.htm</welcome-file>
    </welcome-file-list>

</web-app>

Apache ClickはServletフィルタを利用してWebページに対する要求に割り込みをかけ,Javaプログラムの実行結果をページに挿入したり,テンプレートを適用したりといった処理を行う仕組みになっています。上記の設定の場合,.htmの拡張子のページに対する要求に対してorg.apache.click.ClickServletというサーブレットが実行されることになります。このClickServletが,Apache Clickによる各種処理を実行するためのサーブレットになっています。

なお,この設定ではwelcome-fileに「first-page.htm」を設定してあるので,ファイル名を省略してアクセスした場合にはfirst-page.htmが呼ばれるようになっています。

続いて,first-page.htm内で利用するためのJavaクラスを作成します。Webページの表示に関するクラスはorg.apache.click.Page.Pageクラスを継承して作成します。ここでは,以下のように「jp.gihyo.toolbox.click」というパッケージに「FirstPage」という名前のクラスを作成しました。

FirstPage.java

package jp.gihyo.toolbox.click;

import java.util.Date;
import org.apache.click.Page;

public class FirstPage extends Page {
    protected String message = "これはApache Clickのサンプルです。";
    protected Date time = new Date();

    public FirstPage() {
        addModel("msg", message);
        addModel("time", time);
    }
}

Pageを継承したクラスは,Webページの要求に対するサーバ側の動作を決めるためのクラスになります。addModel()はPageクラスに用意されたメソッドのひとつで,サーバ側のJavaオブジェクトとWebページ内の変数とを関連付けるためのものです。第1引数はWebページ内で使用する変数名をStringで,第2引数には対応するJavaオブジェクトをObjectで渡します。上記の例では,Webページ内で「$msg」と記述した部分がmessage変数の値に,⁠$time」と記述した部分がtime変数の値に置き換えられます。

著者プロフィール

杉山貴章(すぎやまたかあき)

ONGS Inc.所属のプログラマ兼テクニカルライター。雑誌,書籍,Webメディアで多数の著作をもつ。

著書

コメント

コメントの記入