Tips

JSP/サーブレット緊急学習記 1日目

JSP/サーブレット緊急学習記 1日目

以前作成した記事を公開するのを忘れていたので公開します。(ごめんなさい…)

LAMPを勉強しながら連載記事を書いていたのですが…
急遽JSP/サーブレットを学ぶことになったので、またまた日報がてら書いていきます。

webの簡単な仕組みについてはこちらで御確認ください。

JSPとサーブレットを使用する利点

JSPとサーブレットを使用する利点として以下の点が挙げられます。

  • 環境を選ばない
  • 原則windows,Mac,LINUXどのOS上でも動作可能

  • 処理が速い
  • JSPとサーブレットは所謂コンパイル言語であり、コンパイルした状態でサーバ上に配置するため即実行可能です。
    それ故、処理速度が圧倒的に高速です。
    さらに一旦呼び出されたプログラムはメモリ上に残るので、次回以降の呼び出しも高速です。

  • ユーザ数の増加に対応
  • 例えばCGIを使用する場合は、ユーザの増加(=リクエストの増加)に伴い、個別にプロセスが立ち上がります。
    JSPとサーブレットを使用した場合は、プロセスは一つしか立ち上がりません。
    そのプロセスの中でリクエストに数だけ、JSPやサーブレットが実行されます。

JSPとサーブレットの使い方

JSPとサーブレットって何故2つ併せて使用することが多いのでしょうか。
そしてこの2つはどのように違うのでしょうか?

結論から言うと、できることはほとんど同じですが少しだけ異なります。

  • JSPで実現できることは、すべてサーブレットで実現できます。
  • サーブレットで実現できることは、ほとんどJSPで実現できます。

実はサーブレットの方が少しだけ多いです。

また「見た目」が異なります。

  • JSP
  • HTMLの中にjavaプログラムを埋め込む。

    <html>
    	<head>
    		<title>さんぷる1</title>
    	</head>
    
    	<body>
    		<% out.print("<p>てすと1</p>"); %>
    	</body>
    </html>
    
  • サーブレット
  • javaプログラムの中からHTMLを出力。

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    public class test extends HttpServlet {
    	public void doGet(HttpServletRequest request, HttpServletResponse response) {
    		throws IOException, ServletException {
    
    			response.setContentType("text/html; charset=Shift_JIS");
    			PrintWriter out = response.getWriter();
    
    			out.println(createHTML("<html>"));
    			out.println(createHTML("<head>"));
    			out.println(createHTML("<title>さんぷる1</title>"));
    			out.println(createHTML("</head>"));
    			out.println(createHTML("<body>"));
    			out.println(createHTML("<p>てすと1</p>"));
    			out.println(createHTML("</body>"));
    			out.println(createHTML("</html>"));
    		}
    	}
    }
    

上記を比較すると一目瞭然ですが、これらは用途によって使い分けます。
例えば、静的なHTMLをたくさん作りたい(出力)させたいのであれば、JSPの方が向いていることはわかりますよね?
javaで記述してしまうとコード量が増加し、複雑化することによりメンテナンス性が落ちるからです。
逆にwebページの骨組み以外の事をHTML内に記述してしまうと、構造を確認しにくくなるためサーブレットの方が向いています。

つまり、表示関係の機能はJSPで行い、処理関係の機能はサーブレットで行うということになります。
だから2つセットで扱われることが多いのですね。

コンパイル

JSPとサーブレットは各々どのようにコンパイルを行うのか確認しましょう。

1

  • JSP
  • 作成したファイルを直接サーバ上に置く

  • サーブレット
  • 作成したソースコードを手動でコンパイルし、実行ファイルをサーバに置く

サーブレットの方がJSPよりも作業が少ないのですが、2回目以降のレスポンスの速度はほとんど変わりません。

それでは初日はここまでで。

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search