<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

    主站蜘蛛池模板: 久久亚洲精品AB无码播放| 午夜精品免费在线观看| 亚洲毛片一级带毛片基地| 国产午夜亚洲精品理论片不卡| 久久精品免费全国观看国产| 日本免费在线中文字幕| 无遮挡免费一区二区三区| 亚洲中文精品久久久久久不卡| 中文字幕亚洲综合精品一区| 国产亚洲综合色就色| 亚洲日韩VA无码中文字幕| 日韩中文字幕免费| 国产精品美女午夜爽爽爽免费| 精品熟女少妇av免费久久| 永久免费av无码网站yy| 精品国产污污免费网站入口在线| 国产成人亚洲精品无码AV大片| 亚洲综合国产成人丁香五月激情 | 亚洲AV成人影视在线观看| 亚洲免费视频网站| 亚洲AV无码码潮喷在线观看| 国产亚洲日韩在线三区| 亚洲美女高清一区二区三区 | 久久亚洲国产成人影院| 亚洲精品中文字幕麻豆| 自怕偷自怕亚洲精品| 亚洲日本va午夜中文字幕一区| 亚洲av无码成h人动漫无遮挡| 亚洲人成网站在线播放vr| 国产成人精品日本亚洲| 国产成A人亚洲精V品无码性色| 亚洲色WWW成人永久网址| 亚洲狠狠婷婷综合久久久久| 亚洲av日韩av无码黑人| 蜜芽亚洲av无码精品色午夜| 亚洲视频在线免费看| 亚洲乱码卡一卡二卡三| 亚洲a视频在线观看| 亚洲精品自偷自拍无码| 国产精品久久久久久亚洲小说| 一进一出60分钟免费视频|