首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
sudo
vagrant
shell
debian
server
7层
grafana
grep
交换机
curl
sftp
k8s
port
centos
tengine
service
负载均衡
linux
apache
zsh
fabric
kubectl
jenkins
路由器
ftp
压力测试
dns
syslog
4层
cron
容器
运维
ubuntu
touch
tomcat
devops
nginx
colors
服务器
ssh
log4j
crontab
docker
stdout
awk
centos7
当前位置:
开发笔记
>
运维
> 正文
JAVA/JSP学习系列之七
作者:mobiledu2502860837 | 来源:互联网 | 2018-03-18 19:48
JAVAJSP学习系列之七
一、前言 (本文译自Orion官方站点)
本文将一步一步介绍在Orion Application Server下定义自己的标签,然后,实现该标签的功能,最后用一个jsp例子测试。
二、建立标签,实现该标签的功能。
1.命名package为:com.acme.mytags(为了和原文相同,我不做改动)
package com.acme.mytags;
2.import相关class
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
3.实现javax.servlet.jsp.tagext.Tag接口:
public class HelloWorld implements Tag
{
4.定义局部变量
private PageContext pageContext;
private Tag parent;
5.调用标签开始的实现方法
public int doStartTag() throws javax.servlet.jsp.JspException
{
return SKIP_BODY;
}
注意:这个方法返回 SKIP_BODY,就是标签的body为空的时候,将返回这个值,否则将返回:EVAL_BODY_INCLUDE
6.调用标签结束的实现方法
public int doEndTag() throws javax.servlet.jsp.JspException
{
try
{
pageContext.getOut().write('Hello World!');
}
catch(java.io.IOException e)
{
throw new JspException('IO Error: ' + e.getMessage());
}
return EVAL_PAGE;
}
这样将在jsp文件的自定义标签结束地方输出“Hello World!”
7.还不够,我们还要写下面的方法:
public void release() {}
对于本简单的例子,上面的方法不需要任何实现。
8.JSP的容器要调用下面的方法:
public void setPageContext(final javax.servlet.jsp.PageContext pageContext) {
this.pageCOntext=pageContext;
}
JSP容器通过上面的方法调用标签,而且上面的方法用来设置标签的PageContext.
9.JSP的容器还要调用下面的方法:
public void setParent(final javax.servlet.jsp.tagext.Tag parent)
{
this.parent=parent;
}
JSP容器通过上面的方法设置标签的parent-Tag,因为每个标签的PageContext都要保留它的parent标签。
10.最后,实现方法:
public javax.servlet.jsp.tagext.Tag getParent()
{
return parent;
}
}
11. 编译标签。
三、描叙标签
现在将要写一个描叙文件,描叙该标签。
1.建立一个taglib.tld文件,
2.taglib.tld是一个XML格式的文本文件,XML的头如下:
'http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd'>
3.描叙标签库
1.0
1.1
mt http://www.orionserver.com/tutorials/tagtut/lesson1/mytags.jar
My first Tag library
4.描叙标签
helloWorld
com.acme.mytags.HelloWorld
empty
A Hello world Tag
5.结束
四、打包
名称为:mytags.jar
其目录结构为:
com/acme/mytags/HelloWorld.class
META-INF/taglib.tld
五、在jsp文件中使用自定义标签
建立hello.jsp如下:
六、测试运行
在orion目录下,建立如下结构,其中,tag是自己建立的,前面的目录是本来就有的。
E:oriondefault-web-app ag
将jar文件和jsp文件全部放到这个目录下。
然后,访问:
http://localhost:[port]/tag/hello.jsp
将出现:
------------------------------------------------------------------
Hello World!
------------------------------------------------------------------
七、恭喜,你已经成功了!
附:mytags.jar和hello.jsp 文件本站下载地址:
http://www.wodejia.net/softdownload/java/orion_tag01.zip(出处:viphot.com)
容器
xml
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
xml
在Windows 10上安装Python 3和Scrapy的详细步骤
本文档提供了在Windows 10操作系统中安装Python 3及Scrapy框架的完整指南,包括必要的依赖库如wheel、lxml、pyOpenSSL、Twisted和pywin32的安装方法。 ...
[详细]
蜡笔小新 2024-11-24 12:05:49
port
MySQL URL 配置中的时区问题及其解决方案
在使用 MySQL 6.0.x 及以上版本的 JDBC 驱动时,若未正确配置 `serverTimezone` 参数,可能会导致连接异常。本文探讨了这一问题的原因及解决方法。 ...
[详细]
蜡笔小新 2024-11-24 09:23:26
apache
Maven快照版本管理及更新策略详解
本文深入探讨了Maven中的快照版本管理和更新策略,解释了快照版本与正式版本的区别,并提供了如何配置快照更新策略的方法,以确保项目依赖始终保持最新。 ...
[详细]
蜡笔小新 2024-11-24 06:20:08
apache
如何使用Maven将依赖插件一并打包进JAR文件
本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ...
[详细]
蜡笔小新 2024-11-23 22:51:34
apache
将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ...
[详细]
蜡笔小新 2024-11-23 20:27:56
apache
必须为元素类型 mapper 声明属性 namespace解决
在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ...
[详细]
蜡笔小新 2024-11-23 20:06:58
linux
如何高效学习鸿蒙操作系统:开发者指南
本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ...
[详细]
蜡笔小新 2024-11-23 19:22:14
linux
基于角色的权限管理在AspNetForums中的应用
本文探讨了在AspNetForums平台中实施基于角色的权限控制系统的方法,旨在为不同级别的用户提供合适的访问权限,确保系统的安全性和可用性。 ...
[详细]
蜡笔小新 2024-11-23 18:42:29
linux
将datatable导出为excel的三种方式(转)
一、使用Microsoft.Office.Interop.Excel.DLL需要安装Office代码如下:2publicstaticboolExportExcel(S ...
[详细]
蜡笔小新 2024-11-23 16:37:33
port
Servlet基础入门指南(上)
本文介绍了Tomcat的基本操作,包括启动、关闭及首次访问的方法,并详细讲解了如何在IDEA中创建Web项目,配置Servlet及其映射,以及如何将项目部署到Tomcat。 ...
[详细]
蜡笔小新 2024-11-23 11:55:30
port
小程序实现点击获取数据与侧边栏功能
本文介绍了如何使用微信小程序的.wxml、.wxss和.js文件来实现点击获取数据及侧边栏显示功能。具体包括页面布局、样式设置以及事件处理。 ...
[详细]
蜡笔小新 2024-11-23 11:10:38
dns
重学前端学习笔记(二十四)HTML里的链接元素
笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ...
[详细]
蜡笔小新 2024-11-23 10:34:04
dns
Java虚拟机及其发展历程
Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ...
[详细]
蜡笔小新 2024-11-23 08:59:58
linux
春季职场跃迁指南:如何高效利用金三银四跳槽季
随着每年的‘金三银四’跳槽高峰期的到来,许多职场人士都开始考虑是否应该寻找新的职业机会。本文将探讨如何制定有效的职业规划、撰写吸引人的简历以及掌握面试技巧,助您在这关键时期成功实现职场跃迁。 ...
[详细]
蜡笔小新 2024-11-22 19:18:22
linux
[附源码]计算机毕业设计JAVAjsp医药管理信息系统
[附源码]计算机毕业设计JAVAjsp医药管理信息系统项目运行环境配置:Jdk1.8Tomcat7.0MysqlHBuilderX(Webstor ...
[详细]
蜡笔小新 2024-11-22 18:50:22
mobiledu2502860837
这个家伙很懒,什么也没留下!
Tags | 热门标签
sudo
vagrant
shell
debian
server
7层
grafana
grep
交换机
curl
sftp
k8s
port
centos
tengine
service
负载均衡
linux
apache
zsh
fabric
kubectl
jenkins
路由器
ftp
压力测试
dns
syslog
4层
cron
RankList | 热门文章
1
100多线程与信号
2
培养自己需要有点耐心
3
CodeForces 25DRoads not only in Berland(并查集题目)
4
《机器学习系统设计》学习笔记(2)
5
环境准备及spring源码下载并导入IDEA
6
Java返回int型的空值,从Java Resu检查null int值
7
syscan360国际前瞻信息安全大会
8
开发笔记:入门训练——Fibonacci数列
9
monkey初接触
10
2020年云南统招专升本部分院校录取分数线
11
vb.net删除换行符,vb语言换行符
12
|NO.Z.00268|——————————|CloudNative|——|KuberNetes&中间件容器化及helm.V15|——|中间件.v04|RabbitMQ|持久化数据概述|
13
隔壁dba来串门,现在大型互联网公司熟练码农工资多少?
14
new无法执行@Autowired注解,多线程注意事项和如何判断子线程是否全部执行完成
15
使用 Git 将项目拉取到本地
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有