程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 編寫 純HTML jsp應用--學會使用 JSTL

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

編輯:關於JSP

剛開始用jsp(SUN企業級應用的首選)做web應用的時候,象使用PHP,ASP一樣用jsp(SUN企業級應用的首選),在HTML代碼中夾雜著一大堆的 scriptlet---即java 代碼段。由於本人的“排版”技術還算可以,開始的時候覺得挺好,編寫“效率”高,調試又方便!

到了後來才知道---這是一種極其愚蠢的做法兒----jsp(SUN企業級應用的首選)誕生的時候就已經明確與ASP,PHP劃清了界限,使用javaBean、Servlet可以有效的將HTML中夾雜的java 代碼段剝離,然後包裝成一個可在多個頁面復用的“邏輯處理組件”---這是jsp(SUN企業級應用的首選)相對於PHP,ASP的優越之處之一。

但有時即使使用javabean + servlet,我們也不得不將“極少量”的 java代碼 嵌入到HTML中----的確,有時你必須這樣:因為在 javabean中,你無法使用jsp(SUN企業級應用的首選)中的隱含對象,比如 request,session,response等.

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

小弟不才,剛剛開始學JSTL,覺得這個東東真的很不錯!很想讓更多的 初學者 知道這個,並能應用到實際的web開發中。
下面,就開始編寫我們的第一個 Tag!

**下面是使用了簡單Tag的jsp(SUN企業級應用的首選)文件,運行結果是顯示當前時間:

<%@ page contentType="text/html;charset=gb2312" %>
<html><body>
<%@taglib uri="/tags" prefix="visa"%>
現在時間是:<visa:date/>
</body></html>

很明顯,使用了tag的jsp(SUN企業級應用的首選)頁清爽了許多---如果將數據庫操作等一些復雜功能也封裝進去的話,tag的優勢就更明顯了!

**環境:win2000 server + tomcat(一個很好用的JSP運行平台)5.019 + j2sdk1.42 + SQLServer 2k
**開發一個Tag,需要編寫2個主要文件:
1-標簽處理器(一個類servlet的java類)
2-標簽描述符(一個xml(標准化越來越近了)風格的tld文件)
完成這兩個文件,就可以在WEB應用中部署、應用了。

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

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

它的作用就象一個Servlet,接受來自客戶端的請求,但它卻可以象javaBean一樣在jsp(SUN企業級應用的首選)中方便調用。
package tag;

import java.util.Date;
import javax.servlet.jsp(SUN企業級應用的首選).*;
import javax.servlet.jsp(SUN企業級應用的首選).tagext.*;

public class datetag extends TagSupport{

 public int doStartTag() throws jsp(SUN企業級應用的首選)Exception{
  Date dte=new Date();
  try{
  jsp(SUN企業級應用的首選)Writer out=pageContext.getOut();
  out.print(dte);
   }
   catch(java.io.IOException e)
   {throw new jsp(SUN企業級應用的首選)TagException(e.getMessage());}
 return SKIP_BODY;
}
}
用 javac編譯之後,就得到了 datetag.class文件了,將其放在 xxxWEB-INFclasses ag 目錄下。

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(SUN企業級應用的首選)-version>1.2</jsp(SUN企業級應用的首選)-version>

<tag>
 <name>date</name>
 <tag-class>tag.datetag</tag-class>
 <body-content>empty</body-content>
</tag>
</taglib>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved