仓酷云
标题:
JAVA网站制作之JSP的自界说标签教程
[打印本页]
作者:
小女巫
时间:
2015-1-18 11:06
标题:
JAVA网站制作之JSP的自界说标签教程
什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。标签是一种XML元素,经由过程标签可使JSP网页变得简便而且易于保护,还能够便利地完成统一个JSP文件撑持多种言语版本。
1、基础观点:
1.标签(Tag):
标签是一种XML元素,经由过程标签可使JSP网页变得简便而且易于保护,还能够便利地完成统一个JSP文件撑持多种言语版本。因为标签是XML元素,以是它的称号和属性都是巨细写敏感的
2.标签库(Taglibrary):
由一系列功效类似、逻辑上相互接洽的标签组成的汇合称为标签库。
3.标签库形貌文件(TagLibraryDescriptor):
标签库形貌文件是一个XML文件,这个文件供应了标签库中类和JSP中对标签援用的映照干系。它是一个设置文件,和web.xml是相似的。
4.标签处置类(TagHandleClass):
标签处置类是一个Java类,这个类承继了TagSupport大概扩大了SimpleTag接口,经由过程这个类能够完成自界说JSP标签的详细功效
2、自界说JSP标签的格局:
1.
<%@taglibprefix=”someprefix” uri=”/sometaglib”%>
为了使到JSP容器可以利用标签库中的自界说举动,必需满意以下两个前提:
1)从一个指定的标签库中辨认出代表这类自界说举动的标签
2)找到完成这些自界说举动的详细类
第一个必须前提-找出一个自界说举动属于谁人标签库-是由标签指令的前缀(TaglibDirectivesPrefix)属性完成,以是在统一个页面中利用不异前缀的元素都属于这个标签库。每一个标签库都界说了一个默许的前缀,用在标签库的文档中大概页面中拔出自界说标签。以是,你可使用除诸如jsp,jspx,java,servlet,sun,sunw(它们都是在JSP白皮书中指定的保存字)之类的前缀。
uri属性满意了以上的第二个请求。为每一个自界说举动找到对应的类。这个uri包括了一个字符串,容器用它来定位TLD文件。在TLD文件中能够找到标签库中一切标签处置类的称号
2.当web使用程序启动时,容器从WEB-INF文件夹的目次布局的META-INF搜刮一切以.tld开头的文件。也就是说它们会定位一切的TLD文件。关于每一个TLD文件,容器会先猎取标签库的URI,然后为每一个TLD文件和对应的URI创立映照干系。
在JSP页面中,我们仅需经由过程利用带有URI属性值的标签库指令来和详细的标签库婚配
3、自界说JSP标签的处置历程:
1.在JSP中引进标签库:
<%@taglibprefix=”taglibprefix”uri=”tagliburi”%>
2.在JSP中利用标签库标签
3.Web容器依据第二个步骤中的prefix,取得第一个步骤中声明的taglib的uri属性值
4.Web容器依据uri属性在web.xml找到对应的元素5.从元素中取得对应的元素的值6.Web容器依据元素的值从WEB-INF/目次下找到对应的.tld文件7.从.tld文件中找到与tagname对应的元素8.凑元素中取得对应的元素的值9.Web容器依据元素的值创立响应的taghandleclass的实例10.Web容器挪用这个实例的doStartTag/doEndTag办法完成响应的处置
4、创立和利用一个TagLibrary的基础步骤:
1.创立标签的处置类(TagHandlerClass)
2.创立标签库形貌文件(TagLibraryDescrptorFile)
3.在web.xml文件中设置元素4.在JSP文件中惹人标签库
5、TagSupport类简介:
1.处置标签的类必需扩大javax.servlet.jsp.TagSupport.
2.TagSupport类的次要属性:
A.parent属性:代表嵌套了以后标签的下层标签的处置类
B.pageContex属性:代表Web使用中的javax.servlet.jsp.PageContext对象
3.JSP容器在挪用doStartTag大概doEndTag办法前,会先挪用setPageContext和setParent办法,设置pageContext和parent。因而在标签处置类中能够间接会见pageContext变量
4.在TagSupport的机关办法中不克不及会见pageContext成员变量,由于此时JSP容器还没有挪用
setPageContext办法对pageContext举行初始化
6、TagSupport处置标签的办法:
1.TagSupport类供应了两个处置标签的办法:
publicintdoStartTag()throwsJspException
publicintdoEndTag()throwsJspException
2.doStartTag:但JSP容器碰到自界说标签的肇端标记,就会挪用doStartTag()办法。
doStartTag()办法前往一个整数值,用来决意程序的后续流程。
A.Tag.SKIP_BODY:暗示?>…之间的内容被疏忽
B.Tag.EVAL_BODY_INCLUDE:暗示标签之间的内容被一般实行
3.doEndTag:但JSP容器碰到自界说标签的停止标记,就会挪用doEndTag()办法。doEndTag()办法也前往一个整数值,用来决意程序后续流程。
A.Tag.SKIP_PAGE:暗示立即中断实行网页,网页上未处置的静态内容和JSP程序均被疏忽任何已有的输入内容立即前往到客户的扫瞄器上。
B.Tag_EVAL_PAGE:暗示依照一般的流程持续实行JSP网页
7、用户自界说的标签属性:
假如在标签中还包括了自界说的属性,那末在标签处置类中应当将这个属性作为成员变量,而且分离供应设置和读取属性的办法。
8、创立标签处置类的步骤:
1.创立包括JSP网页静态文本的文件(便是要交换自界说JSP标签的文本)
2.在Web使用启动古装载静态文本
3.创立标签处置类
9、怎样创立包括JSP网页静态文本的文件:
1.利用java.util.Properties类来寄存要交换网页中自界说JSP标签的静态文本
2.Properties类代表了一系列属性的汇合,实在例既能够被保留到流中,也能够从流中加载。这些文本以key/value的情势寄存在WEB-INF目次下,比方key=value,在属性列表中这些key/value都是String范例的
10、Properties类的经常使用API:
1.setProperty(Stringkey,Stringvalue):挪用Hashtable类的put办法增加属性
2.getProperty(Stringkey):猎取属性列表中key对应的属性值
3.load(InputStreamin):从输出流对象InputStream中读取属性列表(Propertieslist)
4.store(OutputStreamout,StringcoMMent):利用得当的格局将属性列表的属性对写进输入流对象中,默许利用ISO-88590-1编码格局,以行的体例处置输出。属性的key/value之间以”=、:”配对,以回车、换行分开key/value配对
11、ServletContext类的经常使用API:
1.getContext(Stringuripath):前往服务器中uripath所代表的ServletContext对象
2.getInitParameter(Stringname):前往ServletConfig对象中name参数的值
3.getMineType(Stringfile):前往file参数代表的文件的MIME范例
4.getRequestDispatcher(Stringpath):前往path代表的RequestDispacher对象
5.getResourceAsStream(Stringpath):以输出流的情势前往path对应的资本,在输出留中对象能够为恣意情势的数据,path参数必需以“/”入手下手且相对ContextRoot
12、怎样利用ServletContxt读取并保留属性文件:
1.创立java.util.Properties类对象
2.猎取ServletContext对象
3.将属性文件以输出流的情势读进到某个输出流对象中
4.将输出流对象加载到Properties对象中
5.将Properties对象保留到ServletContext对象中
十3、怎样在Web使用启动古装载静态文本:
1.创立承继了HttpServlet类的子类,在web.xml中设置这Servlet时设置load-on-startup属性:
someclass
somepackage.SomeClass1
2.在这个Servlet的init()办法中创立java.util.Properties类
3.猎取以后Web使用的ServletContext对象
4.将WEB-INF目次下的属性文件读进到输出流InputStream中:
InputStreamin=context.getResourceAsString("WEB-INF/someproperties.properties");
5.将输出流加载到属性对象中
ps.load(in);
6.将属性对象保留到上
context.setAttribute("attributeName",ps);
十4、怎样创立标签处置类:
1.引进必须的资本:
importjavax.servlet.jsp.*;
importjavax.servlet.http.*;
importjava.util.*;
importjava.io.*;
2.承继TagSupport类并掩盖doStartTag()/doEndTag()办法
3.从ServletContext对象中猎取java.util.Properties对象
4.从Properties对象中猎取key对应的属性值
5.对猎取的属性举行响应的处置并输入了局
十5、创立标签库形貌文件(TagLibraryDescriptor):
1.标签库形貌文件,简称TLD,接纳XML文件格局,界说了用户的标签库。TLD文件中的元素能够分红3类:
A.:标签库元素
B.:标签元素
C.:标签属性元素
2.标签库元素用来设定标签库的相干信息,它的经常使用属性有:
A.shortname:指定TagLibrary默许的前缀名(prefix)
B.uri:设定TagLibrary的唯一会见暗示符
3.标签元素用来界说一个标签,它的罕见属性有:
A.name:设定Tag的名字
B.tagclass:设定Tag的处置类
C.bodycontent:设定标签的主体(body)内容
1).empty:暗示标签中没有body
2).JSP:暗示标签的body中能够到场JSP程序代码
3).tagdependent:暗示标签中的内容由标签本人去向理
4.标签属性元素用来界说标签的属性,它的罕见属性有:
A.name:属性称号
B.required:属性是不是必须的,默许为false
C.rtexprvalue:属性值是不是能够为request-time表达式,也就是相似于<%=…%>的表达式
十6、在Web使用中利用标签:
1.假如Web使用顶用到了自界说JSP标签,则必需在web.xml文件中到场元素,它用于声明所援用的标签地点的标签库
/sometaglib
/WEB-INF/someTLD.tld
2.:设定TagLibrary的唯一标示符,在Web使用中将依据它来援用TagLibray
3.:指定和TagLibrary对应的TLD文件的地位
4.在JSP文件中必要到场<%@taglib%>指令来声明对标签库的援用。比方:
<%@taglibprefix=“somePrefix”uri="/someuri"%>
5.prefix暗示在JSP网页中援用这个标签库的标签时的前缀,uri用来指定TagLibrary的标识符,它必需和web.xml中的属性坚持分歧。
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?
作者:
admin
时间:
2015-1-19 22:51
[url]http://www.ckuyun.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://www.ckuyun.com[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者:
金色的骷髅
时间:
2015-1-23 07:08
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
小女巫
时间:
2015-2-6 19:50
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者:
愤怒的大鸟
时间:
2015-2-18 11:41
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者:
深爱那片海
时间:
2015-3-6 04:53
是一种语言,用以产生「小应用程序(Applet(s))
作者:
精灵巫婆
时间:
2015-3-12 20:48
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者:
飘灵儿
时间:
2015-3-20 02:36
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2