
|
[Java 5]C言語からの移植に便利なprintfの注意点 (2007/5/29) New! |
|
C言語のprintf関数の魅力である出力形式設定の簡単さが、Java 5から導入されたprintfメソッドによって可能になった。同等な機能が多いが相違点もあり注意して活用したい |

|
[Java 5]LinkedListでFIFOを表現しキューを実現 (2007/5/29) New! |
|
Java 5ではLinkedListクラスが新設されたQueueインターフェイスを実装したので、FIFOを表現するキューのプログラムが容易になり、スタックと同様に利用できるようになった |

|
[Java 5]オーバライドのミスを撲滅する@Override (2007/5/29) New! |
|
Java 5でjava.langパッケージに追加された3つの注釈タイプのうち「@Override」は、オーバライドしているメソッドに記述するとチェックしてくれるのでミスの撲滅に役立つ |

|
Java 5へのEclipse 3.2のインストールと日本語化を行う (2007/4/17) |
|
JDK 5.0のダウンロードとインストール後に、Eclipse 3.2およびNLパックのダウンロードとインストールを行い、Eclipse 3.2を日本語で利用できるようになるまでを説明する |

|
Eclipse 3.2でJava 5版Javadocとライブラリを関連付ける (2007/4/17) |
|
J2SE 5.0日本語ドキュメントのダウンロードとインストール後に、これをEclipse 3.2から利用できるようになるまでの手順を説明する |

|
Java 5版MergeDocでEclipse 3.2のホバーを日本語化 (2007/4/17) |
|
MergeDocのJava 5対応版のダウンロードとインストールを行い、これを用いて、Eclipse 3.2のホバー表示を日本語化するまでの手順を説明する |

|
心霊現象? Robotを使ってマウスカーソルを操る (2007/3/27) |
|
Javaプラットフォーム実装テストを自動化するRobotクラスのmouseMoveメソッドはマウスのカーソルを自由に操れる。利用者が操作しやすいようにカーソルを導くと便利だ |

|
VMが脆弱性のあるバージョンかチェックするには? (2007/3/27) |
|
SystemクラスのgetPropertyメソッドで得られるシステムプロパティを用いて、テストしていないOSや脆弱性のあるバージョンのVMによる実行トラブルを回避できる |

|
StringTokenizerクラスでCSVをHTMLにするには? (2007/3/27) |
|
Excelファイルのテキスト保存形式であるカンマ区切り(CSV)ファイルやテキスト(タブ区切り)ファイルを読み込んで、要素に分解したいときは、StringTokenizerが役立つ |

|
プログラムから別のアプリケーションを起動するには (2007/2/20) |
|
Runtimeクラスのexecメソッドを使うと既存のアプリケーションを非同期で起動できる。電卓を起動したり、既存のファイルをメモ帳で開きたいときなどに活用したい |

|
URLクラスでローカルファイルもシームレスに扱う (2007/2/20) |
|
Webサーバなどのネットワークファイルを読み込むときに用いるURLクラスは、ローカルファイルにも使える。相対パスと絶対パスのどちらでも指定できるので使い分けよう |

|
オブジェクト同士をequalsで比較する前に (2007/2/20) |
|
2つのオブジェクトが意味的に同じかどうかを調べるequalsメソッドは、オーバライドしているクラスとしていないクラスがある。自前クラスでのオーバライドには注意が必要 |

|
java.ioパッケージのReader系クラスの使い分け (2007/1/24) |
|
java.ioパッケージにはReader、FileReader、InputStreamReader、BufferedReader、LineNumberReaderなど数多くのReader系クラスがある。目的に応じて使い分けよう |

|
SQLを使うプログラムではDateクラスに要注意 (2007/1/24) |
|
J2SEが提供するパッケージには同名のクラスがある。例えば、java.utilパッケージのDateクラスを使っているプログラムでは、java.sqlパッケージのDateクラスに注意が必要 |

|
言語に依存しない方法で日付・時刻をフォーマット (2007/1/24) |
|
日付・時刻のフォーマットにはSimpleDateFormatクラスが取りあえず便利だが、スーパークラス(DateFormat)のメソッドを用いた日付時刻フォーマッタの作成が推奨されている |

|
データベースに接続したら後始末は確実に (2006/12/20) |
|
JDBC/ODBCによるデータベースへの接続は物理的な位置を意識せずにできるので便利だが、例外が発生しても接続を終了する必要がある。定石を守りfinallyを活用して確実に |

|
byte型でのメモリ節約はint型への暗黙の変換に注意 (2006/12/20) |
|
int型よりメモリ占有量の小さいbyte/short型は、大量の整数を用いるプログラムでは効率的だが、int型への暗黙の変換が発生することを考慮しないと思わぬトラブルに遭う |

|
同じタイプの変数を配列にまとめることの利点 (2006/12/20) |
|
変数をメソッドに渡す場合、基本型の変数は値渡しで効率が悪く、単独の変数ではメソッド側での値の変更を反映しづらい。同じタイプの変数を配列にまとめることの検討を |

|
finallyを使う場面と、finallyでしてはいけないこと (2006/11/22) |
|
try-catch構文において、例外の有無に限らずに行いたいことがあれば、finallyを用いると便利だが、動作テストは慎重に行い、finallyでしてはいけないことには注意を |

|
throwsを用いるかどうかはメソッドの役割で決まる (2006/11/22) |
|
Javaの持ち味であるthrowsを用いた例外の伝播は、クラスやメソッドを効率的に開発する上で効果的だが、安易な使い方は混乱の元になる。メソッドの役割を考えて判断しよう |

|
int型変数をIntegerオブジェクトにするメリットは (2006/11/22) |
|
Integerクラスを用いてint型の値をオブジェクトにラップすると、Integerクラスが提供する機能が利用できるだけではなく、オブジェクトにのみ可能なメリットが生まれる |

