Restarting in Java

          統計

          留言簿

          閱讀排行榜

          評論排行榜

          2005年2月25日 #

          編寫 "純HTML" jsp應用--學會使用 JSTL

          [學習筆記]**編寫 "純HTML" jsp應用--學會使用 JSTL**


          作者:Juniper_c
           
          剛開始用JSP做web應用的時候,象使用PHP,ASP一樣用JSP,在HTML代碼中夾雜著一大堆的 scriptlet---即java 代碼段。由于本人的“排版”技術還算可以,開始的時候覺得挺好,編寫“效率”高,調試又方便!

          到 了后來才知道---這是一種極其愚蠢的做法兒----JSP誕生的時候就已經明確與ASP,PHP劃清了界限,使用javaBean、Servlet可以 有效的將HTML中夾雜的java 代碼段剝離,然后包裝成一個可在多個頁面復用的“邏輯處理組件”---這是JSP相對于PHP,ASP的優越之處之 一。

          但 有時即使使用javabean + servlet,我們也不得不將“極少量”的 java代碼 嵌入到 HTML中----的確,有時你必須這樣:因為在 javabean中,你無法使用JSP中的隱含對象,比如 request, session,response等.

          使用Servlet雖然可以使用JSP的對象,但卻不能象javaBean靈活地插入到 html 中--
          所以,Tag(標簽) 就出現了(可以使用所有的JSP隱含對象),它的出現徹底解決了這個問題,可以讓你編寫出“純HTML”的JSP頁碼---由此帶來的好處自然不言而喻:更高的可維護性、更高的組件復用效率、更易維護的HTML頁面````

          小弟不才,剛剛開始學JSTL,覺得這個東東真的很不錯!很想讓更多的 初學者 知道這個,并能應用到實際的web開發中。
          下面,就開始編寫我們的第一個 Tag!

          **下面是使用了簡單Tag的JSP文件,運行結果是顯示當前時間:

          <%@ page contentType="text/html;charset=gb2312" %>
          <html><body>
          <%@taglib uri="/tags" prefix="visa"%>
          現在時間是:<visa:date/>
          </body></html>

          很明顯,使用了tag的JSP頁清爽了許多---如果將數據庫操作等一些復雜功能也封裝進去的話,tag的優勢就更明顯了!

          **環境:win2000 server + Tomcat5.019 + j2sdk1.42 + SQLServer 2k
          **開發一個Tag,需要編寫2個主要文件:
          1-標簽處理器(一個類servlet的java類)
          2-標簽描述符(一個XML風格的tld文件)
          完成這兩個文件,就可以在WEB應用中部署、應用了。

          好了,下面我們就開始做吧!

          1-編寫tag處理器:datetag.java

          它的作用就象一個Servlet,接受來自客戶端的請求,但它卻可以象javaBean一樣在JSP中方便調用。
          package tag;

          import java.util.Date;
          import javax.servlet.jsp.*;
          import javax.servlet.jsp.tagext.*;

          public class datetag extends TagSupport{

           public int doStartTag() throws JspException{
            Date dte=new Date();
            try{
            JspWriter out=pageContext.getOut();
            out.print(dte);
             }
             catch(java.io.IOException e)
             {throw new JspTagException(e.getMessage());}
           return SKIP_BODY;
          }
          }
          用 javac編譯之后,就得到了 datetag.class文件了,將其放在 xxx\WEB-INF\classes\tag 目錄下。

          2-編寫tag庫描述符:tags.tld
          比較容易看出,<tag></tag>部分有點象servlet mapping的配置--這里配置的是tag的名字與tag類之間的映射。

          <?xml version="1.0" encoding="ISO-8859-1"?>
          <taglib>
          <tlib-version>1.0</tlib-version>
          <jsp-version>1.2</jsp-version>

          <tag>
           <name>date</name>
           <tag-class>tag.datetag</tag-class>
           <body-content>empty</body-content>
          </tag>
          </taglib>
          將tags.tld保存在xxx\WEB-INF\ 目錄下。

          3-配置你的web.xml:
          配置web.xml,注冊你的標簽庫:在web.xml的 <web-app>與</web-app>之間添加:
          在這里注冊你的自定義標簽符,在JSP中的引用名為:/tags
          <taglib>

          <taglib-uri>/tags</taglib-uri>
          <taglib-location>/WEB-INF/tags.tld</taglib-location>

          </taglib>

          4-開始在JSP中使用!
          因為已經在web.xml中注冊過,通過 /tags 引用你的標簽庫;
          prefix的作用就象<jsp:useBean/>中的 id,只是作為一個標志(可任意定義)
          <visa:date/> 很明顯,通過調用date,就等于調用了 datetag.class :

          <%@ page contentType="text/html;charset=gb2312" %>
          <html><body>
          <%@taglib uri="/tags" prefix="visa"%>
          現在時間是:<visa:date/>
          </body></html>


          **相信到了這里,有人就有了疑問了:為了使用一個Tag,我就做了這么多的“多余”工作(編寫tld,修改web.xml,還要重啟tomcat),值得嗎?!

          ---答案是:這是很值得的!
          1、如果將比較復雜的邏輯功能封裝進Tag,它就具有比Servlet,javaBean更高的靈活性,更多的優點,更易擴展,更易維護---徹底分離表示層與邏輯層!

          2、因為Tag的功能并非只是這一些,還有更多高級功能---值得去學習!

          ****
          這只是一個很簡單的應用,當然,你會有很多的“迷惑點”,這是正常的---在TAG中有一些獨有的特性,想完全學會TAG并不是件簡單的事情。
          --所以,在這里,我向大家推薦一本好書:電子工業出版社的《jsp標志庫編程指南》(英文名:《Professional JSP Tag Libraries》)


          PS: 使用JSTL配合javabean,servlet還可以有效保護你的源碼哦 ---- 因為,你可以向你的客戶交付不含有java 源代碼的web應用,因為,所有的 java代碼 都已經被編譯成 *.class了    *^_^*

          [注 意]:針對 Tomcat 5.0x以下的版本----如:Tomcat 4.0x:要編譯標簽處理器,必須將你的 servlet.jar(在% TOMCAT_HOME%\common\lib下面) 放進環境變量 CLASSPATH 中---(如果是 tomcat5.0x 以上的版本,好象 沒這個要求)---否則,會提示編譯錯誤。
           
          整理發布:Umbrella
          摘自:CnJSP論壇
          相關鏈接:http://www.cnjsp.org/cnjbb/showthread.jsp?forumID
          =3&rootID=37656&announceID=37656

          posted @ 2005-02-25 18:28 Yang Fan 閱讀(242) | 評論 (0)編輯 收藏

          如何成為一個成功的Jsp程序員

          如何成為一個成功的Jsp程序員?

          作者:轉貼
           
          一 個普通的錯誤是把JSP當作簡化的 Java。它不是,(事實上, JSP 是簡化的 servlets 。)程序員通常試著沒有學習要求的支持技巧而  直接學習 JSP 。
          JSP 是一個銜接技術,并且成功地連接你需要理解的另外的技術。如果你已經
          知道 Java,HTML 和 Javascript, 這意味著 JSP 將確實是簡單的。 

          需要成為一個成功的 JSP 程序員可以參考這個時間表。請注意下列: 

          *忽略你已經熟悉的步驟。 
          *訓練的時間只是代表學習好足夠的基礎時間,這樣才能轉移到下一步。 

          1、建立并且理解你的Web Server。 
          因為Apache 是免費的并且在大多數平臺上工作,為訓練目的推薦 Apache。 
          安裝時間:2 天。 


          2、保證你理解 HTML / XHTML 。 
          你 將需要了解html基礎, 特別是 HTML 布局中的table的使用。XHTML 不久將
          代替 HTML ,學習 XHTML 的基礎是一個好主意。 許多程序員通過 HTML IDE
          學習 HTML ( 集成開發環境 ) 。因為大多數 HTML IDE產生混亂的HTMl語法,
          所以花時間學習手工 寫作html是很有必要的。因 為你將會使用 JSP 和 HTML
           混合編程,精通HTML語法是重要的。所以,你必須能流利地寫 HTML 。 
          訓練時間:2 ~ 4 個星期。 


          3、開始學習 Java 。 
          開 始學習 Java 1.4 理解 Java 基礎是很重要的。不用擔心學習Swing或 Java
           的圖形方面,因為在JSP 中你不會使用這些特征。集 中精力 在 Java 工作的
          細節,學習 Java 的邏輯,也在 Java Bean上花時間。學習Applet是好的, 但
          是就象Swing,  JSP 的大多數應用將不使用小程 序。 
          訓練時間:3 ~ 6 個星期。 


          3、學習 JavaScript 
          學習怎么將 JavaScript在HTML中驗證輸入的Form元素。也學習 JavaScript怎
          么能在一 HTML 頁以內修改Form的元素。最后要求你能從一 
          HTML 頁內的事件中觸發 JavaScript Function。 
          訓練時間:一~ 2 個星期。 


          4、學習并且理解你的Web Server的更好的細節。 
          熟悉Web Server的特征,這是很重要的。 
          訓練時間:2 天。 


          5、建立你的 JSP Server 
          我 推薦以Tomcat開始。它可以很好地運行JSP程序。當你不能在生產使用Tomcat
          時,學習盡可能多的知識以便于更好的運行程序。另外,  許多 JSP 程序員使用
          Tomcat。因此當你遇到一個問題時,你將容易發現幫助。 
          安裝時間:一~ 2 天。 


          6、開始學習 JSP 。 
          基 本的 JSP 學習通過的步驟 1到步驟6可以完成, 然后使用 JSP 對象和腳本寫 
          JSP 程序來聯系。學習 JSP 的另外一個方面可以學習怎么創建一個分布式的應用
          程序。 
          訓練時間:4 ~ 6 個星期。 


          7、學習更多的 JSP server。 
          沒有關于更多的 JSP Server當然也可以運行jsp程序。然而, 許多 JSP server都
          由自己特殊的特征,可以讓你更好的理解你的JSP 工程。 
          學習更多的Jsp server如何處理jsp程序是有必要的。同樣也可以優化你的 JSP
          應用程序,并且使之運行得更快而不出任何問題。 
          訓練時間:2 ~ 7 天。 


          8、 學習 JDBC 。 
          JSP  大多數應用將使用數據庫,JDBC 被用于數據庫連接。經常忽略的一個事實就
          是,每個 JDBC Driver 所支持的東西是相當不同的。了 解并熟悉 在jsp工程上被使
          用的 JDBC driver的細節是很重要的。(有時這部分的學習被包含在前面 Java 或
          JSP的學習中了 。) 
          訓練時間:1~ 2 個星期。 

          到 現在,你已經成為了熟練的 JSP 程序員。仍然有很多需要學習,你可以考慮擴展
          你的知識比如 DHTML ,  XML ,java證書, JSP Tag Libraries 或  Servlets ,
          看你想要造什么類型的網站而決定了。 

          這 些訓練是JSP 的核心。你不必都學習上面所有的, 取決于你在工程中分配到什么任
          務和你已經有什么知識。但是這是我成功地訓練程序員 的時間表。關鍵的 單元是時間。
          平均的說, 5 個月時間確實能夠訓練一個人 ( 從開始到完成 ) 成為一個對jsp熟悉程序員。5 個月時間似乎很長,但要成為一個資深 的WEB程序員所學的東西遠遠不止這一些。 

          也許你認為這樣學習一種語言花費的時間太長了,因為學 ASP 會更快、時間會更短。
           但是學習 ASP 不需要學習java的。

          相關鏈接:http://www.cnjsp.org/cnjbb/showthread.jsp?forumID=
          3&rootID=5749&announceID=5749

          posted @ 2005-02-25 17:36 Yang Fan 閱讀(223) | 評論 (0)編輯 收藏

          僅列出標題  
          主站蜘蛛池模板: 章丘市| 府谷县| 东台市| 横峰县| 澄城县| 定州市| 揭东县| 吐鲁番市| 宁阳县| 施秉县| 拉萨市| 汝南县| 嘉兴市| 抚州市| 宁国市| 河间市| 商洛市| 囊谦县| 保山市| 威海市| 疏附县| 沂南县| 锡林浩特市| 河津市| 靖边县| 诸城市| 邛崃市| 五原县| 郓城县| 青河县| 岢岚县| 仪陇县| 和田市| 嫩江县| 来凤县| 内黄县| 宜昌市| 原阳县| 平度市| 苍南县| 新疆|