Servlet日記(2000/03/19)

本日の成果

 Tomcatの3.1βが出ていたので取ってきました。細々と変わっているようですし、Apacheとの共存の仕方のドキュメントが付いていたりします。着々と進んでいるようです。

 そろそろJSPで遊んでみようかと考えて試してみました。やっぱり最初はHello Worldでしょう。というわけで、

<html>
<head><title>Hello JSP</title></head>
<body>
<%@ page language="java" contentType="text/html; charser=Shift_JIS" %>
<%
        out.println("こんにちは! JSPを使っています。");
%>
</body>
</html>

というファイルを作ってWebブラウザからアクセスすると、最初はずいぶん時間がかかりますが、ちゃんと結果が表示されます。workディレクトリの下を見てみると、だいたいこんな感じのソースが自動生成されていました。よくわからないところもあるし、何だか大がかりなのですが。

package jsp.yamamotoWorks;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.util.Vector;
import org.apache.jasper.runtime.*;
import java.beans.*;
import org.apache.jasper.JasperException;

public class _0002fjsp_0002fyamamotoWorks_0002fhello_0002ejsphello_jsp_0 extends HttpJspBase {

    static {
    }
    public _0002fjsp_0002fyamamotoWorks_0002fhello_0002ejsphello_jsp_0( ) {
    }

    private static boolean _jspx_inited = false;

    public final void _jspx_init() throws JasperException {
    }

    public void _jspService(HttpServletRequest request, HttpServletResponse  response)
        throws IOException, ServletException {

        JspFactory _jspxFactory = null;
        PageContext pageContext = null;
        HttpSession session = null;
        ServletContext application = null;
        ServletConfig config = null;
        JspWriter out = null;
        Object page = this;
        String  _value = null;
        try {

            if (_jspx_inited == false) {
                _jspx_init();
                _jspx_inited = true;
            }
            _jspxFactory = JspFactory.getDefaultFactory();
            response.setContentType("text/html; charser=Shift_JIS");
            pageContext = _jspxFactory.getPageContext(this, request, response,
                        "", true, 8192, true);

            application = pageContext.getServletContext();
            config = pageContext.getServletConfig();
            session = pageContext.getSession();
            out = pageContext.getOut();

                out.write("<html>\r\n<head><title>Hello JSP</title></head>\r\n<body>\r\n");
                out.write("\r\n");
                        out.println("こんにちは! JSPを使っています。");
                out.write("\r\n</body>\r\n</html>\r\n");

        } catch (Exception ex) {
            if (out.getBufferSize() != 0)
                out.clear();
            pageContext.handlePageException(ex);
        } finally {
            out.flush();
            _jspxFactory.releasePageContext(pageContext);
        }
    }
}

 JSPはMS-ASPのJava版みたいなものかな〜と思っていましたが、JSPソースからServletのソースを自動生成して、コンパイルして実行するという発想がすごいです。まあ確かに、実行時の効率が上がるし、Javaのいろいろな資産も使えるのですが、それにしても・・・

本日の教訓

 JSPを使う最初の1歩は分かりました。いろいろなタグが他にもあるようなので、ぼつぼつ進めましょう。が、MS-ASPからCOMオブジェクトを使うように、JSPとJavaBeansの連携ができるようなのですが、それはずっと先になりそうですね ^^;

Servlet日記(2000/03/12) Servlet日記の目次 Servlet日記(2000/03/26)