そのへんのちらしのうら

調べたこと、学んだこと、おもしろかったこと。

JSP+ServletでシンプルなWebアプリをつくる(3)ーWebページへのアクセス

3.開発

3.2.Webページへのアクセス

とりあえず、URLをたたいてまっさらなWebページにアクセスできることを確認してみましょう。


(1)「WebContent」直下のindexページにアクセスする
①「WebContent」直下に「index.jsp」を作成。
②ブラウザにURL「http://localhost:8080/zaiko/」を入力。
 「http://[サーバー]/[プロジェクト]/」の並びになります。
③下記のように画面が表示されればOK。リクエストできています。
f:id:bubox2:20190309161408p:plain
※ちなみに、「http://localhost:8080/zaiko/index.jsp」でも可能。サーバ側で、「index.jsp」が省略されていても自動で探索してくれるようです。

(2)「WEB-INF」配下のページにアクセスする
indexページのように、ブラウザ(=外部)から直接アクセスするページはWebContent直下に置きます。
一方、アプリケーションの内部処理にかかわる重要なファイルは「WEB-INF」配下に置きます。
今回の在庫調整画面は、本来トップページなどから遷移し、サーブレットからのみ使用されることを想定しているため、「WEB-INF」配下にjspファイルを置くこととします。
まずは、「WEB-INF」配下にある「zaikochosei.jsp」にリクエストできるようにしてみます。

①「WEB-INF」配下に「jsp」フォルダを作成し、「zaikochosei.jsp」を配下に作成。
②「src」配下に「controller」フォルダを作成し、サーブレットクラスとして「ZaikoChoseiController.java」を作成。
f:id:bubox2:20190309184038p:plain
③URLに「http://localhost:8080/zaiko/ZaikoChoseiController」を入力してリクエスト。
 なお、「/ZaikoChoseiController」部分は、「ZaikoChoseiController.java」の「@WebServlet("/ZaikoChoseiController")」で決まります。
 「ZaikoChoseiController」は、在庫調整画面に関してリクエストの内容から各種制御をするサーブレットです。このサーブレットを実行するには、URLに「http://[サーバー]/[プロジェクト]/[URLパターン]」としてリクエストする必要があります。
 このURLパターンを決めているのが「@WebServlet」アノテーションです。
 結果、このように表示されます。
f:id:bubox2:20190309190140p:plain
④「zaikochosei.jsp」にアクセスできるようにする。
 doGetメソッドを下記のように書き換えます。なお、アドレスバーにURLを直接打ち込んだ場合は、GETメソッドが呼ばれます。

//ZaikoChoseiController.java
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");

        RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/zaikochosei.jsp");
        dispatcher.forward(request, response);
    }

⑤再度アクセスします。
f:id:bubox2:20190309190755p:plain