首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
syslog
stdout
curl
shell
colors
zsh
grafana
sftp
server
路由器
7层
debian
nginx
ubuntu
grep
4层
服务器
port
cron
linux
centos
ssh
centos7
tomcat
touch
log4j
docker
负载均衡
jenkins
apache
devops
service
dns
awk
运维
unix
kubectl
tengine
crontab
容器
fabric
k8s
sudo
压力测试
vagrant
ftp
当前位置:
开发笔记
>
运维
> 正文
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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
port
Spring 3.1:数据源未自动连接到@Configuration类的错误原因及解决方法
本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ...
[详细]
蜡笔小新 2023-12-14 03:54:26
port
的错误消息:
ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ...
[详细]
蜡笔小新 2023-12-13 20:28:08
port
XML介绍与使用的概述及标签规则
本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ...
[详细]
蜡笔小新 2023-12-13 17:39:50
tomcat
Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ...
[详细]
蜡笔小新 2023-12-13 16:18:09
tomcat
Java验证码——kaptcha的使用配置及样式
本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ...
[详细]
蜡笔小新 2023-12-13 13:58:25
ssh
HDFS2.x新特性
一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ...
[详细]
蜡笔小新 2023-12-13 13:52:40
apache
Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ...
[详细]
蜡笔小新 2023-12-13 13:12:05
apache
flowable工作流 流程变量_信也科技工作流平台的技术实践
1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ...
[详细]
蜡笔小新 2023-12-13 10:17:15
apache
Android 7自学笔记总结、移动架构视频、安卓面试真题、项目实战源码讲义
本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ...
[详细]
蜡笔小新 2023-12-13 10:06:58
apache
MSXML解析XML文件出现DTD禁用问题的解决方案
本文介绍了在使用MSXML解析XML文件时出现DTD禁用问题的解决方案。通过代码示例和错误信息获取方法,解释了默认情况下DTD是禁用的,以及如何启用DTD的方法。此外,还提到了网上关于该问题的信息相对较少,因此本文提供了解决方案以供参考。 ...
[详细]
蜡笔小新 2023-12-13 08:21:30
port
Android开发实现的计时器功能示例
本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ...
[详细]
蜡笔小新 2023-12-12 22:51:19
port
在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ...
[详细]
蜡笔小新 2023-12-12 17:52:50
port
MyBatis多表查询与动态SQL使用
本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ...
[详细]
蜡笔小新 2023-12-12 17:12:51
port
r2dbc配置多数据源
R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ...
[详细]
蜡笔小新 2023-12-12 16:38:53
port
自学Android之路笔记
本文是关于自学Android的笔记,包括查看类的源码的方法,活动注册的必要性以及布局练习的重要性。通过学习本文,读者可以了解到在自学Android过程中的一些关键点和注意事项。 ...
[详细]
蜡笔小新 2023-12-12 15:17:21
mobiledu2502860837
这个家伙很懒,什么也没留下!
Tags | 热门标签
syslog
stdout
curl
shell
colors
zsh
grafana
sftp
server
路由器
7层
debian
nginx
ubuntu
grep
4层
服务器
port
cron
linux
centos
ssh
centos7
tomcat
touch
log4j
docker
负载均衡
jenkins
apache
RankList | 热门文章
1
调用jniRegisterNativeMethods(...)函数注册JNI后,emulator总是停在启动界面,进不了系统。
2
JS控制浏览器大小
3
File name too long in tbl_replace.php
4
Could not open CONNECT tunnel with proxy错误异常捕获TunnelError
5
airpods一只听的见一只听不见
6
Hbase 操作工具类
7
Odoo接口开发
8
Download about java
9
初识顶部导航栏【flutter20个实例之一】
10
CentOS7.5部署WeADMIN监控主机交换机配置[详解]
11
椒盐|原图_图像处理:随机添加椒盐噪声和高斯噪声Python
12
网络原理课设——IP协议分析
13
安装Windows2003操作系统初学者系列学习者系列文章
14
【软考】2020下半年软件设计师 易错知识点(8)
15
检查 N 是否可以表示为 3 的不同幂的和
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有