【web后端(二十)】jsp、servlet_内置标签——用户自定义标签

Eclipse JSP/Servlet 深入解析 JSP 是一种动态网页技术,它将 HTML 与 Java 代码相结合,使开发者能够轻松地创建动态网页。JSP 页面由 HTML 标签和 JSP 标签组成,其中 JSP 标签负责执行 Java 代码。Eclipse JSP/Servlet 是 Java Web 开发中的重要技术,掌握它们对于 Java Web 开发者来说至关重要。本文对 Eclipse JSP/Servlet 进行了深入解析,希望对读者有所帮助。字数统计:约 2000 字SEO 优化。 阅读详情

用户自定义标签,不是我们随便写一个标签就能够被取到的。我必须要让自定义的标签,能够被浏览器或jsp引擎能够在标签库访问到。

 

标签处理类

package edu.xalead;

import javax.servlet.ServletContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
import java.util.ArrayList;

public class MyTag extends BodyTagSupport {
    //这里有个问题是,我们在MyTag.jsp文件里写color属性的时候。
    //我们的这个属性,要在当前的标签处理类里面能取到值。
    //因为真正处理这个标签的是标签处理类,而属性表达意图。
    //所以,我们在这里设置标签的属性。
    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    private String color = "black";

    @Override
    public int doStartTag() throws JspException {
        try {
            //先要拿到ServletContext
            ServletContext servletContext = pageContext.getRequest().getServletContext();
            //先取出离线集
            ArrayList<ArrayList<String>> table = (ArrayList<ArrayList<String>>) servletContext.getAttribute("table");
            //渲染成表格输出
            //取输出字符流
            //pageContext是jsp页面的上下文
            JspWriter pw = pageContext.getOut();

            //绑定字符串的颜色
            pw.println("<table border='1' bgcolor='" + color + "'>");
            pw.println("<th>");
            pw.println("empno");
            pw.println("</th>");
            pw.println("<th>");
            pw.println("ename");
            pw.println("</th>");
            pw.println("<th>");
            pw.println("job");
            pw.println("</th>");
            pw.println("<th>");
            pw.println("mgr");
            pw.println("</th>");
            pw.println("<th>");
            pw.println("hiredate");
            pw.println("</th>");
            pw.println("<th>");
            pw.println("salary");
            pw.println("</th>");
            pw.println("<th>");
            pw.println("comm");
            pw.println("</th>");
            pw.println("<th>");
            pw.println("deptno");
            pw.println("</th>");
            for (int i = 0; i < table.size(); i++) {
                pw.println("<tr>");
                ArrayList<String> row = table.get(i);
                for (int j = 0; j < row.size(); j++) {
                    pw.println("<td>");
                    pw.println(row.get(j));
                    pw.println("</td>");
                }
                pw.println("</tr>");
            }
            pw.println("</table>");

        } catch (Exception e) {
            e.printStackTrace();
        }
        return BodyTagSupport.SKIP_BODY;
    }

    @Override
    public int doEndTag() throws JspException {
        return super.doEndTag();
    }

    @Override
    public int doAfterBody() throws JspException {
        return super.doAfterBody();
    }
}



jsp标签库描述文件

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

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
        version="2.1">

    <tlib-version>1.0</tlib-version>
    <!--该名字尽量写短-->
    <short-name>my</short-name>
    <!--这里直接引用统一资源定位符,就要求我们必须把标签放到WEB-INF下, -->
    <!--这样位置就确定了-->
    <uri>http://www.xalead.org</uri>
    <!--aaa标签-->
    <tag>
        <!--标签名-->
        <name>aaa</name>
        <!--标签助手类(实现类)放入类的权限定名-->
        <tag-class>edu.xalead.MyTag</tag-class>
        <!--标签的内容类:empty表示空标签(使用空标签会报错),jsp可以表示为任何合法的jsp元素。-->
        <body-content>empty</body-content>
        <attribute>
            <!--属性名-->
            <name>color</name>
            <!--是否为必填项-->
            <required>false</required>
            <!--是否可以填jsp表达式、el表达式-->
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
</taglib>

 

jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<!--taglib的作用就是告诉jsp引擎,我们的标签库在哪里。-->
<!--因为,看到标签库,我们就知道到有什么名字的标签,由什么类来处理。-->
<!--否则,引擎布置到有aaa标签,就算解析到,也不知道它的标签库在哪。-->

