JSP学习笔记--JSP标签库

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南 阅读详情

原文地址: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>


使用mid360运行lio-livox对比fast-lio2 msg_type为激光雷达发出的数据格式,有livox自定义数据类型格式CustomMsg和ros标准的PointCloud2格式,因此首先需要确定激光雷达端配置的是哪种格式。可以从激光雷达的ros驱动中看到驱动端有三种格式可以选,驱动端的数字2对应lio-livox中的1,驱动端的0对应lio-livox的格式0。如果使用的是Ubuntu18.04编译完成后运行直接成功,如果使用20.04运行会报错,需要修改以下源代码。针对livox-mid360 运行lio-livox的一些问题。 阅读详情

相关推荐

802.11ax 的OFDMA资源分配详解

802.11ax 引入的最重要的技术就是OFDMA。OFDMA中引入了RU(资源块)概念,也就是20Mhz/40Mhz/80Mhz/160Mhz的带宽可以切割成不同尺寸的RU,分配给不同的用户使用,这样就大大提高了频谱资源的利用率。 常见的RU尺寸有26/52/102/242/484/996,单位是子载波,每个子载波是78.125Khz,这样20Mhz的带宽可以划分为如下图所示的不同RU大小。 按照11ax规范的要求,上下行的数据传输都可以由AP来统一调度,这样上下行的OFDM...

weixin_43408952的博客 1万+

tomcat启动项目出错,XML模型[web-jsptaglibrary_1_1.dtd]未找到,如果XML校验功能开启了的话,这很可能终止XML校验

目录在IDEA中启动Tomcat出错,直接启动Tomcat却正常java环境启动时控制台输出 在IDEA中启动Tomcat出错,直接启动Tomcat却正常 IDEA启动项目出错,无法正常运行,而且控制台输出内容非常多,度娘上也查不到任何相似的错误提示 这个不算是错误,只是警告,但是正常启动的项目没有这个警告 检查发现Tomcat启动日志中java环境不同,也是jdk不同,更换jdk测试,问题解决 java环境 ![Java环境](https://img-blog.csdnimg.cn/2020071216

Went666的博客 2112

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第七讲)

默认是第一种键盘模式,当需要切换模式,进入到ta_event_cb函数修改模式,下面代码以数字模式举例子lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER);在该界面中可以设置键盘文字的大小和文本类型,最下方判断键盘是否支持中文输入(中文输入,当汉字库不够大时,用户点击中文输入会少很多字)。//当LV_USE_KEYBOARD为1时启用虚拟键盘,LV_USE_ZH_KEYBOARD为1时支持中文输入。随后在系统设置界面中点击项目选项,选择显示键盘。

weixin_38828382的博客 1416

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

