Javaプログラミング/サーバサイド&ケータイJava

JSPとサーブレットのキャッチボール(5ページ目)

JSPとサーブレット。両者の間で必要な情報をやり取りするための基本を覚えましょう。

執筆者:掌田 津耶乃

サーブレットからJSPに送り返すには?


ここでは、getSessionでセッションを取り出し、setAttributeで値設定した後、こんな処理をしています。

ServletContext context = this.getServletContext();

まず、ServletContextというものを取り出します。これはサーブレットのコンテキストに関する機能を提供するクラスです。ここからサーブレットに必要なオブジェクトなどを取り出したりするのです。

RequestDispatcher dispatcher = context.getRequestDispatcher("/index.jsp");

続いて、「getRequestDispatcher」というメソッドを使い、RequestDispatcherというクラスのインスタンスを取り出しています。これは、ページの移動を管理するオブジェクトです。サーブレットでページを移動する場合は、指定のページに移動するためのRequestDispatcherインスタンスを取得します。

dispatcher.forward(request,response);

取り出したRequestDispatcherの「forward」メソッドを実行することでページの移動を実行します。このとき、requestとresponseを引数に渡します。これでクライアント側では、サーブレットから指定のJSPページに自動的に移動します。

これで、JSPページから送信をすると、サーブレットで送られた値を処理し、再びJSPに表示を戻す、という一連の処理ができるようになりました。

どうしてこんなややこしいことをしたのか? それは、こうすることにより「JSP」と「サーブレット」の役割を完全に分離するための基本が身につく、ということなのです。JSPとサーブレットは、どちらも同じような働きをしますが、しかし役割は違います。いえ、違う役割を果たすようにプログラミングすることができるのです。

JSP――画面の表示を担当するもの
サーブレット――背後で動くさまざまな処理を行なうもの

このようにすることで「画面表示はJSP、具体的な処理はサーブレット」という役割分担ができるようになります。JSPは非常に手軽に修正が行なえますから、画面表示にはうってつけですが、反面、あまり込み入った処理を書くとわかりにくくなってしまいます。サーブレットは本格的な処理の実装に使えますが、これで画面表示を作るのはかなり面倒です。

こんな具合に、JSPとサーブレットで役割を分け、両者の間で必要な情報をキャッチボールしながら動く――というのが、サーバサイド開発の基本といってよいでしょう。「JSPだけですべてを行なう」とか「サーブレットだけで全部作る」なんて考えず、両者をいかにしてうまく組み合わせるか、それが重要なのです。
【編集部おすすめの購入サイト】
Amazonで Java 関連の書籍をチェック!楽天市場で Java 関連の書籍をチェック!
  • 前のページへ
  • 1
  • 3
  • 4
  • 5
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます