【JavaServlet】千里の道も一歩から　三歩目

###現在の進行状況

+ 遷移元のjsp（login.jsp）
+ 遷移先のjsp（mypage.jsp）
+ サーブレットクラス（Login）

これだけだとまだ動きません
これから遷移元のjspと起動するサーブレットの紐づけを行っていきます
<img width="362" alt="servlet12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624514/4ad14d70-8037-2b2e-8aa3-58baa1b6af29.png">

[一歩目でプロジェクトを作成したとき](https://qiita.com/hatopo/items/3cd12bda5d995703c293#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E4%BD%9C%E3%82%8A%E3%81%BE%E3%81%97%E3%82%87%E3%81%86)に、[web.xmlデプロイメント記述子を生成する]にチェックをつける事で、以下のようなファイルがWEB-INF配下に作られていると思います

```web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ServletApp</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
```

おそらく上記のコードも自動で記述されているとは思いますが、一応解説

+ \<display-name\>・・・プロジェクト名　今回は`ServletApp`
+ \<welcome-file\>・・・ `http://localhost:8080/ServletApp/`のように、`～/プロジェクト名/jspファイル名`ではなく`～/プロジェクト名/`を指定した際に遷移させたいファイルを指定する<br>
今はdefaultもindexも作っていないので、とりあえずlogin.jspを指定しておきましょう

それでは、`<welcome-file-list>`の下にいろいろ追加していきます

```xml
<servlet>
	<servlet-name>login</servlet-name>
	<servlet-class>login.LoginServlet</servlet-class>
</servlet>
```
`<servlet-class>`に、呼び出したいファイルの相対パスをプロジェクトフォルダ（ServletApp）を起点として指定する
上のように書くと`～/ServletApp/login/LoginServlet.java`を呼び出せます
`<servlet-name>`に、このclassに一時的な名前を付けます（すぐ下で使います）

```xml
<servlet-mapping>
	<servlet-name>login</servlet-name>
	<url-pattern>/mypage</url-pattern>
</servlet-mapping>
```
`<url-pattern>`に、呼び出し元のjspのformタグのactionのパスを指定します
jsp側は`/ServletApp/mypage`ですが、こちらはプロジェクトフォルダが起点なので、`/mypage`になります
`<servlet-name>`に、呼び出したい`<servlet>`の名前を指定します

これによって、画面遷移ができるようになりました
<img width="378" alt="servlet13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624514/61654444-ddf5-9607-5786-0d37f35bbd95.png">
以上が一連の流れになります

#実行しましょう
サーバーの緑のアイコンをクリックする
<img width="295" alt="servlet14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624514/0263ebc3-7697-4dfb-24a3-1676678d9898.png">
もしサーバーが出ていなかったらメニューバーの[ウィンドウ]-[ビューの表示]-[その他]でビューを開いて、[サーバー]を選択すると出てくるよ
<img width="233" alt="2020-06-05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624514/65e677be-eada-7056-d57c-38ad89f0b0ad.png">
↑こんな感じ
それでは`http://localhost:8080/ServletApp/login.jsp`を指定して画面を表示させてみましょう
（さきほど`<welcome-file>`でlogin.jspを指定していれば`http://localhost:8080/ServletApp/`でも表示できるので試してみてね

あまりにも簡素ではありますが、画面が表示できました
<img width="533" alt="servlet15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624514/9cee286a-7975-29e8-5145-5677bc7bd461.png">
試しに`hatopo`と入力してloginボタンを押してみると・・・
<img width="622" alt="servlet16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624514/3e828455-c8e0-134b-58eb-7ec93ef42743.png">
無事にパラメータの受け渡しができていますね！

[【JavaServlet】千里の道も一歩から　四歩目](https://qiita.com/hatopo/items/df6fd174b886679dd133)へ続く