<%--标准的方式是引用以下的uri方式:--%>
<%--<%@taglib prefix="my" uri="http://www.xalead.org"%>--%>

<%--不过我们在这里也可以直接写,来找到标签库。--%>
<%@taglib prefix="my" uri="/WEB-INF/my.tld"%>

<html>
<head>
    <title>Title</title>
</head>
<body>
<%--aaa标签在页面中显示一个context中的table属性的表格--%>

<%--而当jsp引擎碰到<%@taglib prefix="my" uri="/WEB-INF/my.tld"%>指令时,--%>
<%--就会先找tld文件,在里面看看都有哪些标签,由哪些类来处理。--%>
<%--我们做好了映射,当整个页面再碰到这个标签的时候,就认识了。--%>
<%--当页面刚碰到标签的时候,先调我们写的自定义标签中的doStartTag方法,开始标签事件发生了--%>
<%--然后,再去执行doAfterBody。但是doStartTag里头定义了忽略标签体。--%>
<%--实际上,在执行doStartTag时,它取到了pageContext里面的JspWriter。--%>
<%--此时,JspWriter便在jsp文本流中写东西,在此处输出。这就是标签的作用。--%>
<%--我们在标签里要定义属性时,就要遭my.tld文件中先定义。--%>
<my:aaa color="red"/>
</body>
</html>

 

深入掌握Servlet和JSP技术 本文还有配套的精品资源,点击获取 简介:Servlet和JSP是构建动态Web应用的关键技术,允许开发者创建响应HTTP请求的服务端程序和视图技术。通过学习Servlet的生命周期、JSP的基本概念和元素、以及它们在MVC架构中的协同工作,开发者可以更好地组织和维护Java Web应用。此外,JSP的内置对象、标签库、EL表达式语言,以及Servlet的配置、部署和3.0及... 阅读详情

相关推荐

从图片到3D模型:用Tripo+Unity打造AI建模流水线(避坑指南)

本文详细介绍了如何利用Tripo和Unity构建AI驱动的3D建模流水线,从图片到3D模型的高效转换。通过文生模型和图生模型的双模系统,开发者可以大幅提升建模效率,适用于游戏开发和数字内容创作。文章还提供了环境配置、图片预处理、批量生成等实用技巧,帮助开发者避开常见陷阱。

weixin_27024175的博客 611

通过servlet.jsp.tagext.TagSupport的自定义标签实现按钮权限控制

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

weixin_33701294的博客 406

Tesla V100 Windows 部署实战:从驱动安装到模式切换的避坑指南

本文是一份详细的Tesla V100在Windows系统下的部署实战指南。文章从硬件组装、系统选择讲起,重点阐述了驱动安装的正确方法,并深入剖析了将计算卡从TCC模式切换至WDDM模式的诱惑与潜在陷阱。最终,作者推荐保持默认TCC模式,并提供了使用nvidia-smi命令行等稳定可靠的显卡监控方案,旨在帮助用户避开常见坑点,高效利用这张专业计算卡进行AI计算等任务。

java5的博客 1706

JSP自定义标签的入门

什么是自定义标签? 自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。 JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面。 JSP 2.0规范中引入Simple Tag Handlers来编写这些自...

CheungChingYin的博客 402

从零到一:基于K375S主控的机械键盘优联无线化改造实战

本文详细记录了基于罗技K375S主控进行机械键盘优联无线化改造的全过程。从改造动机、核心原理与物料准备,到电路设计、PCB打样、焊接调试,逐步拆解了将优联技术集成到自定义机械键盘中的实战步骤。项目最终实现了低延迟、高稳定性且支持多设备连接的优联无线机械键盘,为DIY爱好者提供了高性价比的改造方案。

h0i1j2k3l的博客 600

Frida实战:SSL Pinning绕过技术全解析

本文详细解析了如何使用Frida工具绕过SSL Pinning技术,包括环境搭建、四种实战绕过方案及常见问题排查指南。通过具体代码示例和实战经验,帮助安全研究人员快速掌握SSL Pinning绕过技术,适用于金融类App的安全测试场景。

weixin_42530732的博客 187

