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

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

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

    Restarting in Java

    統計

    留言簿

    閱讀排行榜

    評論排行榜

    編寫 "純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 on 2005-02-25 18:28 Yang Fan 閱讀(234) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲一区二区三区国产精华液| 久久99亚洲网美利坚合众国| 中文字幕无码亚洲欧洲日韩| 国产精品久久久久久久久免费| 五月天网站亚洲小说| 久久国产精品免费观看| 久久精品国产亚洲av成人| 久草免费福利视频| 久久久综合亚洲色一区二区三区| a级大片免费观看| 亚洲av永久无码精品国产精品 | 2020天堂在线亚洲精品专区| 国产成人免费在线| 亚洲综合久久一本伊伊区| 免费爱爱的视频太爽了| 国产亚洲精品AAAA片APP| 亚洲国产精品成人久久蜜臀| 一级毛片免费播放视频| 亚洲色WWW成人永久网址| 久久国产精品免费观看| 亚洲免费观看网站| 小小影视日本动漫观看免费| 香蕉视频在线观看免费| 亚洲国产精品久久久天堂| 日本免费人成视频在线观看| 亚洲国产成人久久综合一区| 日韩在线免费电影| 一级做a免费视频观看网站| 亚洲成av人片在线观看无码不卡| 91av免费观看| 亚洲av无码兔费综合| 中文字幕亚洲一区二区va在线| 国产免费拔擦拔擦8X高清在线人| 亚洲系列国产精品制服丝袜第| 成年女人毛片免费播放视频m| 无码免费又爽又高潮喷水的视频| 久久亚洲国产欧洲精品一| 中文字幕影片免费在线观看| xvideos永久免费入口| 亚洲综合无码一区二区三区| 国产成人无码区免费A∨视频网站|