亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 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 以上的版本,好象沒這個要求)---否則,會提示編譯錯誤。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品女av网站| 亚洲精品久久久久久久久久久久久| 黄网动漫久久久| 国产一区二区美女视频| 欧美精品一区在线播放| 国产精品青青在线观看爽香蕉| 亚洲精品白浆高清久久久久久| 国产精品视频不卡| 欧美一区二区三区四区在线| 欧美另类在线观看| 亚洲国产成人一区| 日韩av大片在线| 精品国产91乱高清在线观看| 久久久久久亚洲精品不卡| 78色国产精品| 国产成人福利视频| 欧美性猛交xxxx免费看| 国产精品www| 在线观看日韩视频| 欧美国产一区二区三区| 亚洲欧洲在线看| 亚洲国产精品成人一区二区| 久久99国产综合精品女同| 欧美精品videosex牲欧美| 91精品久久久久久久久青青| 国产原创欧美精品| 成人黄色免费在线观看| 欧美激情精品久久久久久大尺度| 午夜欧美不卡精品aaaaa| 色综合五月天导航| 日韩最新中文字幕电影免费看| 国产日韩精品在线| 国产精品第10页| 欧美午夜精品久久久久久人妖| 国产精品尤物福利片在线观看| 欧美性受xxxx黑人猛交| 欧美另类在线观看| 日韩av片永久免费网站| 成人免费视频网址| 国内精品伊人久久| 激情久久av一区av二区av三区| 欧美日韩亚洲高清| 正在播放欧美一区| 欧美国产日韩中文字幕在线| 欧美激情xxxx| 国产精品激情av在线播放| 91情侣偷在线精品国产| 日韩一中文字幕| 最近2019中文免费高清视频观看www99| 欧美韩国理论所午夜片917电影| 91精品久久久久久久久久久久久久| 久久伊人91精品综合网站| 亚洲人成网站在线播| 欧美日韩一区二区三区在线免费观看| 久久99久久99精品中文字幕| 日本一区二区不卡| 久久91精品国产| 日韩欧美精品免费在线| 欧美国产精品日韩| 亚洲人成自拍网站| 欧美最顶级丰满的aⅴ艳星| 国产suv精品一区二区三区88区| 国产精品第10页| 91sao在线观看国产| 97成人超碰免| 欧洲永久精品大片ww免费漫画| 91精品国产高清久久久久久久久| 亚洲级视频在线观看免费1级| 精品视频在线播放色网色视频| 在线播放国产一区二区三区| 国产欧美精品一区二区三区介绍| 国产精品三级美女白浆呻吟| 日产精品久久久一区二区福利| 色偷偷偷亚洲综合网另类| 91精品视频观看| 成人免费福利在线| 欧美激情久久久久久| 欧美电影院免费观看| 亚洲qvod图片区电影| 91亚洲午夜在线| 狠狠干狠狠久久| 亚洲欧美国产va在线影院| 亚洲成人久久一区| 九色精品免费永久在线| 国产国语刺激对白av不卡| 精品免费在线视频| 全球成人中文在线| 久久99精品久久久久久青青91| 在线a欧美视频| 成人有码在线视频| 影音先锋欧美精品| 久久青草福利网站| 国产欧美精品一区二区三区介绍| 久久最新资源网| 国产丝袜高跟一区| 国产一区二中文字幕在线看| 久久99视频免费| 亚洲18私人小影院| 国产精品视频久| 日韩中文字幕在线看| 国产精品r级在线| 97精品欧美一区二区三区| 亚洲精品一区二区在线| 在线观看精品自拍私拍| 日韩高清免费观看| 日韩欧美福利视频| 中文字幕亚洲自拍| 中文字幕亚洲一区二区三区五十路| 国产日韩精品在线| 国产精品久久久久久久久久久新郎| 这里只有精品丝袜| 欧美激情性做爰免费视频| 国产一区二区三区中文| 国产91精品最新在线播放| 欧美日韩激情小视频| 青青久久av北条麻妃海外网| 久久久久久久久久久国产| 中文字幕久热精品在线视频| 亚洲图片在区色| 懂色aⅴ精品一区二区三区蜜月| 欧美日韩国产成人在线观看| 国产自产女人91一区在线观看| 中文字幕日韩精品在线| 久久人人97超碰精品888| 亚洲天堂影视av| 国产日韩专区在线| 久久国产天堂福利天堂| 亚洲国产小视频在线观看| 国产精品福利在线观看网址| 国产精品偷伦视频免费观看国产| 91沈先生在线观看| 精品视频在线播放免| 国产日韩中文字幕在线| 国产精品视频网站| 亚洲最大在线视频| 国产精品久久久91| 久久久这里只有精品视频| 国产精品视频网| 久久久爽爽爽美女图片| 成人激情av在线| 国产日韩欧美中文在线播放| www.久久久久久.com| 久久成人精品电影| 综合国产在线观看| 日韩在线观看免费全集电视剧网站| 亚洲缚视频在线观看| 精品国产一区二区三区四区在线观看| 国产精品国语对白| 国产精品久久久久久久久久久不卡| 91国产在线精品| 日韩精品在线视频观看| 热久久视久久精品18亚洲精品| 亚洲影影院av| 国产日韩欧美综合| 国产精品视频免费在线观看| 97在线看免费观看视频在线观看| 国内伊人久久久久久网站视频| 国产欧美日韩高清| 91精品久久久久久久久| 国产视频亚洲视频| 久久综合伊人77777尤物| 精品网站999www| 91av视频导航| 福利视频导航一区|