
もはやWeb利用者の常識、“URL”の意味を理解しよう
株式会社メセナ・ネットコム
中村 圭一朗
2008/12/3
■ GETではリクエスト情報がURLに丸見え
GETパラメータの場合は、URLの末尾に「?」を付け「名前=値」の形式でリクエストパラメータを連結します。
| GETパラメータの記述例 | |
|
複数のリクエストパラメータを待つ場合は、上記の例のように「&」で連結します。GETパラメータはデータの受け渡しに制限があり(上限は環境に依存します)、情報の一部をキーワードとして指定する検索エンジンなどで一般的によく利用されます。URLとして表示されているので、再利用が可能なためです。
一方でGETパラメータを使うと、送信するリクエスト情報がURLに丸見えなので、機密情報や個人情報をGETでは送信しないことはWebアプリケーションの“常識”といえます。
■ GETパラメータをJSPとStrutsで理解する
では、実際にGETの仕組みをJSP/Strutsで実装してみます。まず、連載第2回の「Strutsの常識を知り、EclipseとTomcatの環境構築」で作成したディレクトリ「PKG/Hello/pages」に「Parameter.jsp」を作成します。
| Parameter.jsp | |
|
次に、「PKG/Hello/WEB-INF/src」配下に「request」フォルダを作成して、そのフォルダ配下に「RequestAction.java」を作成します。
| RequestAction.java | |
|
最後に、「PKG/Hello/WEB-INF」配下の「struts-config.xml」を編集して完了です。
| struts-config.xmlに追加 | |
|
■ Eclipseからサンプルを実行してみよう
それでは、サンプルを実行してみましょう。連載第2回と同様に、Eclipseを起動します。次に、[プロジェクト・エクスプローラー]の「Hello」を選択して右クリックをして、[リフレッシュ]を選択します。Eclipseで[プロジェクト]の[クリーン]を選択して、Helloプロジェクトのコンパイルが完了したら、Eclipse上から「Tomcat起動」アイコン(猫マーク)を押して、Tomcatを起動してください。正常に起動したことを確認したら、下記のURLにアクセスしてください。
http://localhost:8080/hello/pages/Parameter.jsp |
すると、図3のようなページが表示されたと思います。
![]() |
| 図3 Parameter.jspの表示結果 |
次に下記のURLのように、URLの後ろに「?etc=mesena」という文字列を追加して更新してください。
http://localhost:8080/hello/pages/Parameter.jsp?etc=mesena |
「?」の後に付いた「etc」の値を取得して「GETパラメータ」の値が「mesena」に変わったと思います。この特徴こそ、GETパラメータの仕組みです。
![]() |
| 図4 GETパラメータを指定したParameter.jspの表示結果 |
■ Strutsの<bean>タグ
ここで、前回のタグリファレンスで紹介した<bean:header><bean:write><bean:parameter>タグについて説明します。
□ <bean:header>タグ
項目「HTTPヘッダ」で出力している情報「<bean:header>タグ」は、HTTPリクエストヘッダの値を取得する際に使用します。指定できる属性はid、multiple、name、valueです。使用するWebブラウザにより、HTTPリクエストヘッダの情報は異なります。
□ <bean:write>タグ
その「<bean:header>タグ」で取得した情報を画面に表示させるために使用しているのが「<bean:write>」タグです。<bean:write>タグは、取得されたJavaBeansパラメータを属性「name」で指定して表示します。このタグは表示させたい項目を簡単に表示できるため一般的によく利用されます。
□ <bean:parameter>タグ
画面に「GETパラメータ :no-name」として表示しているのが、<bean:parameter>タグです。<bean:parameter>タグの特徴はリクエストで取得したパラメータを取得して表示できます。属性は、<bean:header>と同じです。
今回のRequest.jspでは、属性「value」で"no-header"としているため、初期値としてvalueが表示されています。
■ POSTパラメータをJSPとStrutsで理解する
次に、POSTパラメータの仕組みについて説明します。POSTパラメータの場合は、「リクエスト情報入力」のように事前に入力フォームを用意します。先ほどのディレクトリ「PKG/Hello/pages」に以下のような「Request.jsp」を作成してください。入力フォームに関しては前回の記事が参考になると思います。
| Request.jsp | |
|
入力フォームに値を入力して、「OK」ボタンを押すと、RequestAction.javaでパラメータ「name」として入力したリクエスト情報を取得できます。これが、POSTパラメータの仕組みです。その取得した情報を<bean:write>タグを使って表示すると、図5のような画面が表示されます。
![]() |
| 図5 POSTパラメータのデータが表示 |
次回は、Webアプリ上で保持する“状態”の常識
今回の内容で、URL、プロトコル・メッセージング・パラメータに関する常識が身に付いたことと思いますが、いかがでしたでしょうか。
次回は今回の内容に関連して、セッションやCookie、ステートレス/フル、同期/非同期通信、などWebアプリケーション上で保持する“ステート”(状態)について説明します。今回の内容とセットで読むと、さらに理解が深まるかと思いますので、どうぞお楽しみに。
今回のサンプルは、こちらからダウンロードできます。
■ @IT関連記事
| 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を基礎から解説していく |
||
| プログラマーの常識をJavaで身につける Javaコアパッケージは応用範囲が広いため、普段使わないクラスに意外な発見があるはずです。そこから、さまざまな「常識」を学びましょう |
| プロフィール |
| 中村 圭一朗(なかむら けいいちろう) 株式会社メセナ・ネットコム所属 現在、Strutsを利用した旅行業務システムの開発に携わっている。日々情報収集と知識の蓄積に努め、さまざまな場面で迅速かつ正確な判断と行動を取れるSE(真の技術者)を目指しまい進。 |
| Index | ||||||||
|
||||||||
Webアプリの常識をJSPとStrutsで身につける バックナンバー 連載インデックスへ»
- 第1回 いまさら聞けない、Webアプリケーションの常識
- 第2回 Strutsの常識を知り、EclipseとTomcatの環境構築
- 第3回 Webアプリにおけるサーバとクライアントの常識
- 第4回 HTMLやStrutsに必須の“タグ”と“サブミット”の常識
- 第5回 もはやWeb利用者の常識、“URL”の意味を理解しよう
- 第6回 発掘! Webの“あるある”問題点−ステートの常識
- 第7回 Webアプリ開発の常識、バリデーションとテンプレート
- 第8回 MySQLの常識を知りセットアップしてJSPからDB操作
- 第9回 Hibernateで覚えるO/RマッピングとBeanの常識
- 第10回 JUnitとEclipseを使って学ぶ、“テスト”の常識
- 第11回 Webアプリにおける11の脆弱性の常識と対策
- 最終回 JavaScript/Ajaxで知るWebアプリとスクリプトの常識
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



