<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

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

    剛開始用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文件,運行結果是顯示當前時間:

    taglib uri="/tags" prefix="visa"%>]]>
    現在時間是:
    很明顯,使用了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
    比較容易看出,部分有點象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的 之間添加:
    在這里注冊你的自定義標簽符,在JSP中的引用名為:/tags

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

    4-開始在JSP中使用!
    因為已經在web.xml中注冊過,通過 /tags 引用你的標簽庫;
    prefix的作用就象中的 id,只是作為一個標志(可任意定義)
     很明顯,通過調用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 以上的版本,好象沒這個要求)---否則,會提示編譯錯誤。

    ]]>

    posted on 2006-10-08 14:21 都市淘沙者 閱讀(311) 評論(0)  編輯  收藏 所屬分類: JSP/PHP

    主站蜘蛛池模板: 成人激情免费视频| 中文字幕免费在线看线人| 免费国产真实迷j在线观看| 亚洲精品无码专区| 暖暖日本免费在线视频| 亚洲国产精品无码久久九九大片| 四虎免费大片aⅴ入口| 久久亚洲精品无码av| 亚洲av无码成人精品区在线播放 | 黄色片在线免费观看| 亚洲乱码中文论理电影| 99久久99久久精品免费看蜜桃| 亚洲国产成人九九综合| 在线观看视频免费国语| 杨幂最新免费特级毛片| 亚洲中文久久精品无码| 黄页免费在线观看| 亚洲色欲色欲综合网站| 永久免费毛片在线播放| 国产午夜亚洲精品不卡免下载| 亚洲精品视频久久久| 久9这里精品免费视频| 亚洲六月丁香六月婷婷色伊人 | 亚洲欧洲日产国码久在线| 免费在线观看视频a| 国产精品免费观看调教网| 亚洲国产超清无码专区| 日韩一级免费视频| a级毛片免费全部播放无码| 亚洲欧洲日本国产| 伊在人亚洲香蕉精品区麻豆| 日本免费A级毛一片| youjizz亚洲| 国产成人99久久亚洲综合精品 | 亚洲国产高清在线| 国产成人免费网站在线观看| 三年片免费观看大全国语| 亚洲国产成人久久99精品| 亚洲XX00视频| 精品久久久久久久久免费影院| yellow免费网站|