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

首頁 > 編程 > JSP > 正文

JSP學習筆記__JSP標簽庫

2024-09-05 00:20:25
字體:
來源:轉載
供稿:網友
菜鳥學堂:

  1.jsp標簽庫(也稱自定義庫)可看成是一套產生基于xml腳本的方法,它經由javabeans來支持。在概念上說,標簽庫是非常簡單和可以重用的代碼構造。它可以大大簡化你在頁面中輸入各種錄入框的代碼(諸如此類的代碼:<input type="text" name="taxpayername" value = " ,<select name="collectionitemcode" class="required" ...),并使之結構化。

  2.標簽庫(tag libraries)提供了建立可重用代碼塊的簡單方式。但是和com和j2ee不同的是,你不需要掌握任何額外的技能就可以建立標簽庫:如果你會編寫jsp頁面,你就會建立標簽庫。最后,標簽庫還改進了web應用程序的維護性。這種對維護性的改進表現在:輕易地在jsp頁面上就實現了基于xml的可定制接口。

  3.一個簡單的標簽由下面的元素構成:
  ⑴ javabeans:為了得到java與生具來的面向對象的好處,可重用的代碼應該放到一個獨立的代碼容器中。這些javabeans并不是標簽庫的一部分。不過它是你的代碼庫用來執行相關任務的基本代碼塊。
  ⑵ 標簽處理:這是標簽庫的真正核心。一個標簽處理器將引用它需要的任何資源(你的javabeans)和訪問你的jsp頁面的全部信息(pagecontext對象)。jsp頁面也會將所有已經被設置的標簽屬性和jsp頁面上的標簽體中的內容傳送給標簽處理器。在標簽處理器處理完畢后,它將發回輸出到你的jsp頁面進行處理。
  ⑶ 標簽庫的描述(tld文件):這是一個簡單的xml文件,它記錄著標簽處理器的屬性、信息和位置。jsp容器通過這個文件來得知從哪里及如何調用一個標簽庫。
  ⑷ 網站的web.xml文件:這是你網站的初始化文件,在這個文件中,你定義了網站中用到的自定義標簽,以及哪個tld文件用來描述每個自定義的標簽。
  ⑸ 分發文件(一個war或者jar文件):如果你想重用自定義標簽的話,你需要一個方法來將它由一個項目轉移到另一個項目中。將標簽庫打包為一個jar文件是一個簡單而且有效的方式。
  ⑹ 在你的jsp文件中作標簽庫聲明:很簡單,如果要用到該標簽的話,只要在頁面聲明一下就可以,其后,你就可以在該jsp頁面的任何地方使用它。

  下面是一個實例

  1.       先編寫標簽處理程序,atmtag.java

  //用標簽處理程序來定義客戶標簽的工作

 

import javax.servlet.jsp.*;

//導入標簽類的驅動

import javax.servlet.jsp.tagext.*;

import java.io.*;

import java.sql.*;

import java.math.*;

import java.util.*;

//實現tagsupportbodytagsupport接口

public class atmtag extends tagsupport

{

       connection connect = null;

       statement state = null;

       resultset result = null;

       public atmtag() throws classnotfoundexception

       {

           class.forname("sun.jdbc.odbc.jdbcodbcdriver");

       }

       //抽象類tag的方法,標簽處理程序的初始化

       public int dostarttag() throws jsptagexception

       {

              //指導jsp引擎處理標簽的體內容

              return eval_body_include;

       }

 

              //執行標簽任務

              public int doendtag() throws jsptagexception

              {

                 try

                 {

                          //把輸出寫到jsp頁面

                            jspwriter out=pagecontext.getout();

                           

                            connect=drivermanager.getconnection("jdbc:odbc:test","sa","");

                           

                           

                            string strquery = " select ccounter_id, caddress,mcashbalance from counter where mcashbalance<=10000; " ;

                            system.out.println("query: "+strquery);

                            state = connect.createstatement();

                            resultset result = state.executequery(strquery);

                            string sid=null;

                            string saddress=null;

                            string sbalance=null;

                            vector v=new vector();

                     while(result.next())

                     {

                           

                            sid  = result.getstring(1);

                            saddress  = result.getstring(2);

                            sbalance  = result.getstring(3);

                            v.add(sid);

                            v.add(saddress);

                            v.add(sbalance);

                            v.add(";");

 

                     }

                                for(int i=0;i<v.size();i++)

                            {

                                   string str=(string)v.elementat(i);

                                   pagecontext.getout().write(str);

                            }

              }catch(exception ioe)

              {

                     system.out.println(" error in getting results"+ioe.tostring());

              }

              //指出對jsp頁面其余部分求值

                     return eval_page;

       }

 

}

 

  2.       編寫tld文件的代碼:

  //xml驗證文檔

<?xml version="1.0" encoding="iso-8859-1"?>

<!doctype taglib public "-//sun microsystems, inc.//dtd jsp tag library 1.1//en"

"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<taglib>

   //標簽庫版本

   <tlibversion>1.0</tlibversion>

   //標簽庫依賴的jsp版本

   <jspversion>1.1</jspversion>

   //標簽庫名

   <shortname>atmjsp</shortname>

   //關于標簽庫的詳細信息

   <info>a tag library</info>

   <tag>

       //定義標簽的名

      <name>atm</name>

       //指出標簽處理程序類

      <tagclass>atmtag</tagclass>

       //此標簽體的定義

      <body-content>jsp</body-content>

       //關于此標簽與其功能的附加信息

      <info>outputs of the atm counter</info>

   </tag>

</taglib>

 

  3.       錯誤頁面errorpage.jsp的代碼:

<html>

<body>

       <%@ page iserrorpage="true" %>

       <%=exception.getmessage() %>

</body>

</html>

 

4.    編寫jsp文件:atm.jsp

<%@ page import="atmtag" %>

<%@ taglib uri="atmjsp.tld" prefix="atmjsp" %>

<%@ page errorpage="errorpage.jsp" %>

<!doctype html public "-//w3c//dtd html 4.0 translational//en ">

<html>

       <h3 align=center>atm counters that needs cash</h3>

       <table>

              <tr><td></td><td><atmjsp:atm/></td></tr>

       </table>

</html>

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 老河口市| 彰化县| 新丰县| 孝义市| 会泽县| 汉源县| 长海县| 嘉兴市| 搜索| 瑞昌市| 清水县| 广西| 凤山市| 龙里县| 齐河县| 巢湖市| 天台县| 晋中市| 林西县| 水富县| 休宁县| 北票市| 叶城县| 乐平市| 沙坪坝区| 扬中市| 博罗县| 尚义县| 辉南县| 伊金霍洛旗| 崇阳县| 惠东县| 新建县| 桓仁| 称多县| 拉孜县| 山西省| 和林格尔县| 封开县| 吉隆县| 文登市|