1.JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持。在概念上说,标签库是非常简单和可以重用的代码构造。它可以大大简化你在页面中输入各种录入框的代码(诸如此类的代码:2.标签库(Tag libraries)提供了建立可重用代码块的简单方式。但是和COM和J2EE不同的是,你不需要掌握任何额外的技能就可以建立标签库:如果你会编写JSP页面,你就会建

小毛头的BLOG 1652

基于 MATLAB 的精馏塔模拟仿真

基于 MATLAB 的精馏塔模拟仿真精馏塔是一种重要的化工设备,其中乙烯精馏塔和醋酸乙烯精馏塔是常见的两种精馏塔。本文基于 MATLAB 软件,给出了针对这两种精馏塔的模拟仿真代码。

与其临渊羡鱼,不如退而结网 904

越野换了逐飞的ips200pro的屏幕后代码烧录中报错: “Cannot initialize device connection” 和 “Flashing failed” ...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1152

jsp自定义标签总结

一、概述 JSP 2.0 中提供了两种新的开发自定义标记的方法:1、简单标签机制SimpleTagJSP 2.0 中加入了新的创建自定义标记的API:javax.servlet.jsp.tagext.SimpleTag,该API 定义了用来实现简单标记的接口。和JSP 1.2 中的已有接口不同的是,SimpleTag 接口不使用doStartTag()和doEndTag()方法,而提供了一个简单的...

技术成就人生 5869

建行报专版报道建设银行金融科技发展历程

经过十多年的建设,总行前中后台部门都有了自己的业务系统,但系统“部门”特征显著,渠道、客户、产品的横向整合不足,产品系统层次化、结构化、参数化程度不高,渠道支持产品快速部署以及跨渠道服务能力不足,管理分析类系统建设相对滞后,系统较弱的可扩展能力在应对高速增长的交易量时已疲态尽显,同时安全稳定运行的压力和风险日益积聚。站在新的历史起点上,科技条线将聚焦主责主业,完善信息科技管理体系,紧紧围绕安全生产中心任务,持续推动技术能力复用共享和自主可控,为全行做好金融五篇大文章,推动业务高质量发展提供技术支撑。

银行信息系统应用架构详解 386

JSP实现自定义标签Taglib重点总结

Taglib指令介绍 Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。 比如struts中支持的标签库,html标签库、bean标签库、logic标签库。 其中的具体的实现方式,我们不过多介绍,我们给大家从宏观的角度以及解决其中的疑难点,后面会大家介绍相应的学习 资料。 除了struts的标签库,我们常见还有jstl标签库。 这样在界面jsp中引入其中...

webdev 495

ABAP Cloud 开发教程的文章目录

本教程涵盖 ABAP 云端 Client 处理、多租户架构、ABAP Cloud开发、动态编程优化、SQL语法改进等技术主题。最新版本1.0.0(更新至2025-12-12),包含197篇文章,重点文章包括《ABAP Client Handling与隔离机制》《ABAP Platform 2021泛型编程》《SAP BTP ABAP多租户应用开发》等,为开发者提供从基础到进阶的实战指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1814

12、多端神经形态晶体管:原理、应用与算法探索

本文综述了多端神经形态晶体管的原理、应用与算法探索。从神经元MOS晶体管的发展到基于电解质栅极晶体管(EGT)的新型器件设计,系统阐述了其在低电压、多功能逻辑运算和突触行为模拟方面的优势。重点介绍了其在化学生物传感器(如多巴胺和pH检测)中的高灵敏度应用,以及在树突整合、时空总和、动态逻辑和神经元算术等树突算法中的实现。文章还总结了该类器件在神经形态计算、智能传感等领域的广阔前景,并分析了当前面临的材料工艺、理论建模与系统集成挑战,展望了未来发展方向。

delta的博客 144

[解决]Jetty报错web-jsptaglibrary_1_2.dtd not found

原因:引入的jstl包不对。 所有jetty所需的jar包都应该从jetty-project工程中去取,这样就可以避免jar包引用错误的问题。   解决方式: 1. 确认你使用的Jetty版本,比如8.1.9.v20130131 2. 在MAVEN中央仓库中找到jetty-project, 路径:org/eclipse/jetty/jetty-project 3.在跟版本号对应的pom中

A thousand sugar star 3993

基于DNN神经网络的多输入多输出数据回归预测(附带Matlab代码)

假设我们的输入数据包含n个特征,输出数据包含m个特征。在本文中,我们将介绍如何使用DNN(深度神经网络)实现多输入多输出数据回归预测,并提供相应的Matlab代码。需要注意的是,上述代码中的DNN模型是一个简化的示例,您可以根据实际任务的复杂程度和要求进行相应的调整和优化。综上所述,我们介绍了如何使用DNN神经网络实现多输入多输出数据回归预测,并提供了相应的Matlab代码。函数对DNN模型进行训练,其中输入数据需要转置,以适应网络的输入要求。最后,我们使用训练好的模型对测试数据进行预测,并打印预测结果。

DevWizard的博客 1068

Spring学习笔记-2:JSP标准标签库

本篇博客详细介绍了jsp中常用的11中标签的使用方法

小鸡慢慢的专栏 1574

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JSP学习笔记(十)jstl标签库

一、相关概述 JSTL(JavaServer Pages Standard Tag Library),JSP标准标签库,是一组JSP自定义标签。这些标签原本由第三方开发实现,由于效果质量非常好,sun公司就把这些标签作为标准标签打包成库并加以推广 二、分类 JSTL按照标签功能分为多个库,主要有: 核心标签库 主要包含<c:out>、<c:if>、<c:forEac...

qq_45118892的博客 188

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Javaweb学习笔记(JSP标准标签库)

Javaweb学习笔记(JSP标准标签库)JSTL入门安装和测试JSTLJSTL中的Core标签库< c:out>标签标签 JSTL入门 JSTL被称为标准标签库,这个标签库由无个不同功能的表前库共同组成的。 标签库 标签库URL 前缀 Core http://java.sun.com/jsp/jstl/core c I18N http://java.sun.com/jsp./jstl/fmt fmt SQL http://java.sun.com/jsp/jstl/sq

qq_50834939的博客 945

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【学习笔记】JSP标准标签库(JSTL)

简介 JSTL(javaServer Pages Tag Library) JSP标准标签库 使用JSTL实现jsp页面中的逻辑处理,用于简化和替换jsp页面上的java代码。 使用方式 1.添加依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl&...

保登心爱酱的博客 178

jsp EL表达式 JSTL标签库学习笔记

1.什么是 jsp,它有什么用? jsp 的全换是 java server pages。Java 的服务器页面。 jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据。 因为 Servlet 程序回传 html 页面数据是一件非常繁锁的事情。开发成本和维护成本都极高。 2.jsp 的本质是什么。 jsp 页面本质上是一个 Servlet 程序。 jsp 翻译出来的 java 类,它间接了继 承了 HttpServlet 类。也就是说,翻译出来的是一个 Servlet 程序 jsp有三种脚

qq_46412427的博客 159

JSP 标准标签库-学习笔记

背景:最近在帮忙修改前端,在这之前只是简单了解jsp,这次因为是改别人的代码。所以有一些我没见过的标签,,感觉需要学一下,查了查,发现是一个标签库(JSTL),来写个笔记总结一下: 知识来源:https://www.runoob.com/jsp/jsp-jstl.html菜鸟教程 本篇笔记只是总结了一下标签的类别规律,我认为没有必要全记住,只要认得特征之后,用到什么就现查功能,用的多了自然就记住了 使用任何库,你必须在每个 JSP 文件中的头部包含 <taglib> 标签。 意思是当你在js

weixin_42650480的博客 254

JSP标签 —— JSTL标签库 知识详解 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34336292的博客 90

Java Web学习笔记——JSP标准标签库

        JSTL(JSP Standard Tag Library,JSP标准标签库)是一个开放源代码的标签组件,下载的JSTL是以jar包的形式存在的,直接将此jar包保存在WEB-INF\lib目录中,之后可以直接通过WINRAR工具打开此jar包,并且将其中META-INF文件夹中的几个主要标签配置文件(c.tld、fmt.tld、fn.tld、sql.tld、x.tld)保存在WE...

小哲的博客 635

Javaweb学习笔记之JSP(六):JSP 内置标签 和 JSTL 核心标签库

06_tag.jsp <%@ page import="com.el.entity.Student" %> <%@ page import="java.util.HashMap" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.ArrayList" %> <%...

秋忆夏伤的博客 315

重温JSP学习笔记--JSTL标签库

重温JSP学习笔记--JSTL标签库   以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是对el表达式的扩展,是一种标签语言,使用起来比较方便,他不属于jsp内置的标签,使用之前需要导包,以及指...

weixin_34365635的博客 122

JavaWeb学习笔记——JSP标准标签库JSTL

weixin_34414650的博客 79

JSP标签 —— JSTL标签库 知识详解 学习笔记

本文查阅方法:    1、查阅目录 —— 查阅本文目录,确定想要查阅的目录标题    2、快捷“查找” —— 在当前浏览器页面,按键 “Ctrl+F” 按键组合,开启浏览器的查找功能,             在查找搜索框中 输入需要查阅的 目录标题,便可以直接到达 标题内容 的位置。    3、学习小结 —— 文中的学习小结内容,是笔者在学习之后总结出的,开发时可直接参考其进行应用开发的内容,...

Even2012的专栏 261
上一篇: C#下的数据库操作
下一篇: servlet学习笔记
johnsonTj
博客等级 码龄23年 26粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值