|
実数値を16進数表記するメソッドを作るには (2006/11/1) |
|
int/long型を16進数表記するメソッドや、組み合わせることでdouble型をIEEE754浮動小数点形式に変換する方法はあるが、実数値を16進数表記するメソッドは自作が必要 |

|
整数の絶対値は常に正の数になるとは限らない (2006/11/1) |
|
絶対値はMath.absメソッドか負の数の符号を反転することで求められ、ほとんどの場合、戻り値は正の数になるが、整数の最小値(MIN_VALUE)の絶対値の場合はそうではない |

|
定数をインターフェイスに移したら「あいまい」エラー (2006/11/1) |
|
各クラスで共有している定数をインターフェイスに置くと便利だが、実装した複数のインターフェイスに同名の定数ができてしまったら、使うと「あいまいです」エラーになる |

|
Swingアプリで「import
java.awt.*」の使用は要注意 (2006/10/18) |
|
SwingとAWTには、JPanelとPanelのように動作の似たクラスが多く、間違えてもコンパイルエラーにならず例外すら起こさない場合がある。個別にimportしてミスを防ごう |
 |
虚数どうしの比較をしたいときのクラスの活用法 (2006/10/18) |
|
負の数の平方根はNaNとなり、NaNどうしの比較は常に不一致となってしまう。元の符号と絶対値の平方根を保持し、比較するメソッドをもつ小さなクラスを用いて解決できる |

|
引数として配列を渡すときは無名配列構文が有効 (2006/10/18) |
|
変数やクラスなどにおける名前の重複や命名ミスによるトラブルを防ぐには、できるだけ無名にする。メソッドの引数として配列を渡すときなどには無名配列が使える |
 |
HIGH-VALUE(絶対的な最大値)を表現するには(2006/9/13) |
|
COBOL言語や擬似言語のプログラムでは、絶対的な最大値を意味するHIGH-VALUEが使われることがあるが、Java言語では型ごとに表現が異なり、文字列では工夫が必要 |
 |
C言語の2次元配列とJavaの"配列の配列"の違いに注意(2006/9/13) |
|
C言語などでは2次元配列の要素数×要素数は固定だが、Javaでは可変長の「配列の配列」である為、そのままのロジックで移植すると思わぬ例外が発生することがある |

|
StringBufferをStringに書き換えるときは参照に注意を(2006/9/13) |
|
可変であるStringBuffer内の文字列操作を、固定であるStringに置き換えると、文字列の操作により参照が変化するため、参照を用いた動作の結果が変わることがある |
 |
整数リテラルの前にゼロを付けると8進数に注意 (2006/8/2) |
|
実数のリテラル「3.11, 1.12, 0.77」を整数扱いにしようと各100倍して「311, 112, 077」としたら,予期せぬ計算結果になってしまった |
 |
a=b=cになるよう代入したのにa≠cになってしまった(2006/8/2) |
|
有効桁数の大きいint型の値をfloat型変数に代入すると誤差が出るが,比較すると等しく,この変数を別のint型変数にキャストしても等しい。しかし元の値とは一致しない |
 |
例外の継承を変えたら複数のcatchで到達不能エラー (2006/8/2) |
|
自前の例外クラスを利用して,複数のcatchを行う時,例外クラスの継承関係を変えると「到達不可能」エラーになることがあり,catch順を変えてもエラーが解消されない |
 |
メソッドのオーバーロードで「あいまいです」エラー (2006/6/28) |
|
メソッドのオーバーロードを追加したら,引数にnullを設定している呼び出しがエラーになり「あいまいです」といわれた |
 |
カウンタ操作をfor文に移動したら結果が異なる (2006/6/28) |
|
定数を用いたカウンタ操作を,forブロックの末尾から反復式に移動したら,違う結果になってしまった |
 |
Eclipseとjavacとでfor文の初期化部のエラーが異なる (2006/6/28) |
|
初期化部で複数の型の違う変数を指定すると,Eclipseとjavacで異なるわかりづらいエラーが表示される |
 |
switch-case構文で型変換エラーが出る (2006/5/24) |
|
switch-case文で型をchar型からbyte型に変更したところ、型変換エラーが発生した |
 |
変数をdouble型にしたら例外処理が動作しない (2006/5/24) |
|
変数をint型からdouble型に変更したら、それまで正しく動作していた例外処理が無効になってしまった |
 |
新規作成クラスなのに「定義済みです」と言われる (2006/5/24) |
|
Eclipseで異なる名前で新規クラスを作成しても、「定義済みです」と言われることがある |
 |
Strutsでリクエストをフォワードする
(2005/5/18) |
|
Strutsでは、<action>要素のforward属性を用いる方法、
組み込みのForwardActionを用いる方法で、アクションを介さずに直接ページへ飛ぶアクションマッピングを定義することができる |
 |
Strutsで別モジュールにアクセスする
(2005/5/18) |
|
Strutsの別モジュールにSwitchActionを使ってアクセスする方法を紹介する |
 |
JSPの起動を高速化する
(2005/5/18) |
|
初回実行時の低速化を解消する「jsp_precompile」パラメータを紹介する。「jsp_precompile」パラメータを利用すると、JSPを実行前にコンパイルし、初回呼び出し時の処理を高速化できる |
 |
特定ディレクトリのファイル更新をチェックする (2005/4/20) |
|
特定ディレクトリ以下のファイル更新を自動的にチェックする機能を実装する |
 |
オブジェクトを手軽にソートする
(2005/4/20) |
|
オブジェクトや数値型の値の集合をソートするためのメソッドが、配列を扱うjava.util.Arraysのクラスメソッドsortとして用意されている |
 |
Adapterパターンを使い利用コンポーネントを切り替える
(2005/4/20) |
|
Adapterパターンを使うと、コンポーネントの切り替えをできるだけ少ないコード量で実現できる |

