JSP学习笔记

js|笔记

  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

  //用标签处理程序来定义客户标签的工作

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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>

 

时间: 2025-01-02 11:45:57

JSP学习笔记的相关文章

动态网页学习:JSP学习笔记全记录

js|笔记|动态|网页 JSP学习笔记(一)-----概述 JSP学习笔记(二)-----使用Tomcat运行JSP文件 JSP学习笔记(三)-----使用JSP处理用户注册和登陆 JSP学习笔记(四)-----JSP动作的使用 JSP学习笔记(五)-----JSP中使用JavaBean JSP学习笔记(六)-----在多个JSP页面之间传递参数 JSP学习笔记(七)-----猜数字游戏 JSP学习笔记(八)-----include的运用 JSP学习笔记(九)-----JSP标签库

JSP学习笔记(二)-----使用Tomcat运行JSP文件

js|笔记 有些网友不知道怎么才能运行自己的JSP文件,我在这里简单介绍一下,给大家提供一点参考: 1. 下载并安装tomcat.下载地址:http://jakarta.apache.org/tomcat 2. 编写自己的JSP网页和Java对象. 3. 配置自己的Web应用.配置方法: 在TOMCAT_HOME/conf/server.xml文件中加入一行: <Content path="/appName" docBase="webapps/appName"

JSP学习笔记(一)-----概述

js|笔记 1.JSP是Java Server Pages的简写. 2.用JSP开发的Web应用是跨平台的. 3.JSP技术是Servlet技术的扩展.Servlet是平台无关的,100%纯Java的Java服务端组件. 4.下面就是一个简单的JSP页面: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>欢迎访问网上商店<

JSP学习笔记(九)-----JSP标签库

js|笔记 1.JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持.在概念上说,标签库是非常简单和可以重用的代码构造.它可以大大简化你在页面中输入各种录入框的代码(诸如此类的代码:<input type="text" name="taxpayerName" value = " ,<select name="collectionItemCode" class="requi

JSP学习笔记(八)-----include的运用

include|js|笔记 1. 向JSP页面中插入指定的页面方法有两种:JSP命令<%@ include%>JSP动作<jsp:include />2. a.jsp代码如下:<html>huanghui<%@ include file="b.jsp"%><jsp:include page="b.jsp" flush="true"/></html>3. b.jsp代码如下:&

JSP学习笔记(七)-----猜数字游戏

js|笔记 1. 这是一个猜数字的游戏,通过使用JSP调用JavaBean2. 需要两个文件,number.jsp和NumberGuessBean.java3. 先看number.jsp代码:<html><jsp:useBean id="number" class="NumberGuessBean" scope="session" /><jsp:setProperty name="number"

JSP学习笔记(六)-----在多个JSP页面之间传递参数

js|笔记|页面 1. 怎么在多个JSP页面之间进行参数传递?需要使用JSP的内置作用域对象session.利用它的两个方法setAttribute(),getAttribute()2. 下面的这个实例实现了把第一个JSP页面的参数传递给第三个页面的功能3. 代码如下:1.jsp<html><form method=get action=2.jsp>what's your name<input type=text name=username><input type

JSP学习笔记(五)-----JSP中使用JavaBean

js|笔记 1. 该实例主要告诉我们怎么样在JSP代码中调用JavaBean构件2. 使用JavaBean的优点是简化了JSP代码,界面代码和逻辑代码互相分离,便于程序员查看和调试3. 该实例需要五个文件:login.jsp,test.jsp, userbean.class4. 首先看一下login.jsp <html><center><form method=post action="http://127.0.0.1:8000/test.jsp">

JSP学习笔记(四)-----JSP动作的使用

js|笔记 1. 该实例主要告诉我们怎么样在JSP代码中使用JSP动作,例如<jsp:forward >2. 该实例需要四个文件:login.jsp,test.jsp,ok.htm,no.htm3. 首先看一下login.jsp<html><center><form method=get action="http://127.0.0.1:8000/test.jsp">username<input type=text name=use