次へ→ログイン画面の作成まず、ログイン画面の実装を通じて、Servletの基本要素を学習していきましょう。プロジェクトの作成まず、Tomcatプロジェクトを作成します。容易にTomcatに配備することができます。コンテキストパス以下のファイル構造は以下のようにする必要があります。WEB-INFディレクトリはWEBアプリケーションの構成情報やクラスファイルなどを格納するために利用されます。このディレクトリ以下にあるファイルは直接ブラウザから参照することはできません。WEB-INFディレクトリ以外のファイルは、CSSファイル、JSファイルなど、ブラウザから参照する必要がある場合に配置します。ここに配置されたファイルは、http://(サーバ名):(ポート番号)/(コンテキストパス)/(コンテキストパス内でのパス)の形で参照することができます。ログイン画面は、以下のようなファイル構造とします。クラスtest.TodoServletのバイトコード(GETリクエストのactionパラメータがloginの場合に/WEB-INF/jsp/login.jspに転送。ログイン画面のJSPファイル(TodoServletから転送。参照できないようにWEB-INF以下に配置。todoサーブレットが出力したログイン画面から参照するCSSファイルでは、Tomcatプロジェクトを作成し、ログイン画面を実装していきましょう。Explorer」上で右クリックし、「New」-「Project...」を選択します。「Java」-「Tomcatプロジェクト」を選択します。name」に「todotest」と入力し、「Finish」を押します。Explorer上にあらわれれば成功です。Servletクラスの作成Servletクラスを作成していきましょう。目的に応じて以下のメソッドをオーバーライドします。(他にもいくつかのメソッドがあります。resp)Servletのメソッドの処理の中で、リクエストに関する情報を取得したい場合にはjavax.servlet.http.HttpServletRequestオブジェクトを使用します。ここではサンプルに使用するメソッドのみ説明します。HttpServletRequest.getParameter(String)を使用する。引数にパラメータ名を指定することで、パラメータの値を取得することが可能。HttpServletRequest.getRequestDispatcher(String)を使用する。HttpServletResponse)を呼び出す。Servletのメソッドの処理の中で、レスポンスに関する情報を設定したい場合にはHttpServletResponseオブジェクトを使用します。ここでは、JSPファイルによってレスポンスの内容を生成しますので、Servletの処理内では特に操作しません。Servletクラスを作成します。「WEB-INF/src」上で右クリックし、「New...」-「Class」を選択します。以下のように値を設定します。TodoServletクラスを作成します。ここでは、GETリクエストに対する処理として、以下のような処理を記述します。}パラメータの解析処理。loginが指定された場合に転送先としてWEB-INF/jsp/login.jspを指定しています。ServletException例外をスローしてエラー終了しています。(この場合、Tomcatのエラー画面が表示されてしまいます。次のセクションで自分が作成したエラー画面へと差し替えます。}JSPファイルへの転送処理。先の処理で転送先として指定されたJSPファイルへと転送をおこないます。次に、JSPファイルを作成していきましょう。先に作成したlogin.js.htmlをベースとし、JSPファイルとして処理するために必要ないくつかの記述を追加していきます。todotestプロジェクト/WEB-INFディレクトリ以下にjspディレクトリを作成します。JSPファイルを作成します。先に作ったindex.js.htmlをlogin.jspにリネームし、WEB-INF/jspディレクトリにコピーします。先に作ったCSS,JavaScriptファイルをstruts2todoプロジェクト直下にコピーします。login.jsJSPファイルに以下の修正を加えます。%>JSPファイルの1行目にJSPファイルに関する属性情報を追加。value="login_action">フォームの送信先がServletになるように変更。送信メソッドとactionパラメータを設定します。最後に、WEB-INFフォルダ以下にweb.xmlファイルを作成します。</web-app>7~13行目:Servletクラスの情報を定義します。15~22行目:Servletクラスのパスを定義します。servlet要素の定義とはservlet-name要素の値を通じて関連付けられます。ここまでのファイルここまででプロジェクトディレクトリの内容は以下のようになります。作成できているか、確認してください。「Tomcat起動」ボタンを押します。何もクエリを指定せず、意図的にエラーを起こしてみましょう。Servletに何もクエリを指定しなければ、action名が取得できず、エラーが発生するはずです。ブラウザで以下のURLを開きます。http://localhost:8080/todotest/todo以下のエラー画面があらわれれば正しくServletは動作しています。次に、デバッガの使用方法の確認もかねて、パラメータを指定して実行してみましょう。コンソールアプリケーションと同じ要領で、TodoServlet.javaのdoGetのはじめにブレークポイントを設定します。ブラウザで以下のURLを開きます。http://localhost:8080/todotest/todo?action=login以下のようにEclipseのデバッガが起動します。Perspective」-「Debug」を実行してください)デバッグ実行完了後、ブラウザに以下の画面があらわれれば成功です。