jsp和servlet讲解(jsp自定义标签)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录一、开发自定义标签处理类二、建立一个.tld文件,每个.tld文件对应一个标签库,每个标签库对应多个标签3.在jsp文件使用自定义标签总结 **自定义标签用来取代jsp脚本** 一、开发自定义标签处理类 JSP2中开发标签库需要以下几个步骤 示例: 自定义标签类需要继承一个父类

qq_43652065的博客 449

别再死记硬背MAML原理了!用PyTorch手撸一个Omniglot小样本分类器(附完整代码)

本文详细介绍了如何使用PyTorch实现MAML(模型无关的元学习)算法,构建一个Omniglot小样本分类器。通过实战代码演示,帮助读者理解MAML的双层优化原理,并提供了完整的训练循环、网络架构设计及调试技巧,适合想要掌握元学习技术的开发者。

weixin_29191669的博客 131

jsp向Servlet;Servlet向jsp传数据

开发工具与关键技术:MyEclipse 10、MySQL、JDBC与数据库连接 作者: 撰写时间:2019年05月17日   在Java中想数据从Jsp传到Servlet或者从Servlet传到Jsp是如何做到的呢!首先,要了解Jsp和Servlet的概念。Jsp是一种建立在Servlet规范提供的功能之上的动态网页技术,允许在网页文件中嵌入Java代码和Jsp标记。通俗一点来讲,Jsp和ht...

weixin_43741599的博客 1万+

2026年数据中心运行与管理专业人才培养基地建设方案(高职、数据中心运行与管理新专业、人才培养、专业代码:510310)

摘要: 为响应国家“东数西算”战略和数字经济需求,我校拟联合行业领军企业建设数据中心运行与管理人才培养基地。项目基于国家政策引导和产业快速发展背景,针对行业10万人才缺口,对标教育部新设专业标准(510310),分三阶段实施五年规划:专业奠基(2026-2028)、内涵深化(2028-2029)、辐射引领(2030-2031)。建设内容涵盖校企协同岗位能力分析、模块化课程开发(如网络管理、自动化运维等)、实训基地搭建及“课证融通”培养模式,重点培养基础设施、网络服务、运维托管三类岗位技能人才,目标建成区域性

啊碧根果的博客 1684

SAP 采购员参数及权限配置

若要控制采购员的参数缺省值或者权限,可以通过以下方式实现: 1、定义采购员缺省值(EVO) 路径:后台----物料管理---采购---环境数据---定义采购员的缺省值 点击图标,显示如下,查看参数配置ID: 查询到配置“定义采购员的缺省值”是通过ID “EVO”来配置的。进入页面建立配置: 按照需要配置新条目: 事务代码SU01进入用户配置页面,在用户“参数”页面配置前面设...

willieyuan的博客 7598

JSP内置对象、Servlet与MVC

介绍了JSP中常用的内置对象,Servlet与MVC的相关内容,以及EL表达式和JSTL标签

2403_87793978的博客 1951

一张微服务地图的十年演进:Spring Cloud 核心、扩展与工具组件的定位、原理与选型

本文把 Spring Cloud 当作一张微服务地图来读:先说明它是由 Commons 抽象层、实现层和 Boot 装配层构成的发行版,再沿一次请求梳理注册发现、负载均衡、声明式调用、容错限流、网关、配置、追踪与总线七类核心组件的原理与换代,并扩展到云平台、服务网格、消息流、批处理、安全与周边生态。仿真实测:默认参数下实例宕机平均 242 秒才被感知,优雅下线降到 47 秒;一个慢实例让轮询的 P99 达 49 秒,P2C 仅 203 毫秒。最后给出退场替代表、技术栈组合、升级路线和决策树。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 169万+

Servlet+JSP一文完结

前言: Servlet为创建基于web的应用程序提供了组件、独立于开发的平台,可以不受CGI程序(公共网关接口(Common Gateway Interface,CGI))的性能限制。Servlet有权限访问所有的javaAPI,包括访问企业级数据库的JDBC API。 一、Servlet简介 Java Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。 使用Ser...

充满好奇的threecat 4891

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

JSP 自定义标签

