JavaでサーバサイドのWebサーバを構築する(2) - ServletとJSP
Servletとは
Java でのサーバサイドプログラミングと言えば Servlet です。
Servlet は簡単に言えば HTTP リクエストを受け取り、何らかの処理をして HTTP レスポンスを返す Java のクラスです。
具体的には、Tomcat が初めて HTTP リクエストを受けた際に、該当の Servlet クラスがインスタンス化され、HttpServlet クラスの service() メソッドが呼ばれ、該当する doXxx() メソッドが呼ばれます。
doXxx() は例えば GET リクエストであれば doGet() が、POST リクエストであれば doPost() が呼ばれます。
つまりリクエストのメソッドに応じて、プログラムを記述するわけです。
また、この時 HttpServletRequest と HttpServletResponse のオブジェクトが渡されます。
そして処理を終えたら HttpServletResponse オブジェクトの getWriter() メソッドを使用して PrintWriter のインスタンスを生成し、PrintWriter オブジェクトの println() メソッドを使用して HTML を生成します。
つまり、Servlet は Java のクラス内に生成する HTML を記述することになります。
しかし、Servlet では1ページのサイズが大きくなればなるほど、出力する HTML の記述が分かりにくく、記述や把握に手間と時間がかかります。
JSPとは
そこで、逆に HTML 内に Java のコードを埋め込むという方法を取ったのが JSP になります。
JSP は実行時に JSP エンジンにより Servlet のソースコードに変換され、実際には Servlet として実行されます。
JSP 内に Java のソースコードを埋め込む場合、<% %> で囲みます。
これをスクリプトレットと言います。
また、HTML に出力するための式 <%= %> や、宣言である <%! %> などもあります。
その他、JSP には EL 式や JSTL、タグファイルなど便利な機能が満載されており、中、小規模なサイトでは JSP のみで作成できます。
以降の章では主にこの JSP を使用した Web サーバを構築する方法を記載します。
公開日:2011年04月09日
最終更新日:2024年01月17日