2021SC@SDUSC山东大学软件学院软件工程应用与实践 COCOON 第四篇

编程入门 行业动态 更新时间:2024-10-26 04:22:28

2021SC@SDUSC<a href=https://www.elefans.com/category/jswz/34/1765798.html style=山东大学软件学院软件工程应用与实践 COCOON 第四篇"/>

2021SC@SDUSC山东大学软件学院软件工程应用与实践 COCOON 第四篇

2021SC@SDUSC

sitemap:

该类共有四个类,分别为LinkGaherer,LinkTranslator,NotifyingGenerator,SitemapServlet,其中NotifyingGenerator已弃用,将不再分析。

LinkGatherer:

链接聚集器,该类直接继承了ExtendedXLinkPipe,并实现了Transformer和CacheableProcessingComponent接口。

该类提供了getKey方法生成唯一密钥,返回1,getValidity方法生成有效性对象,返回了空值.

通过setup方法设置SourceResolver,Map,source和sitemap来处理请求对象。

addLink方法可以给Link列表添加一个href,同时会对该网址进行判断,将不符合要求的返回。

simpleLink方法可将进行简单链接,startLocator开启定位器,两个方法都继承自XLinkPipe,都是为链表添加一个

  public void startLocator( String href, String role, String title, String label, String uri, String name, String raw, Attributes attr ) throws SAXException{AttributesImpl newattr = new AttributesImpl( attr );int hrefIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_HREF );int roleIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_ROLE );int titleIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_TITLE );int labelIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_LABEL );if ( hrefIndex > -1 )newattr.setValue( hrefIndex, href );if ( roleIndex > -1 )newattr.setValue( roleIndex, role );if ( titleIndex > -1 )newattr.setValue( titleIndex, title );if ( labelIndex > -1 )newattr.setValue( labelIndex, label );super.startElement( uri, name, raw, newattr );}

startLocator通过获取设置属性,并调用startElement方法。

 public void simpleLink( String href, String role, String arcrole, String title, String show, String actuate, String uri, String name, String raw, Attributes attr ) throws SAXException{AttributesImpl newattr = new AttributesImpl( attr );int hrefIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_HREF );int roleIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_ROLE );int arcroleIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_ARCROLE );int titleIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_TITLE );int showIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_SHOW );int actuateIndex = attr.getIndex( XLINK_NAMESPACE_URI, XLINK_ACTUATE );if ( hrefIndex > -1 )newattr.setValue( hrefIndex, href );if ( roleIndex > -1 )newattr.setValue( roleIndex, role );if ( arcroleIndex > -1 )newattr.setValue( arcroleIndex, arcrole );if ( titleIndex > -1 )newattr.setValue( titleIndex, title );if ( showIndex > -1 )newattr.setValue( showIndex, show );if ( actuateIndex > -1 )newattr.setValue( actuateIndex, actuate );super.startElement( uri, name, raw, newattr );}

simpleLink通过获取设置属性,并调用startElement方法。

LinkTranslator:

链接转换器,该类直接继承了ExtendedXLinkPipe,并实现了Transformer和CacheableProcessingComponent接口。方法与LinkGatherer中类,但是每个方法都是从链表中寻找是否存在,若存在则使用链表中的,若不存在则使用参数中提供的。

SitemapServlet:

在该文件中,提供了初始化创建一个已配置的TreeProcessor,启动服务使用Cocoon树处理器处理传入请求,销毁方法,同时定义了一个保护类来完成这些操作,并作为该类的一个成员变量。

保护类RequestProcessor中,继承了RequestProcessor,在该类中可以获取进程和url。

createTreeProcessorConfiguration方法获取站点地图位置的uri,并在当前servlet上下文中解析它,Treeprocessor接收已解决的问题是非常重要的,仅提供相对于当前上下文的uri是不够的,而且不起作用,最后返回一个configuration

更多推荐

2021SC@SDUSC山东大学软件学院软件工程应用与实践 COCOON 第四篇

本文发布于:2024-02-13 01:38:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690208.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:山东大学   软件工程   第四篇   学院   软件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!