JSP 自定义标签技术实现与示例 摘要: JSP 自定义标签是一种扩展JSP功能的组件化技术,通过封装业务逻辑实现代码复用。其核心实现包含三个步骤:开发标签处理类(继承SimpleTagSupport)、配置TLD描述文件、在JSP页面中调用标签。本文以输出&quot;Hello World!&quot;的简单标签为例,演示了完整的开发流程,并分析了JSP容器处理自定义标签的工作原理。该技术能有效分离业务逻辑与视图层,提升代码可维护性,适用于表单处理、数据展示等Web开发场景。 (字数:149字)

likuoelie的博客 1095

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jsp内置对象,跳转方式,jsp四大域对象,EL表达式,jstl标签库,servlet

jsp内置对象,跳转方式,重定向,请求转发,jsp四大域对象,EL表达式,jstl标签库,servlet

weixin_51635918的博客 1382

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JSP标签:jsp内置标签、jstl标签、自定义标签

一、jsp标签的分类:   1)内置标签(动作标签): 不需要在jsp页面导入标签   2)jstl标签: 需要在jsp页面中导入标签   3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 1、内置标签(动作标签): &lt;jsp:include/&gt;包含标签: 语法: &lt;jsp:include page="/MyJsp001.js...

weixin_33757609的博客 244

【web后端(十八)】jsp、servlet_内置标签——UseBean

&lt;%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" %&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Title&lt;/title&gt; &lt;meta charset="UTF-8"/&gt; &lt;%...

LED_of_Java的博客 390

JSP技术深入解析:从内置对象到Servlet

随着技术的发展,JSP已经成为Java EE标准的一部分,并且与Servlet紧密集成,以提供强大的Web应用开发能力。通过深入理解JSP的内置对象、跳转方式、EL表达式、JSTL标签库和Servlet,我们可以更有效地构建和维护Java Web应用。EL(Expression Language)表达式提供了一种简洁的方式来获取四大域对象中的数据,避免了繁琐的Java代码。从Java EE 3.0开始,可以使用注解的方式来完成Servlet的注册和映射,这进一步简化了配置。

m0_74526809的博客 802

JSP自定义标签开发入门实例

1.引言本文将介绍JSP标签的一些基本概念以及如何开发及使用自定义标签。带领大家迈上Java Web开发的又一新台阶. 2.什么是自定义标签2.1.用户自定义的Java语言元素,实质是运行一个或者两个接口的JavaBean.2.2.可以非常紧密的和JSP的表

sunshinegeorge的专栏 1万+

JSP+Servlet+JavaBean+DAO模式+JDBC+Bootstrap+ajax+自定义标签完成用户登录验证

文章目录一.案例要求二.使用工具工具相关文件的导入三.案例导图四.案例实现1.数据库建立1.1 新建数据库1.2 建表1.3 添加记录2.登录页面实现Bootstrap部署login.jsp实现效果3.JDBC的DAO模式实现3.1 数据库连接类3.2 User实体类-JavaBeanUser特征User代码3.3 UserDAO接口类3.4 UserDAOImpl实现类3.5 UserDAOPr...

Loutslove的博客 1991

[前后端]JSP入门

JSP(Java Server Pages),简化的Servlet设计,在HTML标签中嵌套Java代码,用以高效开发Web应用的动态网页,是替换显示页面部分的Servlet(使用*.jsp文件替换XxxJSP.java)。JSP和Servlrt:JSP文件在容器中会转换成Servlet执行,JSP是对Servlet的一种高级封装,本质还是Servlet。但JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println()语句。

weixin_44275351的博客 1861

Jsp 自定义标签嵌套

<br />// 外层标签 package tao.tag; import java.util.HashMap; import java.util.Map; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; public class OutTag extends BodyTagSupport{ /** * */ private stat

天下无双 4603

jsp自定义tag标签

首先定义use.tag,存放目录在/WEB-INF/tags/use.tag; &amp;lt;%@ tag body-content=&quot;empty&quot; trimDirectiveWhitespaces=&quot;true&quot; pageEncoding=&quot;UTF-8&quot;%&amp;gt; &amp;lt;%@ attribute name=&quot;username&quot; required=&quot;true&quot; rtexprvalue=&

qq_35076190的博客 1022
上一篇: 【web后端(十九)】jsp、servlet_内置标签——include
下一篇: 【web后端(二十一)】jsp、servlet_EL表达式——scope范围中获取数据
寻爻青年
博客等级 码龄8年 27粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻爻青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值