|
Listインターフェイスの3つのクラスを理解する (2005/4/13) |
|
java.util.Listに用意されているVector、ArrayList、LinkedListの3つのクラスの実装の違いを理解する |
 |
右クリックでポップアップメニューを表示する
(2005/4/13) |
|
コンポーネント上を右クリックしてポップアップメニューを表示させる方法を紹介する |
 |
自作クラスのオブジェクトをハッシュテーブルに収める (2005/4/13) |
|
Javaでは、java.util.HashtableまたはJDK 1.2より提供されたjava.util.HashMapによってハッシュテーブルを利用できる |
 |
式言語から静的メソッドを呼び出す (2005/3/30) |
|
JSP 2.0からは「Functions(関数)」という機能を利用することで、式言語(${~})からJavaのpublic
staticメソッド(静的メソッド)を呼び出すことが可能だ |
 |
フリーのライブラリを使いPDFを生成する
(2005/3/30) |
|
オープンソースのPDF生成ライブラリ「iText」の利用方法を説明する |
 |
Strutsアプリをモジュール化した場合の注意点(2005/3/30) |
|
Struts構成ファイルを分割した場合の注意点 |
 |
モバイルにも対応したページを実現するには(2005/3/23) |
|
PCと携帯電話などのモバイル端末の両方に対応した「マルチデバイス対応」のページ作成の方法を紹介しましょう |
 |
モバイルにも対応したページを実現するには(JSTL編)(2005/3/23) |
|
JSTLに含まれるXmlタグライブラリを利用することで、モバイルにも対応したページを実現できます |
 |
既存のPDF文書にコンテンツを追記するには(2005/3/23) |
|
定型的な部分をあらかじめ「テンプレート」として用意しておき、動的なPDFの生成を部分的にとどめる方法が解決方法として考えられます |
 |
クリッカブルなグラフを作成する(2005/2/23) |
|
JFreeChartで生成したグラフにクリッカブル・マップを追加して、グラフの各エリアから個々の詳細ページにリンクできるようにする |
 |
JSTLを使って日付データを加工する
(2005/2/23) |
|
JSTLのi18nタグライブラリを利用して、日付データを加工する方法を紹介する |
 |
XMLSchemaを使ったXMLファイルの妥当性検証を行う
(2005/2/23) |
|
XML Schemaを使って、XML文書の妥当性を検証する方法を紹介する |
 |
JSTLを使って数値データを加工する
(2005/2/15) |
|
JSTLのi18nタグライブラリを利用して、数値データを加工する方法を紹介する |
 |
クッキー値の設定をスクリプトレスで実現
(2005/2/15) |
|
Jakarta TagLibsを用いて、クッキーの設定をスクリプトレスで実現する方法を紹介する |
 |
DTDを使ったXMLファイルの妥当性検証を行う
(2005/2/15) |
|
DTDを使ってXML文書の構造の妥当性を検証する方法を紹介する |
 |
PDF文書を生成する(PDFLib)
(2005/2/8) |
|
PDF文書を生成するJavaのライブラリPDFLibを使ってPDF文書を生成する方法を紹介する |
 |
クッキー値を取得(Jakarta
Taglibs+式言語) (2005/2/8) |
|
ページの値を簡単に取得する方法として、JSP
2.0の式言語とJakarta Taglibsを紹介する |
 |
JavaMailでメール送信アプリを作る
(2005/2/8) |
|
JavaMailを使い、メール送信アプリケーションを作成する方法を紹介する |
 |
多国語対応のサイトを構築する(JSTL編)
(2005/2/1) |
|
JSTL(JSP Standard TagLibrary)のi18n(Internationalization)タグライブラリに用意された<fmt:message>タグを利用して、スクリプティング要素を使わずに国際化対応のJSPページを作成する方法を紹介する |
 |
個別のJSPページでJSTL宣言を省略する
(2005/2/1) |
|
ページごとに@taglibディレクティブを宣言することなく、JSTLを利用する方法を紹介する |
 |
他サイトのRSSフィードを自サイトで利用する
(2005/2/1) |
|
RSS4jを用い、RSSフィードを自サイトで利用する方法を紹介する |
 |
WindowsとLinuxの両方で動作するコードを書く
(2005/1/25) |
|
JavaでOSのシステムプロパティを用いるためのjava.lang.SystemクラスのgetPropertyメソッドを理解すれば、OSに依存したプログラムを作成しないよう心がけることができる |

|
Strutsベースのアプリケーション環境を用意(AppFuse)
(2005/1/25) |
|
AppFuseを使用すれば、Antのコマンドを数回実行するだけで、Struts、Spring、Hibernate、MySQLといったさまざまなアーキテクチャが連携し合うサンプルアプリケーションをTomcatにデプロイすることができる |
 |
Javaでダイジェストを生成する
(2005/1/25) |
|
ダイジェストは、データの一貫性のチェックや認証、暗号化に使用される。java.security.MessageDigestを使用してダイジェストを生成する方法を解説する |
 |
GUI部品にフォーカスを奪われた場合の対処(2005/1/19)
|
|
パネル上にいくつかのボタンを持ったGUIアプリケーションにおいて、キー入力を受け付けさせたくても、入力できなくなることがある。この原因と対策を解説する |

|
HTTPメッセージのやり取りをモニタする(2005/1/19) |
|
「Axis TCPモニタ」を使えば、Webブラウザとサーバ間で送受信されるHTTPメッセージをモニタリングすることができる |

|
J2SE
5.0で簡略化されたfor文(2005/1/19) |
|
簡単さを指向して大幅に改良されたJ2SE 5.0の仕様の中から、簡略化されたfor文について紹介する |

|
Mapインターフェイスの実装クラスの違いを知る
(2004/12/21) |
|
JavaのコアAPIに含まれるjava.util.Mapインターフェイスは、キーと値とのマッピングを表すデータ構造のためのインターフェイスだ |
 |
