Atom 1.0 Syndication Format 概述

Atom 1.0 Syndication Format 概述

流行的 Web 内容联合格式是如何构成的

文档选项
将此页作为电子邮件发送

将此页作为电子邮件发送


最新推荐

Java 应用开发源动力 - 下载免费软件,快速启动开发


级别: 初级

James Snell, 软件工程师, IBM

2005 年 8 月 22 日

从技术角度来看流行的 Atom Syndication Format。本文将讨论 Atom 与其他联合格式相比在技术上的优势,并通过几个典型的例子加以说明。

在 Internet 上,Web 内容联合是防火墙后面日渐重要的一个领域。一旦 bolg 爱好者的独有领地和在线新闻网站演变成基于 Web 的服务和内容发布的下一代平台,会怎么样呢?虽然联合技术(syndication technology)的采用突飞猛进,但这些技术一直都面临着技术问题、意义不明确和互操作性的挑战,这些为紧跟新潮流的软件开发人员和消费者带来了困难。为了解决这些问题,联合技术社区的成员走到了一起,他们共同分享经验,定义了 Atom Syndication FormatAtom Publishing Protocol 标准(请参阅 参考资料)。2005 年 7 月 15 日,第一个规范 Atom Syndication 正式面世。

本文假设您对内容联合和已有的规范家族至少有基本的了解。阅读本文时,建议手头上准备一份 Atom 1.0 格式规范的副本,以便作为所讨论的各种元素的交叉参考。

必须指出的是,本文中的讨论没有任何贬低 RSS 的目的。我们的目的是说明相对于现有的联合格式规范家族,Atom 格式带来了哪些改进,强调 Atom 格式所固有的长处。

一个简单的例子

只要使用 RSS 规范系列产品做过内容联合,任何人都很容易掌握 Atom 1.0。不过 Atom 在很多重要的方面都与 RSS 不同。清单 1 给出了一个简单的 Atom 1.0 feed 的例子。


清单 1. 简单的 Atom 的例子


