Strutsの常識を知り、EclipseとTomcatの環境構築:Webアプリの常識をJSPとStrutsで身につける(2)(4/4 ページ)
本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です
■Javaサーブレットの作成
次に、JavaサーブレットのHelloFormクラスとHelloActionクラスを作成しますが、その前にソース・フォルダーとJavaパッケージを作成する必要があります。
まず、「Hello」プロジェクトを右クリックして[新規のソース・フォルダー]を選択します。
すると、[新規ソース・フォルダー]画面が表示されるので、[プロジェクト名]で「Hello」を参照し、[フォルダー名]で「WEB-INF/src」を参照して、[終了]ボタンを選択します。
これで、「ソース・フォルダー」の作成は完了したので、次にJavaパッケージを作成します。先ほど作成した「ソース・フォルダー」(「WEB-INF/src」)で右クリックして、新規の[Java パッケージ]を選択します。
[ソース・フォルダー]で「Hello/WEB-INF/src」を参照し、[名前]で「hello」と入力して[終了]ボタンを選択します。同様の操作で「hello.form」パッケージも作成します。これで、新規のJavaパッケージの作成は完了です。
Javaパッケージを作成したら、「hello.form」パッケージ配下に以下の.javaファイル(HelloForm.java)を作成します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
「hello」パッケージ配下に、以下の.javaファイル(HelloAction.java)を作成します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
これで、Eclipse上での作業は完了です。サーブレットの中で行われるサーバ側の処理についても、今後の連載で随時紹介していきます。
■Struts設定ファイルの編集
今度はWEB-INFフォルダのstruts-config.xmlを以下の内容に編集します。内容については次回説明します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
おわびと訂正のお知らせ
上記struts-config.xmlについて、「<form-bean name="HelloForm" 」を「<form-bean name="helloForm" 」と表記したり、「attribute="HelloForm"」を「attribute=" HelloForm "」と表記したり、「name="HelloForm"」を「name=" HelloForm "」と表記するなど、間違いが多数あり、修正させていただきました。
内容について正確を期せずに混乱を招いた点、読者の皆様におわび申し上げます(2008年8月29日)。
注意! 「Strutsの日本語文字化け対応」(2008年9月8日追記)
アクション・フォームBeansでは、Webブラウザからのリクエストデータを取得する時に、どの文字エンコード(文字エンコーディング)方式を使用しているかの情報を得る(setCharacterEncodingメソッドなど)まえにリクエストデータを取得します。そのため、日本語の文字化けが発生します。
日本語の文字化け対応を防ぐには、Tomcatのサンプルプログラムとして提供されているSetCharacterEncodingFilter.javaを利用します。
- PKG\Hello\WEB-INF\src配下にフォルダ「filters」を作成
- 作成したfiltersに「%TOMCAT_HOME%\webapps\examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.java」をコピー
- Eclipseで[プロジェクト・エクスプローラー]の「Hello」を選択して右クリックをし、[リフレッシュ]を選択
- Eclipseで[プロジェクト]の[クリーン]を選択して、Helloプロジェクトをコンパイル
- PKG\Hello\WEB-INF\web.xmlに以下の部分を追加(「add start」から「add end」まで)
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
6.完了したら、Eclipse上から「Tomcat起動」アイコン(猫マーク)を押して、再起動
これで、文字化けの対応は完了です。 Javaの文字エンコーディングについて詳しく知りたい読者は、以下の記事を参考にしてください。
初めてのWebアプリケーションを動かすには?
では、いよいよ動かしてみることにしましょう。Eclipseで[プロジェクト]の[クリーン]を選択してHelloプロジェクトをコンパイルします。
■コンテキストパスを設定
エラーが発生しないことが確認できたら、コンテキストパスを設定します。コンテキスト(Context)とは、プログラムが処理を実行する際の判断材料となるものです。プロジェクトの配置状況や、条件などを設定できます。こちらも、詳細は次回説明します。
Tomcatへ「Hello」プロジェクトの配置状況を伝えるため、「/TOMCAT_HOME/conf/server.xml」に以下のコンテキストパスを設定(追記)します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
注意!
Apacheのサイトによると、「Tomcat 6 では,Tomcat 4.x と異なり, <Context> 要素を直接 server.xml ファイルに置くことは推奨されない。」とありますが、Tomcatを再起動しないとコンテキストパスを再ロードしてくれないということなので、コンテキストを変更した際はTomcatを再起動すれば問題ありません(2008年8月29日追記)。
コンテキストパスの設定場所は、<Host>タグの中に設定します。例としては、以下のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
完了したら、Eclipse上から「Tomcat起動」アイコン(猫マーク)を押して、起動してみてください。コンソールが何やら動きだしましたね。早速確認してみましょう。Webブラウザから以下のURLを参照してみてください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
すると、どうでしょうか。あなたが作成した画面がWebアプリケーションとして動作しました。
ここで終わりではありません。「あなたの名前は?」と聞かれている横のテキストボックスにあなたの名前を入力して「OK」ボタンを押してみてください。
画面で「ようこそ、XXXさん!」(XXXは前の画面のテキストボックス内に入力した文字)と表示されましたね! おめでとうございます。Webアプリケーションが見事に動きました!
Webアプリの“常識”を学んでいこう
このように、Strutsを使ったWebアプリケーション開発はそれほど難しいものではないということが分かっていただけたでしょうか?
次回第3回からは、今回のサンプルアプリケーションを基に、今回説明できなかったTomcat・Strutsの設定ファイルやソースコードを見ながら、サーバとクライアントの関係などのWebアプリケーションの常識について詳しく説明していく予定です。
プロフィール
眞野 寿彦(まの としひこ)
株式会社メセナ・ネットコム所属
SEとして充実した日々を送っている。現在はStrutsを使ったWebアプリケーション開発を担当中。「信頼されるプロジェクトマネジャー」を目指し、自分に必要なことを常に考え、行動し、「真の技術者」として日々成長している。
趣味はボウリング、ビリヤード、ダーツ
尊敬する人はティム・バーナーズ=リー
- JavaScript/Ajaxで知るWebアプリとスクリプトの常識
- Webアプリにおける11の脆弱性の常識と対策
- JUnitとEclipseを使って学ぶ、“テスト”の常識
- Hibernateで覚えるO/RマッピングとBeanの常識
- MySQLの常識を知りセットアップしてJSPからDB操作
- Webアプリ開発の常識、バリデーションとテンプレート
- 発掘! Webの“あるある”問題点−ステートの常識
- もはやWeb利用者の常識、“URL”の意味を理解しよう
- HTMLやStrutsに必須の“タグ”と“サブミット”の常識
- Webアプリにおけるサーバとクライアントの常識
- Strutsの常識を知り、EclipseとTomcatの環境構築
- いまさら聞けない、Webアプリケーションの常識
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 開発の標準化とフレームワークの普及
21世紀はじめのWeb技術史(2) 今回は、ソフトウェア品質を高めるために進化を遂げてきたアプリケーション開発環境の最近の道筋を概観する。キーワードはフレームワーク - Strutsを使うWebアプリケーション構築術
ステップ・バイ・ステップの解説で誰にも分かるStruts講座。効率の高いWebアプリケーション開発をマスターしよう - Java開発者のためのFAQ集
Java開発者が 最低限押さえておくべきJavaに関する基礎知識、実際のソリューション構築の場面で定石とされるノウハウ、プログラミングTIPSなどのFAQをご紹介していきます。 - サーブレットの基礎知識と活用
- JSPの基礎知識と活用
- セッション管理
- Servlet/JSPリファレンス
- Javaプログラミングに役立つテクニックとノウハウ集
- JSP/サーブレット(JSTL、Google活用なども)
- Apache/Jakarta(Struts、Ant、Excel活用なども)
- やり直し「JSPとTomcat」
途中までかじったが挫折した。スキルチェンジしたい!という読者のために、Tomcatの最新バージョンを使いながらJSPを基礎から解説していく - StrutsやRESTなWebサービスとFlexを連携するには
業務用RIAの本命!? Flex+Java開発入門(3) Javaの定番Webアプリ技術StrutsとFlexの連携方法を解説します。RESTとFlexの連携を行いたい場合などにも流用可能です - プログラマーの常識をJavaで身につける
Javaコアパッケージは応用範囲が広いため、普段使わないクラスに意外な発見があるはずです。そこから、さまざまな「常識」を学びましょう