Eclipse 3.0でアサーションを使用する (2004/12/21) |
|
Eclipse 3.0でアサーションを使用したコードをコンパイル可能にするには、EclipseのJavaコンパイラ設定を変更する必要がある |
 |
Antでwarファイルを作成する(2004/12/21) |
|
Antでwarファイルを作成する際に使用するjarタスクとwarタスクについて説明する |
|
ファイルアップロード処理を簡単にする(Commons活用)(2004/12/14) |
|
Jakarta
Commonsサブプロジェクトから公開されているFileUploadライブラリを利用することで、従来の煩雑なアップロード処理の大半は軽減される |
|
再帰的なデータ構造を表現する(デザインパターン活用)
(2004/12/14) |
|
GoFのデザインパターンを使って、再帰的なデータ構造を効率よく処理する方法を紹介する |
|
Javaで正規表現を活用する(java.util.regexパッケージ)(2004/12/14) |
|
PerlやUNIXのgrepなどで欠かせない正規表現だが、Javaでもこれを扱うためのパッケージjava.util.regexがJ2SE1.4からコアAPIに導入された |
|
Strutsでプレゼンテーション部分にVelocityを使う(2004/11/29) |
|
Strutsのプレゼンテーション部分を実装するには、JSPを用いるのが一般的だが、それ以外の技術を利用することもできる。JSPの代替案として利用されることの多い、Apache
Jakartaのテンプレートエンジン「Velocity」をプレゼンテーション部分に利用するための手順を紹介する |
|
Eclipse
3.0のインストールと日本語化を行う (2004/11/29) |
|
メジャーバージョンアップされたEclipse
3.0のインストールと日本語化の手順を紹介する |
|
MergeDocでEclipseのポップアップ表示を日本語化する(2004/11/29) |
|
MergeDocを実行することによってAPIコメント(StringクラスのtoUpperCaseメソッドの説明)を日本語化することが可能になる |
|
Tomcatでダイジェスト認証を使う(2004/11/17) |
|
SSLの導入が難しい場合、ダイジェスト認証が有効だ。です。ダイジェスト認証では、認証時の通信が暗号化されるので、基本認証に比べて安全に認証を行うことができる |
|
DbUtilsで結果セットをJavaBeansにマッピングする(2004/11/17) |
|
Jakarta
DbUtilsを使うと、リレーショナルデータベースのマッピングを少ないコード記述で実現することができる |
|
DbUtilsで結果セットの内容をスカラー値として取得する(2004/11/17) |
|
Jakarta DbUtilsを使うと、検索結果をJavaBeansで取得するだけでなく、従来のResultSetのように結果セットから特定のカラムのデータを取得することもできる |
|
Antの活用(ファイル操作)(2004/11/10) |
|
Antでより高度なデプロイや配布を行うために必要なディレクトリやファイルに関するタスクを紹介する |
|
Collection
Framework同士の相互変換を行う (2004/11/10) |
|
型の異なるCollection同士、または型の異なるMap同士の変換と、MapをCollectionに変換する方法を紹介する |
|
Strutsでコンフィグレーションファイルを分割する(2004/11/10) |
|
struts-config.xmlを分割し、チーム開発において機能ごとにstruts-configを管理する方法を紹介する |
|
Antの活用(ファイルセットの利用)(2004/10/27) |
|
Antの<copy>や<delete>といったタスクは、ファイルの集合に対して処理を行うことができる。簡単なサンプルを基に、ビルドファイルの設定方法を紹介する |
|
プログラムの品質を高めるためのアサーションとは?(2004/10/27) |
|
アサーションは、プログラムのエラーを防ぐための1つの手法だ。具体的には、ある条件をチェックし、条件が偽になったときにAssertionError例外を発生させる構文を用いる |
|
Strutsのプラグインを作る(2004/10/27) |
|
Struts
1.1から提供されるようになったプラグイン機能を利用することで、Struts本体に手を加えずに独自の機能を簡単に追加できる |
|
JSPページの処理時間を計測する(2004/10/19) |
|
JSPページの処理時間を計測するのに利用できるタグライブラリ「Benchmark」を使ってJSPページの処理時間を計測する方法を紹介 |
|
サーブレットでグラフを描く(JFreeChart活用) (2004/10/19) |
|
JFreeChartを利用すると、グラフの基となるデータセットを引き渡すだけで、棒グラフや円グラフ、バブルチャート、レーダチャート、株価チャートのようなさまざまなチャート図を、簡単に作成することができる |
|
サーブレットでRSSフィールドを配信する(2004/10/19) |
|
RSS4jを利用することで、複数のバージョンに対応したRSSフィールドを簡単に配信することができ、また、開発者がRSSの構文を意識する必要がなくなる |
|
Googleタグライブラリを利用する(2004/9/28) |
|
Googleタグライブラリは、Google
APIの機能をほとんどそのままタグライブラリ化したものだ。Googleタグライブラリを利用することで、これまでスクリプトレットなどで記述しなければならなかった検索処理を限りなくプログラムレスで記述できるようになる。本TIPSを読む前に「Googleの検索機能を利用する」「Googleの高度な検索機能を活用する」を参照してほしい |
|
Strutsのアクションマッピングに独自パラメータを追加(2004/9/28) |
|
Strutsにはユーザーが独自に拡張を施すための仕組みが、豊富に用意されている。ActionMappingクラスもユーザーが独自に拡張できる |
|
リクエストデータをJavaBeansにセット(Commons活用)(2004/9/28) |
|
BeanUtilsは、Jakarta
Commonsプロジェクトの産物であり、JavaBeansを容易に扱えるようにするためのユーティリティだ。アクセスしたいプロパティを文字列として指定することができ、しかもリフレクションを用いた場合よりもコードの記述性や見通しが良くなる |
|
Antで使う新規タスクにネストした要素を渡す(2004/9/14) |
|
Javaのクラスとして実装したAntの新規タスクにネストした要素を渡す方法を説明する。Antで使用するタスクを作成する方法の基本については、「Antで使う新規タスクを作成する」を、Antで使用するタスクにパラメータを渡す方法については、「Antで使う新規タスクにパラメータを渡す」を参照してほしい |
|
Googleの検索機能を利用する(2004/9/14) |
|
Googleが無償で提供するGoogle APIを介して、Googleの検索データベースに直接にアクセスする方法を紹介する。Google
APIを利用することで、Googleのデータベースをあたかも自前のものであるかのようにアクセスすることができ、取得したデータを加工したり、検索結果をより自由な形にレイアウトしたうえで見せることも可能になる |
|
Googleの高度な検索機能を利用する(2004/9/14) |
|
Googleには単なるキーワード検索にとどまらず、関連サイト検索やキャッシュ活用など高度な機能が備わっており、これらを利用することでさらに目的のサイトを探しやすくなる。「Googleの検索機能を利用する」のサンプルをベースに、これらの機能を追加する方法を紹介する |
|
POIを利用してJavaからExcelデータを読み込む(2004/9/7) |
|
Microsoft
Excelのデータに対する読み書きを可能にするのがPOIだ。今回は、JavaからExcelデータを読み込む方法を紹介する。「POIを使用してJavaからExcel出力を行う」と合わせて参考にしていほしい |
|
TomcatでCGIを使う(2004/9/7) |
|
TomcatはCGIを実行するためのコンテナ機能も持ち合わせている。CGIで構築された既存のシステムとJavaを連携させる必要がある場合など、Tomcatのみで環境を作ることができるので便利だ |
|
Antで使う新規タスクにパラメータを渡す(2004/9/7) |
|
Antタスクから利用可能にした新規タスクに、パラメータを渡す方法を紹介する。「Antで使う新規タスクを作成する」と合わせて参考にしてほしい |
|
Antでアプリケーションのデプロイ作業を効率化する(2004/8/24) |
|
Javaベースのビルドツール、Antを利用してアプリケーションのコンパイルと実行を自動化する方法を紹介する |
|
配列とコレクション間の相互変換を行う(2004/8/24) |
|
ともに複数要素で構成されるデータ構造である、配列とコレクション間での相互変換の方法を知り、ライブラリ利用時に必要になることがある型変換に対応できるようにする |
|
2次元のキーを持つハッシュデータを作る(2004/8/24) |
|
HashMapやArrayListを利用して、2つのキーを組み合わせることで値が特定できるようなデータを作成する方法を紹介する |
|
Antで使う新規タスクを作成する(2004/8/17) |
|
Javaのクラスで不足する機能をAntのタスクとして実装し、そのタスクをAntから使用可能にする方法を紹介する |
|
Strutsの設定ファイルから仕様書を生成する(2004/8/17) |
|
Strutsの設定ファイル「struts-config.xml」に記述されている内容を、Javadocで生成したような形式で出力する方法を紹介する |
|
Javaのタスクを定期的に実行する(2004/8/17) |
|
java.util.TimerTaskクラスとjava.util.Timerクラスを利用して、Javaのメソッドとして実装されたタスクを定期的に実行する方法を紹介する |
|
Eclipseで逆コンパイルを行う(2004/8/10) |
|
JadとJadclipseというツールを利用すれば、Eclipse上でクラスファイルをダブルクリックするだけでソースコードを復元することができる |
|
POIを使用してExcelの書式を設定する(2004/8/10) |
|
文字色や背景色を変更したり、けい線を引いたりなど、POIを使用してより見栄えの良いExcelファイルを出力する方法を紹介する |
|
クラスのインスタンスを1つに保つ(Singletonパターン)(2004/8/10) |
|
デザインパターンのSingletonパターンを用いれば、インスタンスを1つしか生成できないクラスを作成することができる |
|
POIを使用してJavaからExcel出力を行う(2004/8/3) |
|
POIを利用すれば、JavaからMicrosoft
ExcelやMicrosoft Wordなどの「Microsoft OLE 2複合ドキュメント形式」に準拠したファイルを作成・操作することができる |
|
拡張パスの利用と注意(2004/8/3) |
|
「拡張パス」情報は、パスの一部であるかのようにパラメータ情報を記述できるという特長があるが、デプロイメント・ディスクリプタ(web.xml)の設定に注意が必要となる |
|
EclipseでライブラリとJavadocを関連付ける(2004/8/3) |
|
プロジェクト内のライブラリに対応するJavadocを関連付けることで、Eclipseを用いた開発の際の効率を向上させることができる |
|
Eclipseでライブラリとソースコードを関連付ける(2004/7/27) |
|
オープンソースのプログラムを利用している際、Eclipse上でライブラリとソースコードを関連付けておけば、障害発生の際の調査や機能拡張の際に有効に活用できる |
|
サーブレットパスの構成要素を取得する(2004/7/27) |
|
HttpServletRequestクラスのメソッドを利用すれば、クライアントからリクエストされたパス(URL)の情報をさまざま形式で取得することができる |
|
接続先のURLへ情報を送信し、結果を保存する(2004/7/27) |
|
java.net.URLConnectionクラスを利用すれば、任意のHTTPヘッダをセットしたり、POSTメソッドによってデータを送信し、ファイルを保存することができる |
|
javapコマンドでクラスファイルを読む(2004/7/13) |
|
javapコマンドで逆アセンブルを行えば、コンパイルされたクラスファイルの命令列を読み取ることができ、デバッグなどに利用することができる |
|
antcallやantでプロパティをまとめて指定する(2004/7/13) |
|
Ant 1.6以降では、propertyset要素とpropertyref要素を使用すれば、呼び出し先から参照されるプロパティをまとめて指定できる |
|
Tomcatで独自のエラーページを使う(2004/7/13) |
|
Tomcatにあらかじめ用意されているエラーページを独自に作成したエラーページに置き換え、セキュリティ上のトラブルの防止や外観の統一を図る |
|
J2EE
1.4に対応したweb.xmlを記述する(2004/7/6) |
|
デプロイメント・ディスクリプタ(web.xml)のスキーマ定義をDTDからXML
Schemaに変更し、J2EE 1.4(サーブレット 2.4)に対応させる |
|
JavaでCSV形式のファイルを読み書きする(2004/7/6) |
|
CSV形式のファイルの読み込み/書き込みをマスターすれば、Javaプログラムから簡単に表形式のデータを処理することができる |
|
リダイレクトとフォワードの違いを知る(2004/7/6) |
|
「リダイレクト」と「フォワード」は、ユーザーからは同じ動作のように見えるが、内部の挙動はまったく異なるものである。これらの違いを把握して、適切に使い分ける方法を説明する |
|
AntからEclipseプロジェクトの絶対パスを取得する(2004/6/22) |
|
Eclipse上でAntを実行する際、Eclipseのリソースパスから、そのリソースが格納されているファイルシステム上の絶対パスを取得することができる |
|
web.xml内の記述順を知る(サーブレット2.3)(2004/6/22) |
|
サーブレット2.3のweb.xmlでは、スキーマ定義としてDTDが用いられているため、web-apps要素配下の子要素の順番が厳密に決められている |
|
バッチ処理でデータベースアクセスを効率化する(2004/6/22) |
|
いったんSQL命令をを蓄積しておき、まとめて実行することにより、処理前後のオーバヘッドを軽減し、単発的に命令を発行するのに比べ実行効率を向上することができる |
|
Eclipseのソース管理にVisual
SourceSafeを活用(2004/6/15) |
|
VSSプラグインをインストールすれば、EclipseをMicrosoft社のバージョン管理システム「Visual
SourceSafe」のクライアントとして利用することができる |
|
データベースの内容をCSV形式でダウンロードする(2004/6/15) |
|
データベースベースアクセスの結果を、再利用が難しいHTML出力でなく、CSV形式のファイルとしてダウンロードさせることにより、加工や分析が容易に行えるようになる |
|
ストアドプロシージャでDBアクセスを効率化する(2004/6/15) |
|
ストアドプロシージャは、「解析→コンパイル」という処理が不要なうえ、ネットワークによるボトルネックの発生を抑えることができるので、効率的なデータベースアクセスを行うことができる |
|
EclipseのCVS機能で排他的な開発を行う(2004/6/8) |
|
EclipseのCVS機能では排他制御を行うことができないが、編集通知機能や監視機能を組み合わせて利用することで、排他的な開発が行えるようになる |
|
リクエストデータからHTMLタグを取り除く(2004/6/8) |
|
掲示板などで入力されたデータ内にHTMLタグが混在していると、さまざまな攻撃を受ける可能性がある。このHTMLタグを、見栄えを変えずに無害なものに自動的に変換する |
|
Webアプリケーションをwarファイルでまとめる(2004/6/8) |
|
Webアプリケーションのアーカイブフォーマットとしてwarファイルを用いると、コンテナによる自動展開が行われるので、配布の際に便利に利用することができる |
|
Eclipseのテンプレート機能を活用する(2004/6/1) |
|
Eclipseのテンプレート機能は、登録されているコーディングパターンを呼び出して補完してくれるので、開発時の作業効率を向上させることができる |
|
Tomcatのユーザー情報をデータベースで管理する(2004/6/1) |
|
Tomcatのユーザー情報をデータベースで管理すれば、メンテナンス性が向上するとともに、よりセキュアなユーザー管理を行うことができる |
|
文字列中のURLに自動的にリンクを設定する(2004/6/1) |
|
J2SE 1.4から導入されたreplaceAllメソッドを利用すれば、掲示板などで書き込まれたURLやメールアドレスに自動的にハイパーリンクを設定できる |
|
Tomcatのパスワードをダイジェスト化する(2004/5/25) |
|
Tomcatのパスワードをダイジェスト化して格納することによって、パスワードの漏えいを防ぎ、よりセキュアなWebアプリケーション環境を構築する |
|
Javaプログラムからプロパティファイルを参照する(2004/5/25) |
|
定数やファイルパスなどの情報を外部ファイルである「プロパティファイル」にまとめておくことで、汎用性の高いプログラムを作成することができる。 |
|
Javaプログラムの実行時間を計測する(2004/5/25) |
|
currentTimeMillisメソッドを利用すれば、Java仮想マシンの起動時間を含まない、純粋なプログラムの実行時間を計測することができる |
|
Eclipseでストリングの外部化を行う(2004/5/18) |
|
Eclipseの「ストリングの外部化」機能を用いて、既存コードに含まれる文字列データを抽出し、プロパティファイル(リソースファイル)を自動生成する |
|
Tomcat
Administratorでコンテナ管理の負担を軽減する(2004/5/18) |
|
server.xmlやtomcat-users.xmlなどをGUIベースで設定することができる管理ツール
「Tomcat Administrator」を利用することで、 Tomcat管理の負担を軽減する |
|
準備済みSQL命令でデータベースアクセスを効率化する(2004/5/18) |
|
パラメータだけが異なる同一のSQL命令を繰り返し実行する場合、準備済みSQL命令を利用すれば処理効率を大幅に向上させることができる |
|
クラスローダの仕組みを知る(2004/5/11) |
|
クラスローダの階層関係と有効範囲を正確に理解することによって、ライブラリの競合による不具合を未然に防ぐことができる |
|
Webアプリケーションの仮想パスを絶対パスに変換する(2004/5/11) |
|
JSPのgetRealPathメソッドを利用すれば、仮想パスを絶対パスに変換することができるため、ファイルパスの指定に活用することができる |
|
GUIツールでTomcat管理の負担を減らす(2004/5/11) |
|
Tomcat Managerの機能をWebブラウザから対話的に利用することにより、管理に掛かる負担を大幅に軽減する |
|
Eclipseでプロパティファイルを編集する(2004/4/27) |
|
Eclipse上で使用可能なプロパティファイル・エディタ「Property
File GUI Editor」を使用すれば、テキストエディタよりも直感的にプロパティファイルの編集が行える |
|
コマンドでデプロイ操作を効率化するには(2004/4/27) |
|
Tomcat Managerを利用すれば、アプリケーション単位での起動/停止の制御や新たなアプリケーションの配置ができる |
|
JSP2.0以降でのウェルカムページの設定(2004/4/27) |
|
JSP2.0/サーブレット2.4では、デフォルト・サーブレットの検索順が変更されたため、JSP1.2/サーブレット2.3からアプリケーションを移行させる際には注意が必要となる |
|
Eclipseで.warファイルを作成する(2004/2/10) |
|
.warファイルを作成する標準的な方法はjarコマンドを使用することだが、Eclipseを使うとマウスのワンクリックで.warファイルが作成できる |
|
拡張フォルダのパスを取得する(2004/2/10) |
|
JDKのバージョンの変更などが理由となり拡張フォルダのパスが変わっても、簡単なJavaプログラムを実行することでパスを取得できる |
|
ウェルカムページを設定する(2004/2/10) |
|
URLにディレクトリ名が指定された際に、表示するJSPファイルを自動的に検索して表示するのがウェルカムページの機構だ。ウェルカムページの設定はweb.xmlファイルに記述して行う |
|
Eclipseでコードに紐付いたメモを残す(2004/2/3) |
|
「CoNo」プラグインは、Eclipse上で使用可能なメモ帳だ。コードに紐付いたメモ書きの管理が可能であり、自分自身のちょっとした開発メモを残すのに大変便利だ |
|
DTD/XMLスキーマを持ったXML文書を編集する(2004/2/3) |
|
「XMLBuddy」はEclipse内部で使えるXMLエディタだ。XML文書で採用されているDTD/XMLスキーマを基にして、タグの補完や検証を行ってくれる
|
|
EclipseでXML文書の不備を発見する(2004/2/3) |
|
「XMLBuddy」プラグインは、XML文書の構造の不備を指摘してくれるプラグインだ。既存のXML文書の妥当性を検証したい場合に活用できる |
|
Eclipseでアクセス修飾子を効率よく編集する(2004/1/20) |
|
EclipseではパッケージブラウザやアウトラインなどのEclipseに付属する標準の機能を用いることで、これらアクセス修飾子を視覚的に確認することができるが、「Access
Modifier」プラグインを使うと、更新までを行うことができる |
|
EclipseでCSSを編集する(2004/1/20) |
|
「CSS Editor」プラグインを使うと、EclipseでCSSの編集を効率的に行うことが可能になる。予約キーワードのハイライト表示や、コード補完機能を利用することができる |
|
EclipseでJavaScriptを編集する(2004/1/20) |
|
「JavaScript Editor」プラグインを利用すると、EclipseでJavaScriptの編集を効率的に行うことが可能になる。JavaScriptの予約キーワードのハイライト表示や、アウトライン機能を利用することができる |
|
インポート宣言の入力支援機能を使う(2004/1/6) |
|
Eclipseは、インポート宣言の編集を簡便にするための機能を提供している。「インポート宣言の追加」「インポート宣言の編成」機能を用いることで、現在のクラスに必要なインポート宣言を適切に自動編集することができる |
|
規約に沿ったソースコードを自動生成する(2004/1/6) |
|
Eclipseでは、コードを自動生成する際の規約を定めることができる。この機能を活用することで、Eclipseのコード自動生成からコーディングまでをよりスムーズに進めることが可能になる |
|
コードのスケルトンを自動生成する(2004/1/6) |
|
Eclipseでは、「Aston Wizard」を用い、あらかじめ用意されたテンプレートからコードのスケルトンを自動生成することが可能になる |
|
テキストファイルの入出力でさまざまな文字コードを扱う(2003/12/16) |
|
FileReader/FileWriter(BufferedReader/BufferedWriter)クラスを用いたファイルの読み書きでは、システムデフォルトで定義されている文字コードしか扱えない。さまざまな文字コードを扱うには、FileInputStream/InputStreamReaderクラスを使う |
|
バイナリファイルの入出力を行う(2003/12/16)/td> |
|
バイナリファイルは「byte型のデータの連なり」だ。テキストファイルの読み書きの場合に文字、あるいは行で行ったのと同様、バイナリファイルを扱うにはbyte値の単位でデータを処理すればよい |
|
テキストファイルへの同時書き込みを防ぐ(2003/12/16) |
|
複数のユーザーがテキストファイルの読み書きを行う際には、アプリケーション側で同時書き込みをロックするためのしくみが必要になる |
|
文字コード宣言をフィルタで共有化する(2003/12/9) |
|
リクエストデータに2バイト文字が含まれている場合に文字エンコーディングの指定が必要だ。しかし、これをファイル毎に行っていては効率が悪い。フィルタを使って文字エンコーディングの指定を複数のファイル間で共有する方法を紹介する |
|
サーブレットでテキストファイルに書き込みを行う(2003/12/9) |
|
サーブレットでテキストファイルに書き込みを行う方法を解説する。ここでは、文字列をいったんバッファに保管してから書き込む方法を紹介する |
|
サーブレットでテキストファイルから読み込みを行う(2003/12/9) |
|
サーブレットでテキストファイルから文字列を読み込み、HTMLに展開する方法を紹介する |
|
リソースファイルの内容が文字化けする場合には(2003/12/2) |
|
リソースファイルに日本語を含めると、サイトは見る影もなく文字化けしてしまう。これは、リソースファイルには2バイト文字は使用できない制限によるものだ。2バイト文字を使う場合は、native2asciiというコマンドでUnicodeにエスケープしておく必要がある |
|
サーブレット2.3における文字エンコーディングの指定(2003/12/2) |
|
リクエストデータに2バイト文字が含まれている場合には、必ず文字エンコーディングの指定を行う必要がある。サーブレット2.3におけるエンコーディングの方法を紹介する |
|
サーブレット2.2における文字エンコーディングの指定(2003/12/2) |
|
リクエストデータに2バイト文字が含まれている場合には、必ず文字エンコーディングの指定を行う必要がある。サーブレット2.2におけるエンコーディングの方法を紹介する。
|
|
ユーザー権限でコンテンツへのアクセスを制限する(2003/11/18) |
|
ユーザーの役割ごとに個々のページに対するアクセスの可否を制御したい場合がある。たとえば帳票の作成は誰でもできるが、帳票の承認はマネージャの権限がなければできないというケースだ。ここでは、ロール単位でページの動作を制御する方法を紹介する |
|
フィルタでサイト内のアクセス制限を制御する(2003/11/18) |
|
ユーザー毎のアクセス制限を個々のページ毎に記述するのは大変だ。「フィルタ」を用いるとアクセスログを記録するロジックを個々のページに記述していたのでは非常に効率が悪い。「フィルタ」を用いると、ロジックの記述を一元化できる |
|
リソースファイルで多国後対応のサイトを構築する(2003/11/18) |
|
昨今ではサイトを2カ国語以上に対応させるケースも増えてきた。ページ毎に多国語対応の記述を行うのは効率が悪い。この場合はリソースファイルとこれを制御するResouceBundleクラスを利用することで、地域(言語)依存の部分を外部ファイルで一元管理することがきる。 |
|
アクセスログ記録のロジックをフィルタで一元化する(2003/10/28) |
|
アクセスログを記録するロジックを個々のページに記述していたのでは非常に効率が悪い。そこで、「フィルタ」を用いてロジックの記述を一元化する方法がある。フィルタは、このようなサイト共通のロジックを一元化する場合に非常に有効な機能だ。 |
|
アクセス制限をweb.xmlの記述だけで実現する(2003/10/28) |
|
アプリケーションに認証機能を追加したいと思った場合、もちろん、自分で認証機能を実装することも可能だ。しかし、コンテナ(Tomcat)にあらかじめ用意されている機能を利用することで、より簡便に(しかも確実に)認証機能を実現することができる。 |
|
フォーム認証でログイン画面をカスタマイズする(2003/10/28) |
|
「アクセス制限をweb.xmlの記述だけで実現する」で説明した認証機能えは、ログイン画面に会社のロゴを入れたり、認証をナビゲートするメッセージを表示することができない。このような場合、フォーム認証機能を使ってログイン画面をカスタマイズすることができる。 |
|
コーディング規約に従わないコードを検索する(2003/10/21) |
|
チームで開発する場合は、コーディング規約を遵守することが重要だ。しかし、プログラマの癖を避けることは難しい。Eclipseの「Checkstyle」プラグインは、Eclipse上のプロジェクトで管理されたコードを、あらかじめ決められたコーディング規約でチェックし、違反している個所をリストアップしてくれる。 |
|
コーディング規約に従いコードを自動整形する(2003/10/21) |
|
Eclipseが標準で備える「コード・フォーマッター」を使うと、あらかじめ定めたコーディング規約に従ってソースコードを一括整形することができる。 |
|
メソッド間の依存関係を簡単に調べるには(2003/10/21) |
|
どのクラス(メソッド)がどこから呼び出されているか、現在のメソッドがどのクラスに依存しているかを知ることはなかなか難しい。しかし、Eclipseの「Call
Hierarchy」プラグインを使えば、簡単に知ることができる。 |
|
Eclipse上でGoogleの検索機能を利用する
(2003/10/7) |
|
コーディング中に、新しいアーキテクチャの用途を知りたいとき、仕様書の作成などで言葉に迷ったときなど、Eclipse上で目的のキーワードについて検索できたら便利だ。ここでは代表的な検索エンジンの1つ「Google」をEclipse上から使う方法を説明する。 |
|
Eclipseですべての例外クラスを捕捉する
(2003/10/7) |
|
コーディングに慣れたプログラマでも、補足すべきすべての例外クラスをすべて覚えていることはないだろう。結局は、コンパイラの指摘を待つか、APIリファレンスを活用するしかないわけだが、実はEclipseですべての例外クラスを補足することが可能だ。 |
|
JNDI活用でデータソース管理を一元化する
(2003/10/7) |
|
データベースの接続情報は実行環境によって変わってくる。しかも、その情報は「.jsp」ファイル、「.java」ファイルといったさまざまなファイルに分散している。JNDIを使えば、環境に依存する情報を1箇所で一元管理できてメンテナンスが楽になる。 |
|
任意のフォルダにアプリケーションを配置するには
(2003/9/5) |
|
Tomcatでは、通常アプリケーションを「/webapps」フォルダの配下に配置する。しかし、ファイル管理の都合やディスク容量などの事情により、ほかのフォルダやドライブにアプリケーションを配置したい場合がある。この場合、server.xmlを書き換えることで対応できる。
|
|
クラスファイルの更新時にTomcatを再起動しない
(2003/9/5) |
|
サーブレットやJavaBeansなどに代表される「.class」ファイルを新規に作成(または更新)した場合、コンテナの再起動が必要となる。これは開発時には非常に面倒な作業だ。server.xmlを書き換えることで、この再起動の作業を行わなくてもよくなる。 |
|
EclipseでJavadocを利用するには
(2003/9/5) |
|
本来コマンドラインから利用するJavadocをEclipseから対話ベースで利用することができる。また、Javadocコメントと呼ばれる一種独特のコメントを記述する場合にも、Eclipseのコメント自動生成機能を用いることで作業をシンプル化することが可能だ |