国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:19:05
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

剛開始用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,覺得這個東東真的很不錯!很想讓更多的 初學者 知道這個,并能應用到實際的中。
下面,就開始編寫我們的第一個 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 以上的版本,好象沒這個要求)---否則,會提示編譯錯誤。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临清市| 雅江县| 凭祥市| 望城县| 临武县| 达州市| 寻甸| 滕州市| 封丘县| 枝江市| 六盘水市| 喀喇沁旗| 大同县| 礼泉县| 衡阳县| 嘉善县| 和硕县| 轮台县| 闸北区| 香河县| 湘潭市| 龙州县| 廉江市| 阿勒泰市| 湖南省| 久治县| 巴楚县| 琼结县| 仙桃市| 静宁县| 武平县| 都江堰市| 体育| 津市市| 东山县| 乌苏市| 临夏市| 曲阳县| 巴林左旗| 洪泽县| 杭锦旗|