感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

洋書で技術を学ぶ[JBoss at work]

<スポンサーリンク>

JSPサーブレットはコンテナ無しでは動かない。
they must implement special interfaces and run "inside" the container.

JBossは選択に合わせて、サーブレットコンテナを統合することができる。
JBoss allows you to integrate the servlet container of your choice.

JBossにはデフォルトで、tomcatがSARとしてデプロイされている。
C:\jboss-3.2.1_tomcat-4.1.24\server\default\deploy\jbossweb-tomcat.sar
の中にある。

Tomcatのポートを変更するにはserver.xmlを編集する。
デフォルトのポートは8080である。

JBossのモジュールデザインのおかげで、他のサーブレットコンテナへの変更も容易だ。
Jettyなんかは他の選択肢としてアリエル。

J2EEには3つの層がある。
・プレゼンテーション層
サーブレットJSPなど、UIを含む層のこと。

・ビジネス層
ビジネスロジックがある層。
EJBとかMDBが入る。

・永続化層
長期間保持されるデータが保持される層。
永続化層には一般的にRDBも含むが、データはXMLシリアライズされたJavaBeans、ASCIIテキストファイルなどもある。

正しく開発されたアプリケーションでは、それぞれのコンポーネントは高い凝集力、ゆるい結合度が実現されている。
In a well-engineered application, components in each tier are "highly cohesive" and "loosely coupled".

コンポーネントは層をまたいで依存しないようにしなければならない。

明確な関心の分離は、システム開発において望ましいことである。
A clean separation of concerns is what we are hoping to accomplish.

・HTMLの例

<html>
<body>
<table border="1">
    <tr>
        <th bgcolor="cccccc" align="left">Name</th>
        <th bgcolor="cccccc" align="left">Age</th>
        <th bgcolor="cccccc" align="right">Job</th>
    </tr>
    
    <tr>
        <td align="left">Mizky</td>
        <td align="legt">28</td>
        <td align="right">programmer</td>
    </tr>
    
    <tr>
        <td align="left">Takaky</td>
        <td align="left">25</td>
        <td align="right">add</td>
    </tr>
    
    <tr>
        <td align="left">yuka</td>
        <td align="left">25</td>
        <td align="right">nurce</td>
    </tr>
</body>
</html>

JSPのTaglibはJavaのクラスにコンパイルされる。
そのクラスがHTMLを出力する。

同じ物をJSTL(JSP Standard Tag Library)を使って記述すると以下のようになる。

http://sourceforge.jp/projects/sfnet_webolab/downloads/0.9/lib/jstl.jar/

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%

    String[][] nameList = {
            {"Mizky", "28", "Proggrammer"},
            {"Takaky", "25", "add"},
            {"yuka", "25", "nurse"}
    };
    
    pageContext.setAttribute("nameList", nameList);
%>

<html>
<body>
    <table border="1">
        <tr>
            <th bgcolor="cccccc" align="left">Name</th>
            <th bgcolor="cccccc" align="left">Age</th>
            <th bgcolor="cccccc" align="right">Job</th>
        </tr>
        
        <c:forEach items='${nameList}' var='name'>
           <tr>
           <td align="left">${car[0]}</td>
           <td align="left">${car[1]}</td>
           <td align="right">${car[2]}</td>
        </c:forEach>
    </table>
</body>
</html>

読んだ本

感謝のプログラミング

今回で感謝のプログラミングは【245時間目】
10000時間まで、あと【9755時間】