JAVA TIPS
JavaやExcel、Strutsを中心に、実務で使える設計・実装の要点を短く解説します。
-
初回実行時の低速化を解消する「jsp_precompile」パラメータを紹介します。「jsp_precompile」パラメータを利用すると、JSPを実行前にコンパイルし、初回呼び出し時の処理を高速化できます。
-
Strutsで別モジュールにアクセスする(SwitchAction)
Strutsの別モジュールにSwitchActionを使ってアクセスする方法を紹介します。
-
Strutsでリクエストをフォワードする(ForwardAction)
Strutsでは、<action>要素のforward属性を用いる方法、 組み込みのForwardActionを用いる方法で、アクションを介さずに直接ページへ飛ぶアクションマッピングを定義することができます。
-
Adapterパターンを使うと、コンポーネントの切り替えをできるだけ少ないコード量で実現できます。
-
オブジェクトや数値型の値の集合をソートするためのメソッドが、配列を扱うjava.util.Arraysのクラスメソッドsortとして用意されています。
-
特定ディレクトリ以下のファイル更新を自動的にチェックする機能を実装します。
-
Javaでは、java.util.HashtableまたはJDK 1.2より提供されたjava.util.HashMapによってハッシュテーブルを利用できます。
-
コンポーネント上を右クリックしてポップアップメニューを表示させる方法を紹介します。
-
java.util.Listに用意されているVector、ArrayList、LinkedListの3つのクラスの実装の違いを理解します。
-
Struts構成ファイルを分割した場合の注意点。
-
オープンソースのPDF生成ライブラリ「iText」の利用方法を説明します。
-
JSP 2.0からは「Functions(関数)」という機能を利用することで、式言語(${~})からJavaのpublic staticメソッド(静的メソッド)を呼び出すことが可能です。
-
テンプレートPDFを用意しておき、それにコンテンツを追記する方法を紹介します。
-
JSTLを活用した「マルチデバイス対応」のページ作成の方法を紹介します。
-
PCと携帯電話などのモバイル端末の両方に対応した「マルチデバイス対応」のページ作成の方法を紹介します。
-
XML Schemaを使って、XML文書の妥当性を検証する方法を紹介します。
-
JSTLのi18nタグライブラリを利用して、日付データを加工する方法を紹介します。
-
JFreeChartで生成したグラフにクリッカブル・マップを追加して、グラフの各エリアから個々の詳細ページにリンクできるようにします。
-
DTD(Document Type Definition:文書型宣言)を利用することで、XML文書の構造(登場可能なタグの種類、階層構造、登場順など)をあらかじめ専用の形式で定義することができます。
-
Jakarta TagLibsを利用して、クッキーの設定をスクリプトレスで実現する方法を紹介します。
-
JSTL(JSP Standard TagLibrary)のi18nタグライブラリを利用することで、定型的な数値加工のロジックをスクリプトレスで指定することができます。
-
JavaMailを使い、メール送信アプリケーションを作成する方法を紹介します。
-
ページの値を簡単に取得する方法として、JSP 2.0の式言語とJakarta Taglibsを紹介します。
-
PDF文書を生成するJavaのライブラリPDFLibを使ってPDF文書を生成する方法を紹介します。
-
RSS4jを使用して、RSSフィードを自サイトで利用する方法を紹介します。
-
ページごとに@taglibディレクティブを宣言することなく、JSTLを利用する方法を紹介します。
-
JSTL(JSP Standard TagLibrary)のi18n(Internationalization)タグライブラリに用意された<fmt:message>タグを利用して、スクリプティング要素を使わずに国際化対応のJSPページを作成する方法を紹介します。
-
ダイジェストは、データの一貫性のチェックや認証、暗号化に使用されます。java.security.MessageDigestを使用してダイジェストを生成する方法を解説します。
-
Strutsベースのアプリケーション環境を用意(AppFuse)
AppFuseを使用すれば、Antのコマンドを数回実行するだけで、Struts、Spring、Hibernate、MySQLといったさまざまなアーキテクチャが連携し合うサンプルアプリケーションをTomcatにデプロイすることができます。
-
JavaでOSのシステムプロパティを用いるためのjava.lang.SystemクラスのgetPropertyメソッドを理解すれば、OSに依存したプログラムを作成しないよう心がけることができます。
-
簡単さを指向して大幅に改良されたJ2SE 5.0の仕様の中から、簡略化されたfor文について紹介します。
-
「Axis TCPモニタ」を使えば、Webブラウザとサーバ間で送受信されるHTTPメッセージをモニタリングすることができます。
-
パネル上にいくつかのボタンを持ったGUIアプリケーションにおいて、キー入力を受け付けさせたくても、入力できなくなることがあります。この原因と対策について解説します。
-
Eclipse 3.0でアサーションを使用したコードをコンパイル可能にするには、EclipseのJavaコンパイラ設定を変更する必要があります。
-
JavaのコアAPIに含まれるjava.util.Mapインターフェイスは、キーと値とのマッピングを表すデータ構造のためのインターフェイスです。
-
Antでwarファイルを作成する際に使用するjarタスクとwarタスクについて説明します。
-
Javaで正規表現を活用する(java.util.regexパッケージ)
PerlやUNIXのgrepなどで欠かせない正規表現ですが、Javaでもこれを扱うためのパッケージjava.util.regexがJ2SE1.4からコアAPIに導入されました。
-
GoFのデザインパターンを使って、再帰的なデータ構造を効率よく処理する方法を紹介します。
-
Jakarta Commonsサブプロジェクトから公開されているFileUploadライブラリを利用することで、従来の煩雑なアップロード処理の大半が軽減されます。
-
MergeDocでEclipseのポップアップ表示を日本語化する
Javaソースと日本語APIをマージするMergeDocというツールを紹介します。MergeDocを実行することによって、ポップアップ表示されるAPIコメントを日本語化することが可能になります。
-
Eclipseがメジャーバージョンアップされ注目を集めています。本稿では、Windows版のEclipse 3.0をインストールし日本語化する方法を紹介します。
-
Strutsでプレゼンテーション部分にVelocityを使う
Strutsのプレゼンテーション部分を実装するには、JSPを用いるのが一般的ですが、JSPの代替案として利用されることの多い、Apache Jakartaのテンプレートエンジン「Velocity」をプレゼンテーション部分に利用するための手順を紹介します。
-
Jakarta DbUtilsを使うと、検索結果をJavaBeansで取得するだけでなく、従来のResultSetのように結果セットから特定のカラムのデータを取得することもできます。
-
DbUtilsで結果セットをJavaBeansにマッピングする
Jakarta DbUtilsを使うと、リレーショナルデータベースのマッピングを少ないコード記述で実現することができます。
-
SSLの導入が難しい場合、ダイジェスト認証が有効です。ダイジェスト認証では、認証時の通信が暗号化されるので、基本認証に比べて安全に認証を行うことができます。
-
struts-config.xmlを分割し、チーム開発において機能ごとにstruts-configを管理する方法を紹介します。
-
Collection Framework同士の相互変換を行う
型の異なるCollection同士、または型の異なるMap同士の変換と、MapをCollectionに変換する方法を紹介します。
-
Antでより高度なデプロイや配布を行うために必要なディレクトリやファイルに関するタスクを紹介します。
-
Struts 1.1から提供されるようになったプラグイン機能を利用することで、Struts本体に手を加えずに独自の機能を簡単に追加することができます。
-
アサーションは、プログラムのエラーを防ぐための1つの手法です。具体的には、ある条件をチェックし、条件が偽になったときにAssertionError例外を発生させる構文を使用します。
-
Antの<copy>や<delete>といったタスクは、ファイルの集合に対して処理を行うことができます。簡単なサンプルを基に、ビルドファイルの設定方法について解説します。
-
RSS4jを利用することで、複数のバージョンに対応したRSSフィードを簡単に配信することができ、また、開発者がRSSの構文を意識する必要がなくなります。
-
JFreeChartを利用すると、グラフの基となるデータセットを引き渡すだけで、棒グラフや円グラフ、バブルチャート、レーダチャート、株価チャートのようなさまざまなチャート図を、簡単に作成することができます。
-
JSPページの処理時間を計測するのに利用できるタグライブラリ「Benchmark」を使ってJSPページの処理時間を計測する方法を紹介します。
-
リクエストデータをJavaBeansにセット(Commons活用)
BeanUtilsは、JavaBeansを容易に扱えるようにするためのユーティリティです。アクセスしたいプロパティを文字列として指定可能でリフレクションを用いた場合よりもコードの記述性や見通しが良くなります。
-
Strutsでは、フレームワーク拡張のための仕組みが、豊富に用意されています。ここでは、ActionMappingクラスを独自に拡張する方法について見ていきましょう。
-
Googleタグライブラリは、Google APIの機能をほとんどそのままタグライブラリ化したものです。Googleタグライブラリを利用することで、これまでスクリプトレットなどで記述しなければならなかった検索処理を限りなくプログラムレスで記述できるようになります。
-
Googleの関連サイト検索やキャッシュ活用など高度な機能を利用することで、より目的のサイトを探しやすくする方法について解説します。
-
Googleが無償で提供するGoogle APIを介して、Googleの検索データベースに直接にアクセスする方法について解説します。
-
Javaのクラスとして実装したAntの新規タスクにネストした要素を渡す方法について解説します。
-
Antタスクから利用可能にした新規タスクに、パラメータを渡す方法を紹介します。別稿「Antで使う新規タスクを作成する」も合わせて参考にしてください。
-
TomcatはCGIを実行するためのコンテナ機能も持ち合わせています。CGIで構築された既存のシステムとJavaを連携させる必要がある場合など、Tomcatのみで環境を作ることができるので便利です。
-
POIを使用してJavaからExcelデータを読み込む方法を紹介します。別稿「POIを使用してJavaからExcel出力を行う」も合わせて参考にしてください。
-
HashMapやArrayListを利用して、2つのキーを組み合わせることで値が特定できるようなデータを作成する方法を紹介します。
-
ともに複数要素で構成されるデータ構造である、配列とコレクション間での相互変換の方法を学びます。また、ライブラリ利用時に必要になることがある型変換に対応できるようにします。
-
Javaベースのビルドツール、Antを利用してアプリケーションのコンパイルと実行を自動化する方法を紹介します。
-
java.util.TimerTaskクラスとjava.util.Timerクラスを利用して、Javaのメソッドとして実装されたタスクを定期的に実行する方法を紹介します。
-
Strutsの設定ファイル「struts-config.xml」に記述されている内容を、Javadocで生成したような形式で出力する方法を紹介します。
-
Javaのクラスで不足する機能をAntのタスクとして実装し、そのタスクをAntから使用可能にする方法を紹介します。
-
クラスのインスタンスを1つに保つ(Singletonパターン)
デザインパターンのSingletonパターンを用いれば、インスタンスを1つしか生成できないクラスを作成することができます。
-
文字色や背景色を変更したり、けい線を引いたりなど、POIを使用してより見栄えの良いExcelファイルを出力する方法を紹介します。
-
JadとJadclipseというツールを利用すれば、Eclipse上でクラスファイルをダブルクリックするだけでソースコードを復元することができます。
-
プロジェクト内のライブラリに対応するJavadocを関連付けることで、Eclipseを用いた開発の際の効率を向上させることができます。
-
「拡張パス」情報は、パスの一部であるかのようにパラメータ情報を記述できるという特長がありますが、デプロイメント・ディスクリプタ(web.xml)の設定に注意が必要となります。
-
POIを利用すれば、JavaからMicrosoft ExcelやMicrosoft Wordなどの「Microsoft OLE 2複合ドキュメント形式」に準拠したファイルを作成・操作することができます。
-
java.net.URLConnectionクラスを利用すれば、任意のHTTPヘッダをセットしたり、POSTメソッドによってデータを送信し、ファイルを保存することができます。
-
HttpServletRequestクラスのメソッドを利用すれば、クライアントからリクエストされたパス(URL)の情報をさまざま形式で取得することができます。
-
オープンソースのプログラムを利用している際、Eclipse上でライブラリとソースコードを関連付けておけば、障害発生時の調査や機能拡張の際に有効に活用できます。
-
Tomcatにあらかじめ用意されているエラーページを独自に作成したエラーページに置き換え、セキュリティ上のトラブルの防止や外観の統一を図ってみましょう。
-
Ant 1.6以降では、propertyset要素とpropertyref要素を使用して、呼び出し先から参照されるプロパティをまとめて指定できます。
-
javapコマンドで逆アセンブルを行えば、コンパイルされたクラスファイルの命令列を読み取ることができ、デバッグなどに利用できます。
-
「リダイレクト」と「フォワード」は、ユーザーからは同じ動作のように見えますが、内部の挙動はまったく異なるものです。これらの違いを把握して、適切に使い分ける方法を解説します。
-
CSV形式のファイルの読み込み/書き込みをマスターすれば、Javaプログラムから簡単に表形式のデータを処理することができます。
-
デプロイメント・ディスクリプタ(web.xml)のスキーマ定義をDTDからXML Schemaに変更し、J2EE 1.4(サーブレット 2.4)に対応させてみましょう。
-
いったんSQL命令をを蓄積しておき、まとめて実行することにより、処理前後のオーバヘッドを軽減し、単発的に命令を発行するのに比べ実行効率を向上することができます。
-
サーブレット2.3のweb.xmlでは、スキーマ定義としてDTDが用いられているため、web-apps要素配下の子要素の順番が厳密に決められています。
-
Eclipse上でAntを実行する際、Eclipseのリソースパスから、そのリソースが格納されているファイルシステム上の絶対パスを取得することができます。
-
Javaアプリケーションからストアドプロシージャを利用する方法を紹介。ストアドプロシージャを利用することで、複雑な命令セットをあらかじめコンパイルしておくことができますので、実行効率を向上できます。
-
データベースから抽出したデータをCSV形式に整形し、クライアントからダウンロードできるようにする方法を紹介します。これによってWeb上のデータをただ参照するだけでなく、自由に再利用することができます。
-
EclipseからVisual SourceSafeによるソース管理を行う
Eclipseには、バージョン管理システムとして、CVSのクライアント機能が標準で搭載されています。しかし、CVSでは実現が難しい排他制御を行いたいときなど、バージョン管理サーバとしてのVisual SourceSafeを使用したい場合があります。