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

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

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

    Restarting in Java

    統(tǒng)計(jì)

    留言簿

    閱讀排行榜

    評論排行榜

    2005年2月25日 #

    編寫 "純HTML" jsp應(yīng)用--學(xué)會(huì)使用 JSTL

    [學(xué)習(xí)筆記]**編寫 "純HTML" jsp應(yīng)用--學(xué)會(huì)使用 JSTL**


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

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

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

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

    小弟不才,剛剛開始學(xué)JSTL,覺得這個(gè)東東真的很不錯(cuò)!很想讓更多的 初學(xué)者 知道這個(gè),并能應(yīng)用到實(shí)際的web開發(fā)中。
    下面,就開始編寫我們的第一個(gè) Tag!

    **下面是使用了簡單Tag的JSP文件,運(yùn)行結(jié)果是顯示當(dāng)前時(shí)間:

    <%@ page contentType="text/html;charset=gb2312" %>
    <html><body>
    <%@taglib uri="/tags" prefix="visa"%>
    現(xiàn)在時(shí)間是:<visa:date/>
    </body></html>

    很明顯,使用了tag的JSP頁清爽了許多---如果將數(shù)據(jù)庫操作等一些復(fù)雜功能也封裝進(jìn)去的話,tag的優(yōu)勢就更明顯了!

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

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

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

    它的作用就象一個(gè)Servlet,接受來自客戶端的請求,但它卻可以象javaBean一樣在JSP中方便調(diào)用。
    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>部分有點(diǎn)象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,注冊你的標(biāo)簽庫:在web.xml的 <web-app>與</web-app>之間添加:
    在這里注冊你的自定義標(biāo)簽符,在JSP中的引用名為:/tags
    <taglib>

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

    </taglib>

    4-開始在JSP中使用!
    因?yàn)橐呀?jīng)在web.xml中注冊過,通過 /tags 引用你的標(biāo)簽庫;
    prefix的作用就象<jsp:useBean/>中的 id,只是作為一個(gè)標(biāo)志(可任意定義)
    <visa:date/> 很明顯,通過調(diào)用date,就等于調(diào)用了 datetag.class :

    <%@ page contentType="text/html;charset=gb2312" %>
    <html><body>
    <%@taglib uri="/tags" prefix="visa"%>
    現(xiàn)在時(shí)間是:<visa:date/>
    </body></html>


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

    ---答案是:這是很值得的!
    1、如果將比較復(fù)雜的邏輯功能封裝進(jìn)Tag,它就具有比Servlet,javaBean更高的靈活性,更多的優(yōu)點(diǎn),更易擴(kuò)展,更易維護(hù)---徹底分離表示層與邏輯層!

    2、因?yàn)門ag的功能并非只是這一些,還有更多高級功能---值得去學(xué)習(xí)!

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


    PS: 使用JSTL配合javabean,servlet還可以有效保護(hù)你的源碼哦 ---- 因?yàn)椋憧梢韵蚰愕目蛻艚桓恫缓衘ava 源代碼的web應(yīng)用,因?yàn)椋械?nbsp;java代碼 都已經(jīng)被編譯成 *.class了    *^_^*

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

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

    如何成為一個(gè)成功的Jsp程序員

    如何成為一個(gè)成功的Jsp程序員?

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

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

    *忽略你已經(jīng)熟悉的步驟。 
    *訓(xùn)練的時(shí)間只是代表學(xué)習(xí)好足夠的基礎(chǔ)時(shí)間,這樣才能轉(zhuǎn)移到下一步。 

    1、建立并且理解你的Web Server。 
    因?yàn)锳pache 是免費(fèi)的并且在大多數(shù)平臺上工作,為訓(xùn)練目的推薦 Apache。 
    安裝時(shí)間:2 天。 


    2、保證你理解 HTML / XHTML 。 
    你 將需要了解html基礎(chǔ), 特別是 HTML 布局中的table的使用。XHTML 不久將
    代替 HTML ,學(xué)習(xí) XHTML 的基礎(chǔ)是一個(gè)好主意。 許多程序員通過 HTML IDE
    學(xué)習(xí) HTML ( 集成開發(fā)環(huán)境 ) 。因?yàn)榇蠖鄶?shù) HTML IDE產(chǎn)生混亂的HTMl語法,
    所以花時(shí)間學(xué)習(xí)手工 寫作html是很有必要的。因 為你將會(huì)使用 JSP 和 HTML
     混合編程,精通HTML語法是重要的。所以,你必須能流利地寫 HTML 。 
    訓(xùn)練時(shí)間:2 ~ 4 個(gè)星期。 


    3、開始學(xué)習(xí) Java 。 
    開 始學(xué)習(xí) Java 1.4 理解 Java 基礎(chǔ)是很重要的。不用擔(dān)心學(xué)習(xí)Swing或 Java
     的圖形方面,因?yàn)樵贘SP 中你不會(huì)使用這些特征。集 中精力 在 Java 工作的
    細(xì)節(jié),學(xué)習(xí) Java 的邏輯,也在 Java Bean上花時(shí)間。學(xué)習(xí)Applet是好的, 但
    是就象Swing,  JSP 的大多數(shù)應(yīng)用將不使用小程 序。 
    訓(xùn)練時(shí)間:3 ~ 6 個(gè)星期。 


    3、學(xué)習(xí) JavaScript 
    學(xué)習(xí)怎么將 JavaScript在HTML中驗(yàn)證輸入的Form元素。也學(xué)習(xí) JavaScript怎
    么能在一 HTML 頁以內(nèi)修改Form的元素。最后要求你能從一 
    HTML 頁內(nèi)的事件中觸發(fā) JavaScript Function。 
    訓(xùn)練時(shí)間:一~ 2 個(gè)星期。 


    4、學(xué)習(xí)并且理解你的Web Server的更好的細(xì)節(jié)。 
    熟悉Web Server的特征,這是很重要的。 
    訓(xùn)練時(shí)間:2 天。 


    5、建立你的 JSP Server 
    我 推薦以Tomcat開始。它可以很好地運(yùn)行JSP程序。當(dāng)你不能在生產(chǎn)使用Tomcat
    時(shí),學(xué)習(xí)盡可能多的知識以便于更好的運(yùn)行程序。另外,  許多 JSP 程序員使用
    Tomcat。因此當(dāng)你遇到一個(gè)問題時(shí),你將容易發(fā)現(xiàn)幫助。 
    安裝時(shí)間:一~ 2 天。 


    6、開始學(xué)習(xí) JSP 。 
    基 本的 JSP 學(xué)習(xí)通過的步驟 1到步驟6可以完成, 然后使用 JSP 對象和腳本寫 
    JSP 程序來聯(lián)系。學(xué)習(xí) JSP 的另外一個(gè)方面可以學(xué)習(xí)怎么創(chuàng)建一個(gè)分布式的應(yīng)用
    程序。 
    訓(xùn)練時(shí)間:4 ~ 6 個(gè)星期。 


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


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

    到 現(xiàn)在,你已經(jīng)成為了熟練的 JSP 程序員。仍然有很多需要學(xué)習(xí),你可以考慮擴(kuò)展
    你的知識比如 DHTML ,  XML ,java證書, JSP Tag Libraries 或  Servlets ,
    看你想要造什么類型的網(wǎng)站而決定了。 

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

    也許你認(rèn)為這樣學(xué)習(xí)一種語言花費(fèi)的時(shí)間太長了,因?yàn)閷W(xué) ASP 會(huì)更快、時(shí)間會(huì)更短。
     但是學(xué)習(xí) ASP 不需要學(xué)習(xí)java的。

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

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

    主站蜘蛛池模板: 麻豆精品不卡国产免费看| 国产成人精品亚洲| 18以下岁毛片在免费播放| 国精无码欧精品亚洲一区| fc2免费人成在线视频| 国产精品亚洲视频| 成年女人A毛片免费视频| 亚洲成AV人片一区二区| 曰批全过程免费视频播放网站 | 免费在线看片网站| 无码色偷偷亚洲国内自拍| 四虎永久免费地址在线观看| 99xxoo视频在线永久免费观看| 5g影院5g天天爽永久免费影院| 亚洲黄色三级网站| 中文字幕无码成人免费视频| 亚洲精品天堂成人片AV在线播放| 国产成人一区二区三区免费视频| 日本高清不卡中文字幕免费| 亚洲日韩精品A∨片无码| 日韩人妻一区二区三区免费| 67pao强力打造67194在线午夜亚洲| 97性无码区免费| 国产精品久久久久久亚洲小说| 伊伊人成亚洲综合人网7777| 免费无码成人AV在线播放不卡 | 国产精品日本亚洲777| 青青草原亚洲视频| 五月婷婷在线免费观看| 亚洲高清国产AV拍精品青青草原| 4虎1515hh永久免费| 亚洲国产午夜精品理论片在线播放| 亚洲国产精品第一区二区三区| 男人的天堂网免费网站 | 一级毛片aa高清免费观看| 亚洲国产精品不卡在线电影| 国产免费福利体检区久久| 亚洲欧洲日韩国产综合在线二区| 午夜a级成人免费毛片| a级黄色毛片免费播放视频| 亚洲中文字幕无码久久|