Atom 要求每个提要(feed)和记录(entry)都包括三个元素:

  • 惟一的标识符,可以与 blog 记录或者用记录表示的其他 Web 资源的 URI 一样简单,也可以像真正的 128 位全球统一标识符(GUID)那样复杂。
  • 标题(title),简短的、人类可读的记录主体行;允许使用空字符串(用空的标题元素表示,如 </code>)。 </li> <li><strong>时间戳</strong> 表示上一次更新的时间。 </li> </ul> <p>此外,Atom 花费很多时间精心描述了一种健壮、灵活、一致的内容模型,该模型能够支持普通文本、不严格的 HTML、结构良好的 XHTML、任意的 XML、base-64 编码的二进制内容、指向没有直接包含在提要(feed)中的内容的 URI 指针,等等。相比之下,由于不考虑使用非标准的名称空间扩展以及已实现的不一致的名称空间扩展,RSS 只能处理普通文本和不严格的 HTML 内容。</p> <p>Atom 还提供了定义良好的可扩展模型,该模型提供了添加受 RSS 支持的新元数据和内容的类似分散动态机制,但采用的方法便于保证实现之间的互操作性。比如,Atom 明确说明文档中什么地方能够和不能使用扩展元素、什么样的扩展是语言敏感的(因此要受 <code>xml:lang</code> 属性的影响)、Atom 实现遇到不认识的扩展元素时必须如何应对。</p> <p>最后,Atom 为核心名称空间中的各种必需和可选元数据元素提供了严格定义。比如,Atom 定义了 <code>author</code> 元素,这是一个复杂结构,包括姓名、邮件地址(按照 RFC 2822 的定义)以及与作者有某种联系的资源标识符(比如作者主页的 URI)。</p> <p>提要(feed)或记录(entry)可以有多个 <code>author</code> 元素,零个或多个 <code>contributor</code> 元素。这些元素表示可能对提要(feed)或记录(entry)的生产作出贡献的个人,但是不能按照输入级别确定作者(如音频工程师、编辑、软件开发人员等)。<code>author</code> 和 <code>contributor</code> 元素都是可扩展的,只要自己认为合适,内容的生产者可以提供关于作者或者参与者更详细的信息。相比之下,RSS 只规定了更加严格的 <code>author</code> 元素,这类元素只能在每个记录中出现一次,而且只能表示电子邮件地址。</p> <br> <strong>清单 2. 使用 FOAF 扩展的例子</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <p>Atom 1.0 新增的标准特性包括:</p> <ul> <li>单个记录能够独立于提要(feed)存在,为采集和发布联合内容提供了全新的选择。 </li> <li>与 ISO-8601 和 XML Schema 兼容的时间戳。 </li> <li>使用 <code>xml:base</code> 支持相对 URI。 </li> <li>通过使用 Internationalized Resource Identifiers (IRIs) 和 <code>xml:lang</code> 增强了国际化。 </li> <li>可访问性(Accessability)特性使残障人士更容易使用提要(feed)。 </li> <li>类 HTML 的动态可扩展链接机制可以将提要(feed)或记录(entry)链接到外部资源。 </li> <li>自参考(self-referential)提要(feed)有助于简化订阅过程。 </li> <li>可以标识 Atom 1.0 文档的 MIME 媒体类型。 </li> <li>对 XML Digital Signatures 和 XML Encryption 提供内建支持。 </li> <li>验证 Atom 1.0 文档示例的非标准 RELAX NG 模式。 </li> <li>兼容 RDF 的核心子集。 </li> </ul> <p>总之,Atom 内建的种种特性是这种格式能够支持更广泛的联合应用,并克服了现有联合标准家族中普遍存在的很多技术不足。</p> <br> <table width="100%" border="0"> <tbody> <tr> <td><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/d9e5fef902f5495e8fa6f894d7e35b75.gif"><br><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"></td> </tr> </tbody> </table> <table align="right" class="no-print"> <tbody> <tr align="right"> <td><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"><br> <table border="0"> <tbody> <tr> <td valign="middle"><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/12fe515f8e564045ad82598ca2a4928d.gif"><br></td> <td valign="top" align="right"><strong><font color="#996699">回页首</font></strong></td> </tr> </tbody> </table></td> </tr> </tbody> </table> <br> <br> <p><span class="atitle"><font>支持 enclosure 标签</font></span></p> <p>在 Weblog 和新闻内容联合之外,联合技术正在发展中的一种最流行的应用是<strong>播客(podcasting)</strong>。播客是发布录制的数据音频文件的数据提要(feed),可自动下载和复制到用户的便携式媒体设备上。目前,播客是通过 RSS 2.0 的 <code>enclosure</code> 标签实现的,如清单 3 所示。</p> <br> <strong>清单 3. RSS 2.0 播客的例子</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <p>虽然播客迅速盛行,但 RSS 2.0 enclosure 标签至少有一个很突出的局限性,播客们对这一局限性非常讨厌:RSS 只允许每个记录存在一个 <code>enclosure</code> 标签。这意味着对那些希望让自己的音频能以多种格式(如 MP3、BitTorrent 或 WMA)下载的播客生产者,必须为每种格式提供单独的提要(feed)。但是 Atom 允许一个记录中包含多个 enclosure,每个 enclosure 都有相关的媒体 <code>type</code> 属性,这样播客制作者就可以在一个提要(feed)中包含所有发布格式。</p> <p>作为一个例子,可以考虑 IT Conversations(请参阅 <font color="#996699">参考资料</font>)提供的播客提要(feed)列表。因为 IT Conversations 播客是以多种格式提供的,潜在的订阅者必须在至少 73 种带有 enclosure 的 RSS 提要(feed)(不包括列出的 37 种纯文本提要(feed))中进行选择。使用 Atom enclosure,只要在每个 Atom 记录(entry)中包括两个 enclosure 链接,IT Conversations 就可以把提要(feed)数减少一半。提要(feed)的减少可以降低内容发布者和内容订阅者的复杂度。</p> <br> <strong>清单 4. Atom 1.0 播客的例子</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <p>Atom enclosure 并不是只能用来发布音频内容。Enclosure 链接可以引用任何类型的资源。比如,清单 5 在一个记录中使用多个 enclosure 来引用可通过 FTP 访问的 PDF 文档的翻译版本。<code>hreflang</code> 属性表示每个 PDF 文档被翻译成的语言。</p> <br> <strong>清单 5. 使用 enclosure 表示多种语言版本的 Atom 1.0 提要(feed)</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <p>除非在提要(feed)中引入非标准名称空间扩展,否则 RSS 2.0 不可能支持 <font color="#996699">清单 5</font> 中的格式。原因是多方面的:</p> <ul> <li>RSS 不允许记录中包含多个 enclosure。 </li> <li>RSS 没有提供关于附加资源语言的含义。 </li> <li>RSS enclosure 要求使用 HTTP URL。 </li> <li>RSS 没有提供一种方式为引用资源添加人类可读的标题。 </li> </ul> <p>Atom <code>link</code> 元素的另一个重要特点是,使 enclosure 不仅能把可下载文件与记录关联在一起,还可以为其他类型的资源规定有意义的链接:</p> <ul> <li><code><link rel="alternate" /></code> —— 表示提要(feed)或记录(entry)的替代版本(如 weblog 主页)。 </li> <li><code><link rel="related" /></code> —— 表示记录(entry)内容中以某种形式描述的资源。 </li> <li><code><link rel="self" /></code> —— 表示和提要(feed)或记录(entry)等价的资源,一般来说,它允许提要(feed)或记录(entry)成为自参考的,从而能实现更灵活的自动发现机制。 </li> <li><code><link rel="via" /></code> —— 表示提供提要(feed)或记录(entry)所含信息的资源。比如,如果通过在线聚合服务来发布记录,那么可以使用 <code>via</code> 链接来标识该聚合程序,代替目前让聚合程序重写 RSS 的 <code>link</code> 元素的一般做法。 </li> </ul> <p>这些内建的链接关系是为提要(feed)中可能使用的最常见、最一般的链接类型设计的。可使用完全限定的 URI 来动态定义新的联系类型。稍后将通过一个例子进一步讨论 link 元素的可扩展性。</p> <br> <table width="100%" border="0"> <tbody> <tr> <td><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/d9e5fef902f5495e8fa6f894d7e35b75.gif"><br><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"></td> </tr> </tbody> </table> <table align="right" class="no-print"> <tbody> <tr align="right"> <td><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"><br> <table border="0"> <tbody> <tr> <td valign="middle"><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/12fe515f8e564045ad82598ca2a4928d.gif"><br></td> <td valign="top" align="right"><strong><font color="#996699">回页首</font></strong></td> </tr> </tbody> </table></td> </tr> </tbody> </table> <br> <br> <p><span class="atitle"><font>基于引用的内容</font></span></p> <p>除了 link 和 enclosure 外,Atom 还支持通过 URI 引用记录内容。清单 6 显示了一个图片 weblog 的 Atom 提要(feed)。<code>content</code> 元素引用 bolg 中的每一幅图片,<code>summary</code> 元素提供了图像标题。</p> <br> <strong>清单 6. 使用 Atom 1.0 的简单图像列表</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <p>这种基于引用的内容(content-by-reference)机制提供了一种非常灵活的机制,可用于扩展通过 Atom 联合的内容类型。</p> <p>比如,人们常常讨论使用联合模型来发布软件升级的想法。这样做的话,链接到包含软件升级、描述升级的网页的可下载文件会很有帮助。因为 Atom 明确区分了 <code>link</code> 和 <code>content</code> 元素的角色,创建这样的提要(feed)非常简单,不需要扩展核心 Atom 名称空间。</p> <br> <strong>请但 7. 使用 Atom 1.0 的软件升级提要(feed)</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <p>基于引用的内容的其他应用包括通常不适合静态嵌入到提要(feed)中的数据联合。这样的内容包括音频或视频的实时转播流、安全帐户信息或事务的链接和大型数据流。</p> <br> <strong>清单 8. 实时广告音频流的 Atom 1.0 提要(feed)</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <br> <table width="100%" border="0"> <tbody> <tr> <td><font face="Lucida Console"><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/d9e5fef902f5495e8fa6f894d7e35b75.gif"><br><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"></font></td> </tr> </tbody> </table> <table align="right" class="no-print"> <tbody> <tr align="right"> <td><font face="Lucida Console"><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"><br></font> <table border="0"> <tbody> <tr> <td valign="middle"><font face="Lucida Console"><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/12fe515f8e564045ad82598ca2a4928d.gif"><br></font></td> <td valign="top" align="right"><strong><font color="#996699">回页首</font></strong></td> </tr> </tbody> </table></td> </tr> </tbody> </table> <br> <br> <p><span class="atitle"><font>扩展 Atom</font></span></p> <p>当前联合技术的一大优势是开发人员能够用新的元数据类型扩展提要(feed)。Atom 工作组的主要目标之一就是定义良好的可扩展性模型,同时保留内容发布者和联合应用程序开发人员所期望的分散的、动态的可扩展机制,保持 Atom 实现之间的核心互操作性。</p> <p>Atom 的扩展有两种方式,下面将分别举例说明:</p> <ul> <li>新的名称空间限定的扩展元素和属性。 </li> <li>新的 link 元素关系类型。 </li> </ul> <p>名称空间扩展包括在核心 Atom 元素中混合使用新的 XML 元素和属性。比如,Atom 定义了描述记录创建和发布时刻的元素。不过,可以设想一个生成的内容必须在给定的时间点过期作废的应用程序(比如表示特价商品或者每周排名前十的列表)。Atom 没有提供用于规定超期时间的核心元素。但是可以在单独的名称空间中声明这样的元素,然后将它们包括到 Atom 提要(feed)中,如清单 9 所示。不关心 extension 扩展元素的消费者可以选择忽略它。</p> <br> <strong>清单 9. 带有名称空间的有效期扩展</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <p>除了几个例外,可以在 Atom 文档中任何地方使用扩展元素和属性。比如,Atom 的日期结构,如 <code>atom:updated</code> 元素,可以包含 <code>extension</code> 属性,但是不能包含 <code>extension</code> 元素。</p> <p>顺便提一下,由于 Atom 是通过正式 IETF 标准化过程定义的,人们常常误以为像 <font color="#996699">清单 9</font> 中的 <code>s:expires</code> 元素这类扩展也必须经过同样正规和集中的过程来批准。绝对不是。Atom 扩展能够以完全分散、开放和非正式的方式定义,不需要任何 IETF 参与,但同时仍能保持互操作性。</p> <p>链接关系扩展包括创建新的 <code>link</code> 元素和 <code>rel</code> 属性值,标识新的链接关系类型。<code>link</code> 元素将外部资源和提要(feed)或记录(entry)联系在一起,<code>rel</code> 属性表示链接的目的。通过创建新的链接关系,可以扩展 <code>link</code> 元素所能表达的联系类型。</p> <p>比如,多数 weblog 软件包都支持读者为 blog 记录提交评注。这些注释本身可作为提要(feed)中的记录。清单 10 显示了我提议的一种链接扩展,它支持记录和相关注释间的双向链接。</p> <br> <strong>清单 10. 建议的注释提要(feed)扩展</strong> <br> <table width="100%" border="1"> <tbody> <tr> <td> <pre><code class="section"> </code></pre> </td> </tr> </tbody> </table> <br> <p><font color="#996699">清单 10</font> 中创建了三种新的链接关系:</p> <ul> <li><code>http://purl.org/syndication/thread/1.0/comments</code> —— 链接提要(feed)或记录(entry)和包含注释的 Atom 提要(feed)。 </li> <li><code>http://purl.org/syndication/thread/1.0/root</code> —— 链接注释提要(feed)和包含原始记录的提要(feed)。 </li> <li><code>http://purl.org/syndication/thread/1.0/in-reply-to</code> —— 链接注释记录和原始记录。 </li> </ul> <p>这种扩展仍然在积极地讨论和开发中,预计将不断地演化。</p> <p>其他建议还包括表示提要(feed)历史、相关许可证、提供一种列表排序机制的提要(feed)扩展,更多的建议仍在讨论之中。其中一些扩展可能会最终成为 IETF Internet-Drafts 甚至 RFC,另一些则不会。随着开发人员不断发现新的和有趣的应用,可以预料随着时间的流逝将出现很多有用的扩展。只要稍加努力,在 Atom 中使用现有的大量 RSS 扩展是完全可能的。</p> <br> <table width="100%" border="0"> <tbody> <tr> <td><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/d9e5fef902f5495e8fa6f894d7e35b75.gif"><br><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"></td> </tr> </tbody> </table> <table align="right" class="no-print"> <tbody> <tr align="right"> <td><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"><br> <table border="0"> <tbody> <tr> <td valign="middle"><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/12fe515f8e564045ad82598ca2a4928d.gif"><br></td> <td valign="top" align="right"><strong><font color="#996699">回页首</font></strong></td> </tr> </tbody> </table></td> </tr> </tbody> </table> <br> <br> <p><span class="atitle"><font>结束语</font></span></p> <p>2004 年 5 月,Uche Ogbuji 在 developerWorks 上发表了一篇 <font color="#5c81a7">文章</font>,对 Atom 的定义作了初步介绍。Uche 在文中写道,Atom 的主要目标之一是“创建比很多 RSS 流派技术上更坚实的设计,利用大量 RSS 用户的实践经验作出切合实际的设计决策,使这种新的格式与 Web 的体系结构和文化相适应”。虽然花了一些时间,通过大量仔细地讨论和艰苦的工作,包括 IETF 工作组的积极参与,Atom 1.0 实现了为 Web 内容联合提供一种简单、定义良好和没有歧义的格式的目标。</p> <br> <table width="100%" border="0"> <tbody> <tr> <td><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/d9e5fef902f5495e8fa6f894d7e35b75.gif"><br><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"></td> </tr> </tbody> </table> <table align="right" class="no-print"> <tbody> <tr align="right"> <td><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/faa71289894b4f62a548a50076eba4bc.gif"><br> <table border="0"> <tbody> <tr> <td valign="middle"><img height="0" alt="" width="0" src="http://img.e-com-net.com/image/info8/12fe515f8e564045ad82598ca2a4928d.gif"><br></td> <td valign="top" align="right"><strong><font color="#996699">回页首</font></strong></td> </tr> </tbody> </table></td> </tr> </tbody> </table> <br> <br> <p><span class="atitle"><font>参考资料 </font></span></p> <ul> <li>您可以参阅本文在 developerWorks 全球站点上的 <font color="#5c81a7">英文原文</font>。<br><br></li> <li>阅读 <font color="#5c81a7">Atom 1.0 规范</font>。<br><br></li> <li>查看 <font color="#5c81a7">RSS 2.0 规范</font>。<br><br></li> <li>请访问 Atom Working Group 的 Wiki,可以找到已知 <font color="#5c81a7">Atom 1.0 兼容软件</font> 的列表,以及 Atom 1.0 和 RSS 2.0 的 <font color="#5c81a7">详细比较</font>。<br><br></li> <li>如果希望进一步了解播客,请访问 <font color="#5c81a7">ipodder.org</font>。<br><br></li> <li>阅读 Uche Ogbuji 的 developerWorks 文章“<font color="#996699">Thinking XML: 使用 Atom 格式连锁新闻及其他内容</font>”(2004 年 5 月)。 <br><br></li> <li><font color="#5c81a7">IT Conversations</font> 使用 RSS 提供了多重播客。 <br><br></li> <li>在 <font color="#5c81a7">developerWorks XML 专区</font>可以找到数以百计的 XML 资源。<br><br></li> <li>了解如何才能成为一名 <font color="#5c81a7">IBM 认证的 XML 及相关技术的开发人员</font>。 </li> </ul>   </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1281996898386853888"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(11),Web2.0)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1950231308781285376.htm" title="力扣热题100-------54. 螺旋矩阵" target="_blank">力扣热题100-------54. 螺旋矩阵</a> <span class="text-muted">海航Java之路</span> <a class="tag" taget="_blank" href="/search/%E5%8A%9B%E6%89%A3/1.htm">力扣</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E7%9F%A9%E9%98%B5/1.htm">矩阵</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]提示:m==matrix.lengthn</div> </li> <li><a href="/article/1950230873060208640.htm" title="你要记住,最重要的是:随时做好准备,为了你可能成为更好的自己,放弃现在的自己。" target="_blank">你要记住,最重要的是:随时做好准备,为了你可能成为更好的自己,放弃现在的自己。</a> <span class="text-muted">霖霖z</span> <div>打卡人:周云日期:2018年11月09日【日精进打卡第180天】【知~学习】《六项精进》0遍共214遍《通篇》1遍共106遍《大学》2遍共347遍《坚强工作,温柔生活》ok《不抱怨的世界》104-108页《经典名句》你要记住,最重要的是:随时做好准备,为了你可能成为更好的自己,放弃现在的自己。【行~实践】一、修身:(对自己个人)1、坚持打卡二、齐家:(对家庭和家人)打扫卫生,接送孩子,洗衣做饭,陪</div> </li> <li><a href="/article/1950229985633562624.htm" title="2023-11-02" target="_blank">2023-11-02</a> <span class="text-muted">一帆f</span> <div>发现浸润心田的感觉:今天一个机缘之下突然想分享我的婆媳关系,我一边分享一边回忆我之前和儿媳妇关系的微妙变化,特别是分享到我能感受到儿媳妇的各种美好,现在也能心平气和的和老公平等对话,看到自己看到老公,以己推人以人推己自然而然的换位思考,心中有一种美好的能量在涌动,一种浸润心田的感觉从心胸向全身扩散,美好极了……我很想记住这种感觉,赶紧把它写下来以留纪念,也就是当我看见他人的美好,美好的美妙的浸润心</div> </li> <li><a href="/article/1950229040682037248.htm" title="48. 旋转图像 - 力扣(LeetCode)" target="_blank">48. 旋转图像 - 力扣(LeetCode)</a> <span class="text-muted">Fiee-77</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a> <div>题目:给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转90度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例2:输入:matrix=[[5,1,9,11],[2,4,8,10],[13,3,6,</div> </li> <li><a href="/article/1950225532016717824.htm" title="恩小希美食成长日记之118:“摘星女神”王亚平归来,她的婚姻,治愈了多少职场女性的痛" target="_blank">恩小希美食成长日记之118:“摘星女神”王亚平归来,她的婚姻,治愈了多少职场女性的痛</a> <span class="text-muted">恩小希</span> <div>上周最为热闹的消息,无疑是神舟13号的三位航天英雄回来了.其中,最为瞩目的就是王亚平.她是我国首位进行太空行走的女航天员,也是为自己小女儿“摘星星的妈妈”。作为最受关注的职场妈妈,王亚平之所以能够成就这样一番事业,跟背后默默支持她的丈夫--赵鹏分不开。01王亚平1980年出生于山东烟台。父母都是地地道道的农民。王亚平这个姑娘从小体质好,一直练习长跑。高中时,空军来家乡招收女飞行员,作为体育班里唯一</div> </li> <li><a href="/article/1950225255557558272.htm" title="力扣面试题07 - 旋转矩阵" target="_blank">力扣面试题07 - 旋转矩阵</a> <span class="text-muted">茶猫_</span> <a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E7%9F%A9%E9%98%B5/1.htm">矩阵</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>题目:给你一幅由N×N矩阵表示的图像,其中每个像素的大小为4字节。请你设计一种算法,将图像旋转90度。不占用额外内存空间能否做到?示例1:给定matrix=[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例2:给定matrix=[[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,</div> </li> <li><a href="/article/1950222988032929792.htm" title="《李清照》君如流星我如月,夜夜流光相皎洁" target="_blank">《李清照》君如流星我如月,夜夜流光相皎洁</a> <span class="text-muted">小城爱夏天</span> <div>蝶恋花[宋代]李清照永夜恹恹欢意少。空梦长安,认取长安道。为报今年春色好。花光月影宜相照。随意杯盘虽草草。酒美梅酸,恰称人怀抱。醉莫插花花莫笑。可怜春似人将老。此首词作于1127年的,当时的赵明诚还在江宁担任知府,后来因官职的调配,调去建康,因为在去建康的路上,感染了疾病后死亡,此时是1129年。李清照听到这个悲痛的消息之后连忙赶去,为其处理后事,她终是没有到达建康。当时的国家早已山河破碎,她只能</div> </li> <li><a href="/article/1950221204333850624.htm" title="平静得接受自己的笨拙 20190118 晨间日记" target="_blank">平静得接受自己的笨拙 20190118 晨间日记</a> <span class="text-muted">吴伯符</span> <div>图片发自App最近做了一个关于微习惯的分享,这里有八个字:微量开始,超额完成。这里的言下之意其实是要你在一开始的时候,平静地接受自己的笨拙。接受自己的笨拙,理解自己的笨拙,放慢速度尝试,观察哪里可以改进,再反复练习,观察自己哪里可以再进一步改进,再反复…这是学习一切技能的必须的过程。这里的两个关键点是:1.尽快的开始这个过程,这就能够用到微习惯的微量开始。2.尽快的度过这个过程,这就需要用到超额完</div> </li> <li><a href="/article/1950218019712069632.htm" title="承德十大亲子鉴定医院名单(附2024年10所正规医院)" target="_blank">承德十大亲子鉴定医院名单(附2024年10所正规医院)</a> <span class="text-muted">国医基因陈主任</span> <div>承德哪家医院可以做亲子鉴定?承德市中心医院、中国人民解放军第二六六医院、承德医学院附属医院等都可以做常规亲子鉴定采样采集,一般的医院并不可以为你提供常规亲子鉴定检测的服务。承德亲子鉴定中心地址:承德市西大街路北11号(承德国医基因)。一般只有少数三甲医院可以做亲子鉴定采样,或者当地亲子鉴定中心可以做亲子鉴定。如果想做亲子鉴定,最好直接到亲子鉴定中心内或亲子鉴定医院采样点内进行双方抽血鉴定,这样会更</div> </li> <li><a href="/article/1950217889994829824.htm" title="践行8.0~第六周11.25-12.02" target="_blank">践行8.0~第六周11.25-12.02</a> <span class="text-muted">初队长</span> <div>突破后的喜悦最可怕的不是自己不清楚,而是自己清楚了,却依然不心动,我想这就是我们每个人的惰性存在,在这一周的践行,我发现自己依然是停留在自己的模式当中,不断的恶性的轮回,虽然的话,那再晨间日记方面是纸质的填写,但是对一天的工作没有起到应有的计划和推动的作用而我自己呢,也有些时候的话会处于一个相对来讲放松的一个状态,时间的把控的话也有一些点的消极,所以在这周的间隙,重点是关注自己的三大目标为目标来进</div> </li> <li><a href="/article/1950216926445760512.htm" title="Matrix-Breakout 2 Morpheus靶场解题过程" target="_blank">Matrix-Breakout 2 Morpheus靶场解题过程</a> <span class="text-muted"></span> <div>信息收集目标探测靶机目标很明显就是61.139.2.141了扫描开放端口发现22、80、81访问端口主机访问80翻译一下,并没有发现什么审查源代码发现里面有一张图片,下载下来看看是否有图片的隐写wgethttp://61.139.2.141/trinity.jpegstegoveritas-itrinity.jpeg-o/home/kali/Desktop/11分解后发现什么都没有,里面的keep</div> </li> <li><a href="/article/1950216619917635584.htm" title="2023-05-11" target="_blank">2023-05-11</a> <span class="text-muted">要开心呀88</span> <div>对于敏感型的人来说,情绪价值真的非常非常的重要,身边如果有个情绪稳定又温柔的人,这简直比吃药都管用,一个能够给你提供情绪价值的人,他身上珍贵的品质,甚至超过了很多物质的力量,情绪价值就是治愈伤痛最好的良药!!</div> </li> <li><a href="/article/1950215036291051520.htm" title="北斗短报文兜底、5G-A增强:AORO P1100三防平板构建应急通信网络" target="_blank">北斗短报文兜底、5G-A增强:AORO P1100三防平板构建应急通信网络</a> <span class="text-muted"></span> <div>公网中断的灾区现场,泥石流阻断了最后一条光缆。一支救援队却在废墟间有序穿行,队长手中的三防平板正闪烁着北斗卫星信号,定位坐标与伤亡信息化作一行行短报文,穿透通信孤岛直达指挥中心。这是AOROP1100三防平板搭载的北斗短报文功能在应急救援中的真实场景,更代表了工业移动终端在极端环境下的能力跃迁。AOROP1100三防平板作为遨游通讯2025年推出的旗舰三防设备,AOROP1100三防平板的技术基底</div> </li> <li><a href="/article/1950212288136933376.htm" title="今日随笔" target="_blank">今日随笔</a> <span class="text-muted">小小林_005b</span> <div>2019.10.21.周一晴全职第436天50+21/day118天【皮皮第118天】1.昨晚闹腾到一点多才安稳入睡,一个晚上一直哭哭闹闹(´;︵;`),没睡一会儿就会惊吓大哭(´;︵;`),一直抱着哄,似乎抱着才更加有安全感才能睡得更好。小胖子越来越重,我的手和腰部有些承受不了,经常腰酸痛到直不起来,好在有黑先生和啊影子下班后有空了就帮我抱一会儿。2.今日排便三次,一次偏向绿色,一两次金黄色。3</div> </li> <li><a href="/article/1950209621381672960.htm" title="Android 应用权限管理详解" target="_blank">Android 应用权限管理详解</a> <span class="text-muted"></span> <div>文章目录1.权限类型2.权限请求机制3.权限组和分级4.权限管理的演进5.权限监控和SELinux强制访问控制6.应用权限审核和GooglePlayProtect7.开发者最佳实践8.用户权限管理9.Android应用沙箱模型10.ScopedStorage(分区存储)11.背景位置权限(BackgroundLocationAccess)12.权限回收和自动清理13.权限请求的用户体验设计14.G</div> </li> <li><a href="/article/1950207459708694528.htm" title="聊斋那些事儿" target="_blank">聊斋那些事儿</a> <span class="text-muted">徒步取经人</span> <div>网上听一网友说他爸胆子很大,还无神论者,去他们以前得中学看学校了,听他说有一次晚上11点多,他爸爸去关教学楼的大门,走到楼口的时候清晰的听见有人在哭,声音好像在三四楼的样子传出来的,总共就四楼,那个学校,他爸爸一想,谁呀,这么晚了不会有女孩子被男的欺负了吧?就拿着手电筒还有棍子,想着自己一个人还是有点怕,就跑上去了,跑到三楼一听不对,应该是在四楼,就又往上爬上去了,为了给自己壮胆,跑到四楼就喊,谁</div> </li> <li><a href="/article/1950207200429404160.htm" title="2019-11-11" target="_blank">2019-11-11</a> <span class="text-muted">安静的小菇凉</span> <div>我自认为是向来喜欢清净的一个人,没有别人的打扰,也不喜欢吵吵闹闹的环境,只喜欢一个人安安静静的看书或者就静静的躺着什么都不做,有时候也会羡慕那些有一群朋友的人,哪怕是每天都聊一些有的没的,哪怕每天都只是简单的相互吹捧,也是很好。时常会想,如果我有了危险,会第一个给谁打电话,如果我有了难过的事,会给谁发消息倾诉呢?大概谁都不会吧,我已然,把自己活成了一座孤岛。</div> </li> <li><a href="/article/1950206817783050240.htm" title="青云官道庄岩柳琴免费完结版小说_已完结小说推荐青云官道(庄岩柳琴)" target="_blank">青云官道庄岩柳琴免费完结版小说_已完结小说推荐青云官道(庄岩柳琴)</a> <span class="text-muted">d036fb3b3d05</span> <div>《青云官道》主角:庄岩柳琴,简介:小科员庄岩,因一纸调研报告被副市长赏识,本以为能够就此走上人生巅峰,结果副市长就被双规!不过庄岩非但没有被牵连,反而拿着副市长留下的东西,不仅抱得美人,还平步青云,扶摇而上九万里!关注微信公众号【夏至文馆】去回复个书号【1190】即可阅读小说【青云官道】全文内容!!!小庄,现在几点了?”富丽堂皇的客厅里,一个身穿旗袍的美妇紧张的来回的踱步!“夫人,11点57。”站</div> </li> <li><a href="/article/1950205673333649408.htm" title="中原焦点团队 坚持原创分享第 1172天" target="_blank">中原焦点团队 坚持原创分享第 1172天</a> <span class="text-muted">金JJ</span> <div>信阳案例督导:在学生出现危机时,学校启动心理应急程序,一位心理老师安抚个案的同时,其他心理老师给班级同学进行团体心理辅导,学校方面马上通知家长前来学校。学校危机干预应急流程的成熟,能有效降低个案的自杀风险。个案不愿谈及家庭及自己自杀行为等问题时,用沙盘、玩具等分散注意力,谈论他感兴趣的话题,老师温和的态度,关切的言语,个案的情绪逐渐平复。从个案自己说的,流露的非言语,家长、老师、同学、以往的记录,</div> </li> <li><a href="/article/1950205032758571008.htm" title="51晨间日记" target="_blank">51晨间日记</a> <span class="text-muted">讨喜的鱼</span> <div>2018年11月15日,马上一个月又过去一半,离过年也不远。每到这个时候,心底总有些焦虑。是不是又像去年一样的场景,没赚什么钱,还是一无所有。再有没有以前的潇洒,一无所有,一身轻松,身上有些东西一旦背负,就卸不掉。今天比预计的时间,晚了两个小时,原来说服自己是这么简单的事,告诉自己多睡10分钟。一睁眼,已经过了2小时,这是常有的事。自律必须时刻警惕,而懒惰是要打个盹。工作的话,最近还算顺利。天天写</div> </li> <li><a href="/article/1950201094361640960.htm" title="人工智能应用研究快讯 2021-11-30" target="_blank">人工智能应用研究快讯 2021-11-30</a> <span class="text-muted">峰谷皆平</span> <div>[HTML]ArtificialIntelligenceforSkinCancerDetection:ScopingReviewATakiddin,JSchneider,YYang,AAbd-Alrazaq...JournalofMedicalInternet...,2021ABSTACT:Background:Skincanceristhemostcommoncancertypeaffectin</div> </li> <li><a href="/article/1950196136107110400.htm" title="京东优惠劵在哪领取,分享京东优惠劵领取渠道使用教程" target="_blank">京东优惠劵在哪领取,分享京东优惠劵领取渠道使用教程</a> <span class="text-muted">氧惠全网优惠</span> <div>大家好,我是氧惠遇见晴空,很多人京东优惠劵在哪领,在哪可以领取京东大额优惠劵,今天把方法分享给大家;一、京东app领券中心可以选择自己想要的类别查看,很多实用的券。还有几个整点的秒杀券,一般都是全品券之类的含金量很高的券。大家可以多多关注领券中心。如果没有时间盯着、不知道哪些券有用的话,可以加一些购物群,有好券会及时提醒领,但是我建议大家使用下面的方法更划算!二、氧惠app,(邀请码111999)</div> </li> <li><a href="/article/1950195246310682624.htm" title="【日更挑战】本季联盟50大球星(46-44)" target="_blank">【日更挑战】本季联盟50大球星(46-44)</a> <span class="text-muted">扁圆柱体</span> <div>日更挑战当前排名:第153天,第2269名,较昨日前进10名。46.KrisLetang,后卫,匹兹堡企鹅上赛季,Letang在55场比赛中得到45分(7球,38助攻),在所有后卫中,和闪电的VictorHedman并列第三,他在同等人数下的净胜球是+20,位列全队第一。而这个成绩在联盟自2009-10赛季统计该项指标后,是个人第二好成绩(+22,2011-12赛季)。Letang平均每场有24分</div> </li> <li><a href="/article/1950191461337198592.htm" title="算法刷题-动态规划之背包问题" target="_blank">算法刷题-动态规划之背包问题</a> <span class="text-muted"></span> <div>1.背包问题之01(4.30)题目描述小明有一个容量为VV的背包。这天他去商场购物,商场一共有NN件物品,第ii件物品的体积为wiwi,价值为vivi。小明想知道在购买的物品总体积不超过VV的情况下所能获得的最大价值为多少,请你帮他算算。输入描述输入第11行包含两个正整数N,VN,V,表示商场物品的数量和小明的背包容量。第2∼N+12∼N+1行包含22个正整数w,vw,v,表示物品的体积和价值。1</div> </li> <li><a href="/article/1950182381226881024.htm" title="感赏客户" target="_blank">感赏客户</a> <span class="text-muted">一克拉燕子</span> <div>1,我感赏每次能吸引轻微的客户!一两瓶帮他们调理好!2,我感赏我的每一个客户用好了后都热心帮我介绍!3,我感赏每个镇上都能遇到客户转代理!5,我感赏附近有疼痛的人都主动加我!6,我感赏每天都有人主动找我做代理!7,我感赏以前体验过的客户都找我卖产品!8,我感赏我的团队越来越大!100人!9,我感赏团队每个人都是销售精英!都是积极主动,好学!10,我感赏以前咨询过我的人都来跟我代理可暖!11,我感赏</div> </li> <li><a href="/article/1950181608191488000.htm" title="2018-05-03收盘点评:曙光初现!当前行情怎么做?(附今晚纵横股海公益课第9讲-如何操作底部机会个股)" target="_blank">2018-05-03收盘点评:曙光初现!当前行情怎么做?(附今晚纵横股海公益课第9讲-如何操作底部机会个股)</a> <span class="text-muted">db1eae6e5a78</span> <div>今日复盘:上证指数今日收在3100.86点,上涨19.68个点,+0.64%,深证成指收在10458.62点,上涨115.78个点,+1.12%。今天大盘又一次探底回升,收出一根小阳线,创业板K线上走势更好看一些,下影线很长,阳线实体也较大,这也体现出今天走势更强的是创业板为代表的小票。之前已经提到过很多次,今年行情大概率就是创业板行情,涨幅更大的是小票,确定性更大的也在小票上。今天涨停板家数为5</div> </li> <li><a href="/article/1950179866523529216.htm" title="大学社团管理系统(11831)" target="_blank">大学社团管理系统(11831)</a> <span class="text-muted">codercode2022</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/echarts/1.htm">echarts</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/sentinel/1.htm">sentinel</a><a class="tag" taget="_blank" href="/search/java-rocketmq/1.htm">java-rocketmq</a> <div>有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发四、项目截图有需要的同学,源代码和配套文档领取,加文章最下方的名片哦!</div> </li> <li><a href="/article/1950174495574650880.htm" title="100天蜕变41" target="_blank">100天蜕变41</a> <span class="text-muted">羽佳成长故事</span> <div>今天12月11日,晴又瞎忙了一天,干哩点啥呢?01.参加社群运营学院的组织策划活动,第一在线上主持人,第一次当小助手,第一次坚定表达自己的意见。群里两派意见,一个是想非比赛模式,另一个比赛模式,意见僵持不下。02.走路一个多小时03.听罗胖60秒十几遍04.下午文章完成打卡05.写打卡文06.写总结启示不干不知道,做一次才能理解别人。老觉得主持人反应慢,实际上是看许多事,忙不过来。</div> </li> <li><a href="/article/1950172082432176128.htm" title="苹果第二代基于ARM处理器的M1X发行日期和功能" target="_blank">苹果第二代基于ARM处理器的M1X发行日期和功能</a> <span class="text-muted">点点凌阁</span> <div>人们普遍认为是下一代苹果Mac处理器的基准已经出现。预计M1X将跟随2020年11月推出的M1,并在MacBookPro和iMac的下一版本中使用。这是苹果M1芯片后继产品的全部信息。什么是M1X?M1X芯片被认为是下一代AppleSilicon的名称。这将是苹果第二款针对Mac的基于ARM的处理器。苹果似乎并没有直接跳到M2,而是计划推出具有更多处理器核心和更多图形核心的相同基本处理器的更快版本</div> </li> <li><a href="/article/1950170537426743296.htm" title="在Windows11上安装Linux操作系统的几种技术方案" target="_blank">在Windows11上安装Linux操作系统的几种技术方案</a> <span class="text-muted">yuanpan</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>在Windows11上安装Linux主要有以下几种技术方案,每种方案适用于不同的需求场景:1.WindowsSubsystemforLinux(WSL)适用场景:开发、命令行工具、轻量级Linux环境支持发行版:Ubuntu、Debian、KaliLinux、Fedora等优点:轻量级:无需虚拟机,直接在Windows上运行Linux命令行环境。无缝集成:可访问Windows文件系统,支持VSCo</div> </li> <li><a href="/article/21.htm" title="矩阵求逆(JAVA)利用伴随矩阵" target="_blank">矩阵求逆(JAVA)利用伴随矩阵</a> <span class="text-muted">qiuwanchi</span> <a class="tag" taget="_blank" href="/search/%E5%88%A9%E7%94%A8%E4%BC%B4%E9%9A%8F%E7%9F%A9%E9%98%B5%E6%B1%82%E9%80%86%E7%9F%A9%E9%98%B5/1.htm">利用伴随矩阵求逆矩阵</a> <div>package gaodai.matrix; import gaodai.determinant.DeterminantCalculation; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 矩阵求逆(利用伴随矩阵) * @author 邱万迟 </div> </li> <li><a href="/article/148.htm" title="单例(Singleton)模式" target="_blank">单例(Singleton)模式</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E5%BC%8F/1.htm">模式</a><a class="tag" taget="_blank" href="/search/Singleton/1.htm">Singleton</a> <div>3.1           概述 如果要保证系统里一个类最多只能存在一个实例时,我们就需要单例模式。这种情况在我们应用中经常碰到,例如缓存池,数据库连接池,线程池,一些应用服务实例等。在多线程环境中,为了保证实例的唯一性其实并不简单,这章将和读者一起探讨如何实现单例模式。 3.2</div> </li> <li><a href="/article/275.htm" title="[开源与自主研发]就算可以轻易获得外部技术支持,自己也必须研发" target="_blank">[开源与自主研发]就算可以轻易获得外部技术支持,自己也必须研发</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a> <div>       现在国内有大量的信息技术产品,都是通过盗版,免费下载,开源,附送等方式从国外的开发者那里获得的。。。。。。        虽然这种情况带来了国内信息产业的短暂繁荣,也促进了电子商务和互联网产业的快速发展,但是实际上,我们应该清醒的看到,这些产业的核心力量是被国外的</div> </li> <li><a href="/article/402.htm" title="页面有两个frame,怎样点击一个的链接改变另一个的内容" target="_blank">页面有两个frame,怎样点击一个的链接改变另一个的内容</a> <span class="text-muted">Array_06</span> <a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/XHTML/1.htm">XHTML</a> <div><a src="地址"  targets="这里写你要操作的Frame的名字" />搜索 然后你点击连接以后你的新页面就会显示在你设置的Frame名字的框那里 targerts="",就是你要填写目标的显示页面位置 ===================== 例如: <frame src=&</div> </li> <li><a href="/article/529.htm" title="Struts2实现单个/多个文件上传和下载" target="_blank">Struts2实现单个/多个文件上传和下载</a> <span class="text-muted">oloz</span> <a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/1.htm">文件上传</a><a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a> <div>struts2单文件上传:     步骤01:jsp页面 <!--在进行文件上传时,表单提交方式一定要是post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写成multipart/form-data,不然就会以二进制文本上传到服务器端-->   <form action="fileUplo</div> </li> <li><a href="/article/656.htm" title="推荐10个在线logo设计网站" target="_blank">推荐10个在线logo设计网站</a> <span class="text-muted">362217990</span> <a class="tag" taget="_blank" href="/search/logo/1.htm">logo</a> <div>在线设计Logo网站。 1、http://flickr.nosv.org(这个太简单) 2、http://www.logomaker.com/?source=1.5770.1 3、http://www.simwebsol.com/ImageTool 4、http://www.logogenerator.com/logo.php?nal=1&tpl_catlist[]=2 5、ht</div> </li> <li><a href="/article/783.htm" title="jsp上传文件" target="_blank">jsp上传文件</a> <span class="text-muted">香水浓</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/fileupload/1.htm">fileupload</a> <div>1. jsp上传 Notice: 1. form表单 method 属性必须设置为 POST 方法 ,不能使用 GET 方法 2. form表单 enctype 属性需要设置为 multipart/form-data 3. form表单 action 属性需要设置为提交到后台处理文件上传的jsp文件地址或者servlet地址。例如 uploadFile.jsp 程序文件用来处理上传的文</div> </li> <li><a href="/article/910.htm" title="我的架构经验系列文章 - 前端架构" target="_blank">我的架构经验系列文章 - 前端架构</a> <span class="text-muted">agevs</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/jQuer/1.htm">jQuer</a> <div>框架层面:近几年前端发展很快,前端之所以叫前端因为前端是已经可以独立成为一种职业了,js也不再是十年前的玩具了,以前富客户端RIA的应用可能会用flash/flex或是silverlight,现在可以使用js来完成大部分的功能,因此js作为一门前端的支撑语言也不仅仅是进行的简单的编码,越来越多框架性的东西出现了。越来越多的开发模式转变为后端只是吐json的数据源,而前端做所有UI的事情。MVCMV</div> </li> <li><a href="/article/1037.htm" title="android ksoap2 中把XML(DataSet) 当做参数传递" target="_blank">android ksoap2 中把XML(DataSet) 当做参数传递</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>我的android app中需要发送webservice ,于是我使用了 ksop2 进行发送,在测试过程中不是很顺利,不能正常工作.我的web service 请求格式如下     [html]  view plain copy   <Envelope xmlns="http://schemas.</div> </li> <li><a href="/article/1164.htm" title="使用Spring进行统一日志管理 + 统一异常管理" target="_blank">使用Spring进行统一日志管理 + 统一异常管理</a> <span class="text-muted">baalwolf</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>统一日志和异常管理配置好后,SSH项目中,代码以往散落的log.info() 和 try..catch..finally 再也不见踪影! 统一日志异常实现类: [java]  view plain copy   package com.pilelot.web.util;      impor</div> </li> <li><a href="/article/1291.htm" title="Android SDK 国内镜像" target="_blank">Android SDK 国内镜像</a> <span class="text-muted">BigBird2012</span> <a class="tag" taget="_blank" href="/search/android+sdk/1.htm">android sdk</a> <div>一、镜像地址: 1、东软信息学院的 Android SDK 镜像,比配置代理下载快多了。 配置地址, http://mirrors.neusoft.edu.cn/configurations.we#android 2、北京化工大学的: IPV4:ubuntu.buct.edu.cn  IPV4:ubuntu.buct.cn IPV6:ubuntu.buct6.edu.cn </div> </li> <li><a href="/article/1418.htm" title="HTML无害化和Sanitize模块" target="_blank">HTML无害化和Sanitize模块</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/Linky/1.htm">Linky</a><a class="tag" taget="_blank" href="/search/Sanitize/1.htm">Sanitize</a> <div>一.ng-bind-html、ng-bind-html-unsafe         AngularJS非常注重安全方面的问题,它会尽一切可能把大多数攻击手段最小化。其中一个攻击手段是向你的web页面里注入不安全的HTML,然后利用它触发跨站攻击或者注入攻击。         考虑这样一个例子,假设我们有一个变量存</div> </li> <li><a href="/article/1545.htm" title="[Maven学习笔记二]Maven命令" target="_blank">[Maven学习笔记二]Maven命令</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>mvn compile compile编译命令将src/main/java和src/main/resources中的代码和配置文件编译到target/classes中,不会对src/test/java中的测试类进行编译 MVN编译使用 maven-resources-plugin:2.6:resources maven-compiler-plugin:2.5.1:compile &nbs</div> </li> <li><a href="/article/1672.htm" title="【Java命令二】jhat" target="_blank">【Java命令二】jhat</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Java%E5%91%BD%E4%BB%A4/1.htm">Java命令</a> <div>jhat用于分析使用jmap dump的文件,,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。 jhat默认开启监听端口7000的HTTP服务,jhat是Java Heap Analysis Tool的缩写 1. 用法: [hadoop@hadoop bin]$ jhat -help Usage: jhat [-stack <bool&g</div> </li> <li><a href="/article/1799.htm" title="JBoss 5.1.0 GA:Error installing to Instantiated: name=AttachmentStore state=Desc" target="_blank">JBoss 5.1.0 GA:Error installing to Instantiated: name=AttachmentStore state=Desc</a> <span class="text-muted">ronin47</span> <div>进到类似目录 server/default/conf/bootstrap,打开文件 profile.xml找到: Xml代码<bean    name="AttachmentStore"  class="org.jboss.system.server.profileservice.repository.AbstractAtta</div> </li> <li><a href="/article/1926.htm" title="写给初学者的6条网页设计安全配色指南" target="_blank">写给初学者的6条网页设计安全配色指南</a> <span class="text-muted">brotherlamp</span> <a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/ui%E8%87%AA%E5%AD%A6/1.htm">ui自学</a><a class="tag" taget="_blank" href="/search/ui%E8%A7%86%E9%A2%91/1.htm">ui视频</a><a class="tag" taget="_blank" href="/search/ui%E6%95%99%E7%A8%8B/1.htm">ui教程</a><a class="tag" taget="_blank" href="/search/ui%E8%B5%84%E6%96%99/1.htm">ui资料</a> <div>网页设计中最基本的原则之一是,不管你花多长时间创造一个华丽的设计,其最终的角色都是这场秀中真正的明星——内容的衬托     我仍然清楚地记得我最早的一次美术课,那时我还是一个小小的、对凡事都充满渴望的孩子,我摆放出一大堆漂亮的彩色颜料。我仍然记得当我第一次看到原色与另一种颜色混合变成第二种颜色时的那种兴奋,并且我想,既然两种颜色能创造出一种全新的美丽色彩,那所有颜色</div> </li> <li><a href="/article/2053.htm" title="有一个数组,每次从中间随机取一个,然后放回去,当所有的元素都被取过,返回总共的取的次数。写一个函数实现。复杂度是什么。" target="_blank">有一个数组,每次从中间随机取一个,然后放回去,当所有的元素都被取过,返回总共的取的次数。写一个函数实现。复杂度是什么。</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div> import java.util.Random; import java.util.Set; import java.util.TreeSet; /** * http://weibo.com/1915548291/z7HtOF4sx * #面试题#有一个数组,每次从中间随机取一个,然后放回去,当所有的元素都被取过,返回总共的取的次数。 * 写一个函数实现。复杂度是什么</div> </li> <li><a href="/article/2180.htm" title="struts2获得request、session、application方式" target="_blank">struts2获得request、session、application方式</a> <span class="text-muted">chiangfai</span> <a class="tag" taget="_blank" href="/search/application/1.htm">application</a> <div>1、与Servlet API解耦的访问方式。 a.Struts2对HttpServletRequest、HttpSession、ServletContext进行了封装,构造了三个Map对象来替代这三种对象要获取这三个Map对象,使用ActionContext类。 ----->   package pro.action; import java.util.Map; imp</div> </li> <li><a href="/article/2307.htm" title="改变python的默认语言设置" target="_blank">改变python的默认语言设置</a> <span class="text-muted">chenchao051</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div> import sys sys.getdefaultencoding()  可以测试出默认语言,要改变的话,需要在python lib的site-packages文件夹下新建: sitecustomize.py, 这个文件比较特殊,会在python启动时来加载,所以就可以在里面写上: import sys sys.setdefaultencoding('utf-8') &n</div> </li> <li><a href="/article/2434.htm" title="mysql导入数据load data infile用法" target="_blank">mysql导入数据load data infile用法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%AF%BC%E5%85%A5%E6%95%B0%E6%8D%AE/1.htm">导入数据</a> <div>我们常常导入数据!mysql有一个高效导入方法,那就是load data infile 下面来看案例说明 基本语法: load data  [low_priority] [local] infile 'file_name txt' [replace | ignore] into table tbl_name [fields [terminated by't'] [OPTI</div> </li> <li><a href="/article/2561.htm" title="phpexcel导入excel表到数据库简单入门示例" target="_blank">phpexcel导入excel表到数据库简单入门示例</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/Excel/1.htm">Excel</a> <div> 跟导出相对应的,同一个数据表,也是将phpexcel类放在class目录下,将Excel表格中的内容读取出来放到数据库中 <?php error_reporting(E_ALL); set_time_limit(0); ?> <html> <head> <meta http-equiv="Content-Type" </div> </li> <li><a href="/article/2688.htm" title="22岁到72岁的男人对女人的要求" target="_blank">22岁到72岁的男人对女人的要求</a> <span class="text-muted">dcj3sjt126com</span> <div>22岁男人对女人的要求是:一,美丽,二,性感,三,有份具品味的职业,四,极有耐性,善解人意,五,该聪明的时候聪明,六,作小鸟依人状时尽量自然,七,怎样穿都好看,八,懂得适当地撒娇,九,虽作惊喜反应,但看起来自然,十,上了床就是个无条件荡妇。 32岁的男人对女人的要求,略作修定,是:一,入得厨房,进得睡房,二,不必服侍皇太后,三,不介意浪漫蜡烛配盒饭,四,听多过说,五,不再傻笑,六,懂得独</div> </li> <li><a href="/article/2815.htm" title="Spring和HIbernate对DDM设计的支持" target="_blank">Spring和HIbernate对DDM设计的支持</a> <span class="text-muted">e200702084</span> <a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/%E9%A2%86%E5%9F%9F%E6%A8%A1%E5%9E%8B/1.htm">领域模型</a> <div>A:数据访问对象     DAO和资源库在领域驱动设计中都很重要。DAO是关系型数据库和应用之间的契约。它封装了Web应用中的数据库CRUD操作细节。另一方面,资源库是一个独立的抽象,它与DAO进行交互,并提供到领域模型的“业务接口”。    资源库使用领域的通用语言,处理所有必要的DAO,并使用领域理解的语言提供对领域模型的数据访问服务。</div> </li> <li><a href="/article/2942.htm" title="NoSql 数据库的特性比较" target="_blank">NoSql 数据库的特性比较</a> <span class="text-muted">geeksun</span> <a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a> <div>Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。   1. 数据模型 作为Key-value型数据库,Redis也提供了键(Key)和值(Value)的映射关系。除了常规的数值或字符串,Redis的键值还可以是以下形式之一: Lists (列表) Sets</div> </li> <li><a href="/article/3069.htm" title="使用 Nginx Upload Module 实现上传文件功能" target="_blank">使用 Nginx Upload Module 实现上传文件功能</a> <span class="text-muted">hongtoushizi</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a> <div>转载自: http://www.tuicool.com/wx/aUrAzm   普通网站在实现文件上传功能的时候,一般是使用Python,Java等后端程序实现,比较麻烦。Nginx有一个Upload模块,可以非常简单的实现文件上传功能。此模块的原理是先把用户上传的文件保存到临时文件,然后在交由后台页面处理,并且把文件的原名,上传后的名称,文件类型,文件大小set到页面。下</div> </li> <li><a href="/article/3196.htm" title="spring-boot-web-ui及thymeleaf基本使用" target="_blank">spring-boot-web-ui及thymeleaf基本使用</a> <span class="text-muted">jishiweili</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/thymeleaf/1.htm">thymeleaf</a> <div>视图控制层代码demo如下:   @Controller @RequestMapping("/") public class MessageController { private final MessageRepository messageRepository; @Autowired public MessageController(Mes</div> </li> <li><a href="/article/3323.htm" title="数据源架构模式之活动记录" target="_blank">数据源架构模式之活动记录</a> <span class="text-muted">home198979</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8%E8%AE%B0%E5%BD%95/1.htm">活动记录</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%98%A0%E5%B0%84/1.htm">数据映射</a> <div>hello!架构 一、概念 活动记录(Active Record):一个对象,它包装数据库表或视图中某一行,封装数据库访问,并在这些数据上增加了领域逻辑。 对象既有数据又有行为。活动记录使用直截了当的方法,把数据访问逻辑置于领域对象中。   二、实现简单活动记录 活动记录在php许多框架中都有应用,如cakephp。 <?php /** * 行数据入口类 *</div> </li> <li><a href="/article/3450.htm" title="Linux Shell脚本之自动修改IP" target="_blank">Linux Shell脚本之自动修改IP</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/Debian/1.htm">Debian</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a> <div>作为一名 Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名、ip信息、网关等配置。修改成特定的主机名在维护和管理方面也比较方便。如下脚本用途为:修改ip和主机名等相关信息,可以根据实际需求修改,举一反三! #!/bin/sh #auto Change ip netmask ga</div> </li> <li><a href="/article/3577.htm" title="开发环境搭建" target="_blank">开发环境搭建</a> <span class="text-muted">独浮云</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a> <div>       最近在开发过程中,经常出现MyEclipse内存溢出等错误,需要重启的情况,好麻烦。对于一般的JAVA+TOMCAT项目开发,其实没有必要使用重量级的MyEclipse,使用eclipse就足够了。尤其是开发机器硬件配置一般的人。         &n</div> </li> <li><a href="/article/3704.htm" title="操作日期和时间的工具类" target="_blank">操作日期和时间的工具类</a> <span class="text-muted">vipbooks</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7%E7%B1%BB/1.htm">工具类</a> <div>   大家好啊,好久没有来这里发文章了,今天来逛逛,分享一篇刚写不久的操作日期和时间的工具类,希望对大家有所帮助。 /* * @(#)DataFormatUtils.java 2010-10-10 * * Copyright 2010 BianJing,All rights reserved. */ package test; impor</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>