検索

キーワード


目次

【Java】JSP(Java Server Pages)とは

  • 公開日:2020-10-21 16:32:14
  • 最終更新日:2020-11-13 21:39:26
【Java】JSP(Java Server Pages)とは

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

こんにちは。エンジニアの新田です!
ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。
今回は、JSPについて説明します。JSPとはどのようなものなのか?サーブレットとの違いにも触れながら解説します。
Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!

関連記事:【Java】サーブレット(Java Servlet) 【Java】JSPの基本的な構文


JSP(Java Server Pages)とは?


「JSP」とは、どのようなものでしょうか?

JSPはJavaサーブレットと同じく、サーバー上で動作するJavaのプログラムで、クライアントからのリクエストに応じて動的にWebページを生成することができます。

JavaサーブレットとJSPとの違いを簡単に説明すると、


【Javaサーブレット】

  • Javaコードの中にHTMLとして出力する内容を記載する

【JSP】

  • HTMLのコードの中(間)にJavaで実行する処理を記載する


実際のコードを例に記載してみます。

どちらも同じ内容のHTMLを出力するコードです。

【Javaサーブレット】(*.javaファイル)

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.*;

public class NowServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
        ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter out = resp.getWriter();
        out.println("<html>");
        out.println("<head><title>Now</title></head>");
        out.println("<body>");
        out.println("現在の時刻は");
        out.println(new Date());
        out.println("</body></html>");
    }
}


【JSP】(*.jspファイル)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.util java.util.*" %>
<html>
    <head>
        <title>Now</title>
    </head>
    <body>
        現在の時刻は<%= new Date() %>
    </body>
</html>



JSPの特徴

JSPには以下のような特徴があります。

  • JSPはサーバ側で実行されるプログラム
  • 事前のコンパイルを必要としない(初回起動時に自動的にコンパイルされる)
  • <% %>タグを用いることで、HTMLの中にプログラムを埋め込むことができる
  • プログラムはJavaで記述でき、Javaの利点をそのまま生かすことができる
  • CGI と異なり、プロセス起動のオーバーヘッドがない
  • web.xmlへ登録を必要としない
  • JSP用のカスタムタグライブラリがたくさん用意されている


JSPとサーブレットの違い

ここまで説明した通り、それぞれに特徴がありコードの記載方法も異なりますが、JSP(*.jsp)はサーブレットコンテナで自動的に「サーブレット(.java)への変換」⇒「コンパイル(.classの生成)」後に実行されるため、根本的にはサーブレットと同じものという事になります。

JSPとサーブレットには、それぞれの得意分野があり、必要に応じて技術を使い分ける事で効率的に開発を進めることができます。(JSPを使用せずにサーブレットのみで全てを実現することも可能です)

サーブレットほぼ純粋なJavaコードであるのに対し、JSPはHTMLのソースをベースとして、JSPタグ(<%~%>)を使ってJavaのコードを埋め込むことができます。

このため、ある程度HTMLを知っている人であれば、デザイン部分に簡単なJavaコードを埋め込んで画面を作るといったことが可能になってきます。

また、JSPがコンパイルを必要としないという点もサーブレットとの違いであり、JSPのメリットといえる部分です。

JSPは「.jsp」ファイルをそのままWebサーバに配置すれば、それだけで動作しますので、HTMLと同じように画面に修正を加えてWebサーバーにアップするだけで変更を反映できます。

サーブレットと比較したときに、開発が容易で、メンテナンス性にも優れ、パフォーマンスもサーブレットと変わりませんので、画面表示(デザイン)部分などには有効に活用できる技術といえます。


【JSPの動作イメージ】(初回アクセス時、およびJSPファイル更新時

※2回目以降のアクセスでは、生成済みのインスタンスを再利用します

JSPの動作イメージ




次回以降の記事では、JSPの基本的なコーディングについて紹介していきたいと思います。



関連記事:【Java】サーブレット(Java Servlet) 【Java】JSPの基本的な構文



【著者】

新田

JavaメインのWebアプリケーション開発に多く携わっています。
Javaの基本的な部分の紹介や、これまで経験したシステム開発手法、新しい技術についても紹介していこうと思います。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事
【Java】JSPでタグライブラリを使う(JSTL)

【Java】JSPでタグライブラリを使う(JSTL)

こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ

【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!

【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ

【Java】文字列の置き換え(String#format)!エスケープシーケンスのまとめも!!

【Java】文字列の置き換え(String#format)!エスケープシーケンスのまとめも!!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!Stringクラスformatメソッドの文字列整形【java.utilパッケージ】Formatterクラスfo

【Java】文字列格納後に変更可能!?StringBufferクラスとStringBuilderクラス!

【Java】文字列格納後に変更可能!?StringBufferクラスとStringBuilderクラス!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者にも✅、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!文字列を扱う3つのクラス【java.langパッケージ】java.langパッケージの文字列を扱うクラスにはS

【Java】値?変数?型??しっかり解説!『データ型(プリミティブ型と参照型)』

【Java】値?変数?型??しっかり解説!『データ型(プリミティブ型と参照型)』

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様