首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> Shell教程
JSP学习笔记--JSP标签库-JSP教程,Jsp/Servlet
作者:网友供稿 点击:22
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
原文地址:http://www.7880.com/info/article-461b6340.html

1.jsp标签库(也称自定义库)可看成是一套产生基于xml脚本的方法,它经由javabeans来支持。在概念上说,标签库是非常简单和可以重用的代码构造。它可以大大简化你在页面中输入各种录入框的代码(诸如此类的代码:<input type="text" name="taxpayername" value = " ,<select name="collectionitemcode" class="required" style="width:200" ...),并使之结构化。

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.*;

//实现tagsupport或bodytagsupport接口

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>



文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·jsp设置页面过期-JSP教程,Jsp/Servlet
·用SqlDataAdapter更新数据库的方法介绍-.NET教程,数据库应用
·用java关闭IE窗口-JSP教程,Java技巧及代码
·ADO.NET 2.0 Feature Matrix-ASP教程,ASP应用
·Jsp & Servlet 会话控制-JSP教程,Jsp/Servlet
·xmlhttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)-ASP教程,XML相关
·使用C#编写Ice应用程序-.NET教程,C#语言
·用PHP实现WEB动态网页静态-PHP教程,PHP应用
·DataGrid基于Access的快速分页法-.NET教程,数据库应用
·HTML文档中小meta的大作用-ASP教程,XML相关
最新文章
·photoshop打造数码照片“像素块”特效_photoshop教程
·css中如何正确的使用id和class_css教程
·保证让新手轻松月挣500以上_网赚技巧
·记住10个关键词让你作一名成功的站长_站长心得
·对新人站长得一些善意得提醒_站长心得
·在windows vista中安装telnet客户端_windows vista
·怎样提高你的google adsense收入_站长心得
·googleadsense新手指南及常见问题整理_google推广
·高网站访问量的必胜之道:访google adwords经理(上)_google推广
·成功经验谈:运营blog的21个具体方法_网络编辑
相关主题
  • JSP学习——全面解析JDBC(8)附录-JSP教程,Jsp/Servlet
  • JSP学习——全面解析JDBC(7)-JSP教程,Jsp/Servlet
  • JSP学习——全面解析JDBC(6)-JSP教程,Jsp/Servlet
  • JSP学习——全面解析JDBC(5)-JSP教程,Jsp/Servlet
  • JSP学习——全面解析JDBC(4)-JSP教程,Jsp/Servlet
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