「第５章」JSPの基礎

#**<font color=orange>JSPの基礎**
JSPページとは何かについて簡単に見ていきます。そして実際にJSPページを作成した後で実行するまでの流れを確認しておきます。
第５章の目標：Spring4-MVC & JSP & JAVA8 & Tomcat8のプロジェクトを作成する。

##**JSPとは**
JSPとはJavaServer Pageの略で、サーブレットと同じくサーバ上で動作させるものです。

サーブレットは全てJavaで記述されたコードで構成され、HTML文書などの出力する場合も全てJavaで記述していました。例えば次のようなものになります。

```HelloWorld.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Hello World!</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>Hello World!</h1>");
    out.println("</body>");
    out.println("</html>");
  }
}
```

サーブレットを記述したファイルはテキストファイルですが、アプリケーションとして利用するためにはコンパイルを行ってクラスファイルを作成する必要があります。

これに対してJSPはHTMLページの中にJavaのコードを埋め込みます。プログラムで処理が必要な部分だけを記述することで、HTMLページの出力がメインの場合にはすっきりとした記述を行う事が出来ます。

例えば次のようなものになります。

```Sample.jsp
<%@ page contentType="text/html;charset=Shift_JIS" %>

<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>

<%
out.println(new java.util.Date());
%>

</body>
</html>
```

基本はHTMLページですので、固定的に表示されるHTMLの部分は普通のHTMLページとして記述することが出来ます。そして動的に変化する部分だけをJavaを使って作成が行えるようになっています。その為、サーブレットは内部的な処理を、JSPは画面出力する処理を記述するのに適しています。

では、JSPページの作成から実行までの一連の流れを確認していきます。

#**<font color=orange>JSP実行までの流れ**

##エンコードをすべてUTF-8に変更
①ウインドウ　⇒　設定　⇒　encoding検索　（変更後は必ず適用ボタンクリック）
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/0d9ef7e0-a459-a66a-8a86-319ea57db009.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/85145/63a7d091-f943-7d93-f282-0ce89594879b.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/85145/19031339-d3db-bd85-05ca-d9b831f9e7df.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/85145/fe941873-e784-f729-adc4-428a133ccf89.png)

②エンコード検索　⇒　UTF-8に変更（変更後は必ず適用ボタンクリック）
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/9a527f34-4e25-fd49-9fea-af7e58946e6d.png)

##新規プロジェクトの作成

①ファイル　⇒　新規　⇒　Springプロジェクト
プロジェクト名：kakeibo
テンプレート：Spring MVC Project
パッケージ：jp.co.kakeibo
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/c69d2b2f-8171-c011-b988-f5bfadd432c2.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/85145/240830bd-bc77-7438-e870-a6939d1bcd07.png)

今の段階でJavaのコンパイラーが1.6になっている場合
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/d8b1686b-50f2-3831-abb6-564aa95b9958.png)


JREシステム・ライブラリー　⇒　右クリック　⇒　ビルド・パス　⇒　ビルド・パスの構成　
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/a3ee8d1a-c1df-a3b0-96cd-1bc3e7ca587e.png)


編集　⇒　ワークスペースのデフォルト（JAVA８）選択し、完了
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/a5ad815d-ee4e-a412-3350-022eb3f65883.png)

##Tomcatの設定
Webサーバ（ホームページのファイルを置くサーバ）で動くJavaプログラムを「Java Servlet（サーブレット、Servlet）」と言います。

Apache Tomcatとは
サーブレットコンテナ（Java Servletを動かすときに必要なソフト）の一つです。

①左下にあるサーバーのメッセージ（Link）をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/85a0aadf-0de1-6dc6-c24a-b9c2d8513e7a.png)

Tomcat v8.0 サーバーを選択、ランタイムはJAVA8、次へ
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/162de51d-d84e-d1bd-930d-60d8bca0d640.png)

kakeiboを選択し追加
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/8c7972bf-80c7-3965-2f93-9d599e342e5d.png)

追加されたら完了
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/d430961a-fbe2-19d3-e890-009af26daed1.png)

確認
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/6edbe2ac-49ac-21c9-9d1b-0c9b7bd2c575.png)

左下のローカル・ホストのTomccat8（Java8）をダブルクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/42f8824d-e539-ffde-67eb-e99b597b197b.png)

右側のHTTP/1.1のポート番号8080はOracleで使っている場合が多いので8070に変更。⇒　必ず保存
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/d1c57c5b-cfca-5111-07ec-d0a60382b047.png)

サーバーを始動ボタンをクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/8b763395-3948-3b33-00df-24bdea86aa03.png)

警告が出ても問題ない、特にエラーメッセージがなければOK
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/9fe15d50-4de8-7c38-97d7-c13ae528948f.png)


##サーバーで実行
kakeiboプロジェクトの上でマウス右クリック　⇒　実行　⇒　サーバーで実行クリック
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/a45389b3-6072-4903-b964-1b5df6570405.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/85145/5b008a3e-2da9-7bb2-11b3-44d254ae85c2.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/85145/25786895-99ff-0c1f-688e-51167ee6ea6a.png)

Hello World!が表示されれば、Spring4－JAVA8－Tomcat8のプロジェクト作成成功！
![image](https://qiita-image-store.s3.amazonaws.com/0/85145/884ed907-a55c-ba32-a662-c2a334bb3179.png)

第6章では、実際にJSPページを作成します。