??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产婷婷香蕉久久久久久,亚洲av色福利天堂,亚洲av再在线观看http://www.tkk7.com/hnicypb/登高者必自卑Q行q者必自迩Q在q个世界上,重要的不是你正站在那里,而是你正朝什么方向移?..... zh-cnSun, 11 May 2025 11:26:19 GMTSun, 11 May 2025 11:26:19 GMT60JAVA几种对象的解?/title><link>http://www.tkk7.com/hnicypb/archive/2008/10/16/234681.html</link><dc:creator>Sky Yi</dc:creator><author>Sky Yi</author><pubDate>Thu, 16 Oct 2008 04:52:00 GMT</pubDate><guid>http://www.tkk7.com/hnicypb/archive/2008/10/16/234681.html</guid><wfw:comment>http://www.tkk7.com/hnicypb/comments/234681.html</wfw:comment><comments>http://www.tkk7.com/hnicypb/archive/2008/10/16/234681.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hnicypb/comments/commentRss/234681.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hnicypb/services/trackbacks/234681.html</trackback:ping><description><![CDATA[ <img src ="http://www.tkk7.com/hnicypb/aggbug/234681.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hnicypb/" target="_blank">Sky Yi</a> 2008-10-16 12:52 <a href="http://www.tkk7.com/hnicypb/archive/2008/10/16/234681.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MSSQL事务、事务隔ȝ别、锁的简单ȝhttp://www.tkk7.com/hnicypb/archive/2008/10/11/233731.htmlSky YiSky YiSat, 11 Oct 2008 05:11:00 GMThttp://www.tkk7.com/hnicypb/archive/2008/10/11/233731.htmlhttp://www.tkk7.com/hnicypb/comments/233731.htmlhttp://www.tkk7.com/hnicypb/archive/2008/10/11/233731.html#Feedback1http://www.tkk7.com/hnicypb/comments/commentRss/233731.htmlhttp://www.tkk7.com/hnicypb/services/trackbacks/233731.html

一、数据库事务
1、事务是作ؓ单个逻辑工作单元执行的一pd操作。可以是一条SQL语句也可以是多条SQL语句?br />
2、事务具有四个特?br />    原子性:不可分隔、成则具成、|则具败?br />    恢裕菏挛裨谕瓿墒保 匦胧?械氖 L3忠恢伦刺?
   隔离性:独立的执行互不干扰。由q发事务所作的修改必须与Q何其他ƈ发事务所作的修改隔离Q另外的描述Q多个事务同时进行,它们之间应该互不q扰.应该防止一个事务处理其他事务也要修改的数据Ӟ不合理的存取和不完整的读取数?
  
3、启动事务:使用 API 函数?Transact-SQL 语句Q可以按昑ּ、自动提交或隐式的方式来启动事务?br />
4、结束事务:(zhn)可以?COMMITQ成功) ?ROLLBACKQ失败) 语句Q或者通过 API 函数来结束事务?br />
5、创Z务的原则Q?br />    可能事务保持短很重要Q当事务启动后,数据库管理系l?(DBMS) 必须在事务结束之前保留很多资源、以保证事务的正安全执行?br />    特别是在大量q发的系l中Q?保持事务短以减少q发 资源锁定争夺Q将先得更ؓ重要?br />    1、事务处理,止与用户交互,在事务开始前完成用户输入?br />    2、在览数据Ӟ量不要打开事务
   3、尽可能使事务保持简短?br />    4、考虑为只L询用快照隔,以减阻塞?br />    5、灵zd使用更低的事务隔ȝ别?br />    6、灵zd使用更低的游标ƈ发选项Q例如开攑ּq发选项?br />    7、在事务中尽量讉K的数据量最?/p>

 

二、事务的隔离U别

1、数据库事务的隔ȝ别:四种

隔离U别 脏读QDirty ReadQ?/th> 不可重复读(NonRepeatable ReadQ?/th> q读QPhantom ReadQ?/th>
L提交QRead uncommittedQ?/td> 可能 可能 可能
d提交QRead committedQ?/td> 不可?/td> 可能 可能
可重复读QRepeatable readQ?/td> 不可?/td> 不可?/td> 可能
可串行化QSerializable Q?/td> 不可?/td> 不可?/td> 不可?/td>

2、数据库一般的默认隔离ȝ别是“d提交”Q默认的事务隔离U别?InsertQupdate Qdelete下的是X? 会等待事务完成。通常情况下可以把隔离U别设ؓRead CommitedQ它能避免脏读,而且有较好的q发性能。尽它会导致不可重复读、虚dW二cLCq问题Q在可能出现q类问题的个别场合可以由应用E序釆用(zhn)观锁或乐观?/font>来控制?/p>


3、SQL语句可以使用SET TRANSACTION ISOLATION LEVEL来设|事务的隔离U别。如QSET TRANSACTION ISOLATION LEVEL   Read Committed。若要在应用E序中用更严格或较宽松的隔ȝ别,可以通过使用   set transaction isolation level语句讄会话的隔ȝ别,来自定义整个会话的锁定?nbsp; 
指定隔离U别后,sql server会话中所?font color="#ff0000">select语句
的锁定行为都q行于该隔离U别上,q一直保持有效直C话终止或者将隔离U别讄为另一个别?/p>

4、另外要提一?SQL标准对事务隔ȝ别的规定,是按该别不可能发生什么问题来定?不一定会发生q样的问?/font>;所?不同的数据库对事务隔ȝU别U定不一?比如,有的数据库把 可重复读U别按可串行化来对待?lkdlhw_2000个h理解:各个数据库应该都遵@四种标准的事务隔ȝU的定义Q但是某些数据库具体实现可能不存在四U,因ؓ串行化可以避免不可重复读Q因此某些数据库语法上支持设|事务隔ȝUؓ不可重复读,但实际上是串行化在v作用。也是说只要该U别能够避免不可重复ȝ问题Q就可以UCZ可重复读取别?

5、该隔离U别定义一个事务必M其他事务所q行的资源或数据更改盔RȝE度。事务隔ȝ别控Ӟ
     d数据时是否占用锁以及所h的锁cd?br />      占用d锁的旉?br />      引用其他事务修改的行的读取操作是否:
     在该行上的排他锁被释放之前阻塞其他事务?br />      索在启动语句或事务时存在的行的已提交版本?br />      d未提交的数据修改

三、锁

1、分c:从数据库pȝ的角度来看:分ؓ独占锁(x它锁Q,׃n锁和更新?/p>

2、事务用锁Q防止其他用户修改另外一个还没有完成的事务中的数据。对于多用户pȝ来说Q锁机制是必ȝ。SQL Server有多U锁Q允怺务锁定不同的资源。锁是保护指定的资源,不被其他事务操作。SQL Server有多U锁Q允怺务锁定不同的资源。锁是保护指定的资源,不被其他事务操作。ؓ了最化锁的成本QSQL Server自动C与Q务相应等U的锁来锁定资源对象。锁定比较小的对象,例如锁定行,虽然可以提高q发性,但是却有较高的开支,因ؓ如果锁定许多行,那么需要占有更多的锁。锁定比较大的对象,例如锁定表,会大大降低ƈ发性,因ؓ锁定整个表就限制了其他事务访问该表的其他部分Q但是成本开支比较低Q因为只需l护比较?yu)的锁?/p>

3?锁的特点Q?
1. 锁是保证q发控制的手D?
2. 可以锁定的资源包括行、页、簇、表和数据库
3. 锁的cd主要包括׃n锁和排它?
4. Ҏ(gu)cd的锁包括意图锁、修攚w和模式锁
5. ׃n锁允许其他事务l用锁定的资源
6. 排它锁只允许一个事务访问数?
7. pȝ本n可以处理死锁
8. 用户可以Ҏ(gu)实际情况定制锁的一些特?/p>

4、锁是定义到sql语句上的Q对数据q行操作的sql是QselectQInsertQupdate Qdelete。不同的事物隔离卌在执行sql的时候会向表上发送不同的锁?/p>

关于锁的更多描述Q可以去|上搜烦一下?a >http://www.bitscn.com/windows/sql/200604/1068.html

四、多个用户同时对数据库的q发操作时会带来以下数据不一致的问题Q?/p>

脏读dirty readsQ?br />    当事务读取还未被提交的数据时Q就会发生这U事件。D例来_Transaction1修改了一行数据,然后Transaction2在Transaction1q未提交修改操作之前d了被修改的行。如果Transaction1回滚了修Ҏ(gu)作,那么Transaction2d的数据就可以看作是从未存在过的?br /> 不可重复的读non-repeatable readsQ?br />    当事务两ơ读取同一行数据,但每ơ得到的数据都不一hQ就会发生这U事件。D例来_Transaction1d一行数据,然后Transaction2修改或删除该行ƈ提交修改操作。当Transaction1试图重新d该行Ӟ它就会得C同的数据|如果该行被更斎ͼ或发现该行不再存在(如果该行被删除)?nbsp;   
虚读phantom readQ?br />    如果W合搜烦条g的一行数据在后面的读取操作中出现Q但该行数据却不属于最初的数据Q就会发生这U事件。D例来说Transactio1d满某种搜烦条g的一些行Q然后Transaction2插入了符合Transaction1的搜索条件的一个新行。如果Transaction1重新执行产生原来那些行的查询Q就会得C同的行?/p>

Z解决q些问题Q数据库引入?#8220;?#8221;的机Ӟ从数据库pȝ的角度来看:分ؓ独占锁(x它锁Q,׃n锁和更新锁,详细内容不再描述Q?/p>

 

五、lkdlhw_2000个h理解Q以下问题都是推,q没有证实)Q?/p>

隔离U别是由锁来实现的,之所以出C务的隔离U别相当于数据库开发商Ҏ(gu)一般的业务需求实现定义好的一l锁使用的规则,便于我们时候,当我们将事务隔离U别定义到某一U上后如果不能满需求,我们q可以自行定义sql的锁来覆盖事务隔ȝ别默认的锁机Ӟ

锁存在两个问题:一个是锁的_度Q一个是锁的旉Q锁的时间应该包括两U一U是sql执行完就释放锁,领一中是事务l束后释N

六、参考文?/p>

http://www.es-ivision.com/Channel-4-10-108-0.html
http://tech.ccidnet.com/art/1105/20050602/261573_1.html
http://www.tkk7.com/zhengtengfeng/archive/2007/04/23/113025.html

七、事务隔ȝ别的例子

1. Read UncommittedQ最低等U的事务隔离Q仅仅保证了dq程中不会读取到非法数据。上?U不定情况均有可能发生?br /> 2. Read CommittedQ大多数L数据库的默认事务{Q保证了一个事务不会读到另一个ƈ行事务已修改但未提交的数据,避免?#8220;脏读?#8221;。该U别适用于大多数pȝ?br /> W一个查询事?br /> SET TRANSACTION ISOLATION LEVEL   Read Committed
begin tran
   update Cate SET Sname=Sname+'b' where ID=1
   SELECT * FROM cate where ID=1
   waitfor delay '00:00:6'  
   rollback tran --回滚事务
select Getdate()
SELECT * FROM cate where ID=1
W二个查询事?br /> SET TRANSACTION ISOLATION LEVEL Read committed   --把committed换成Read uncommitted可看?#8220;脏读?#8221;的示例?br /> SELECT * FROM cate where ID=1
select Getdate()
可以看到使用 Read Committed 成功的避免了“脏读?#8221;.
3. Repeatable ReadQ保证了一个事务不会修改已l由另一个事务读取但未提交(回滚Q的数据。避免了“脏读?#8221;?#8220;不可重复d”的情况,但是带来了更多的性能损失?br /> W一个查询事?br /> SET TRANSACTION ISOLATION LEVEL Repeatable Read --   把Repeatable Read换成Read committed可以看到“不可重复d”的示?br /> begin tran
SELECT * FROM cate where ID=33 --W一ơ读取数?br />    waitfor delay '00:00:6'  
SELECT * FROM cate where ID=33 --W二ơ读取数据,不可重复d
commit
W二个查询事?br /> SET TRANSACTION ISOLATION LEVEL Read committed
update cate set Sname=Sname+'JD' where ID=33
SELECT * FROM cate where ID>30
4. SerializableQ最高等U的事务隔离Q上?U不定情况都将被规ѝ这个别将模拟事务的串行执行?br /> 在第一个查询窗口执?br /> SET TRANSACTION ISOLATION LEVEL Serializable -- 把Serializable换成Repeatable Read 可看?#8220;qd?#8221;的示?br /> begin tran
SELECT * FROM cate where ID>30 --W一ơ读取数据,“qd?#8221;的示?br />    waitfor delay '00:00:6'   --延迟6U读?br /> SELECT * FROM cate where ID>30 --W一ơ读取数?br /> commit
W二个查询事?br /> SET TRANSACTION ISOLATION LEVEL Read committed
Delete from cate where ID>33
SELECT * FROM cate where ID>30
创徏事务

讄事务U别QSET TRANSACTION ISOLATION LEVEL
开始事务:begin tran
提交事务QCOMMIT
回滚事务QROLLBACK
创徏事务保存点:SAVE TRANSACTION savepoint_name
回滚C务点:ROLLBACK TRANSACTION savepoint_name



1、ƈ发的影响Q?a >http://technet.microsoft.com/zh-cn/library/ms190805.aspx
      该文章列Zq发引v的四U媄响:丢失更新、脏?未提交的依赖关系)、不可重复读(不一致的分析)、?br />   
2、ƈ发控制类型:http://technet.microsoft.com/zh-cn/library/ms189132.aspx
     当许多h试图同时修改数据库中的数据时Q必dC个控制系l,使一个h所做的修改不会对他人所做的修改产生负面影响。这UCؓq发控制。ƈ发控制类型分Z大类Q乐观ƈ发控制和(zhn)观q发控制
  
3、数据库引擎中的隔离U别Q?a >http://technet.microsoft.com/zh-cn/library/ms189122.aspx
     1)讲到了事务隔ȝ别控制的内容Q?br />            事务隔离U别控制Q?br />           d数据时是否占用锁以及所h的锁cd?br />           占用d锁的旉?br />           引用其他事务修改的行的读取操作是否:
                 在该行上的排他锁被释放之前阻塞其他事务?br />                 索在启动语句或事务时存在的行的已提交版本?br />                  d未提交的数据修改?br />       2)列出了事务的隔离U别Q?br />         未提交读Q隔M务的最低别,只能保证不读取物理上损坏的数据)
         已提交读Q数据库引擎的默认别)
         可重复读
         可序列化Q隔M务的最高别,事务之间完全隔离Q?br />
     3)选择事务隔离U别不媄响ؓ保护数据修改而获取的锁。事务L在其修改的Q何数据上获取排他锁ƈ在事务完成之前持有该锁,不管事务讄了什么样的隔ȝ别。对于读取操作,事务隔离U别主要定义保护U别Q以防受到其他事务所做更改的影响?br />   
4、SET TRANSACTION ISOLATION LEVEL (Transact-SQL) 讄事务隔离U别http://technet.microsoft.com/zh-cn/library/ms173763.aspx
     该选项的作用与在事务内所?SELECT 语句中的所有表上设|?HOLDLOCK 相同
5、ȝQ?br />      通过以上几篇文章基本上可以了解数据库事务和锁之间的关pR数据库事务隔别也是由锁机制来最实现的。要想了解关于锁的更深层析的内容q需要专门学习锁的相关知识?/div>

Sky Yi 2008-10-11 13:11 发表评论
]]>struts2W记 - 配置http://www.tkk7.com/hnicypb/archive/2008/10/08/233135.htmlSky YiSky YiWed, 08 Oct 2008 06:36:00 GMThttp://www.tkk7.com/hnicypb/archive/2008/10/08/233135.htmlhttp://www.tkk7.com/hnicypb/comments/233135.htmlhttp://www.tkk7.com/hnicypb/archive/2008/10/08/233135.html#Feedback0http://www.tkk7.com/hnicypb/comments/commentRss/233135.htmlhttp://www.tkk7.com/hnicypb/services/trackbacks/233135.html阅读全文

Sky Yi 2008-10-08 14:36 发表评论
]]>
struts2W记 - helloworldhttp://www.tkk7.com/hnicypb/archive/2008/10/08/233132.htmlSky YiSky YiWed, 08 Oct 2008 06:31:00 GMThttp://www.tkk7.com/hnicypb/archive/2008/10/08/233132.htmlhttp://www.tkk7.com/hnicypb/comments/233132.htmlhttp://www.tkk7.com/hnicypb/archive/2008/10/08/233132.html#Feedback0http://www.tkk7.com/hnicypb/comments/commentRss/233132.htmlhttp://www.tkk7.com/hnicypb/services/trackbacks/233132.html可以从Apache Struts 的官方站点(http://struts.apache.orgQ下载发布版?当前最新的版本?.0.9。下载的版本中包含struts2-core.jar和相关的依赖cd文gQ示例程序,HTML格式的文档,和全部的源代码?/span>

1Q导入struts2需要的jar文g
commons-logging-1.0.4.jar              日志记录接口Q可以配|选择使用jdk1.4 log 或?log4j
freemarker-2.3.8.jar                        所有标{模板都是用Freemarker~写
ognl-2.6.11.jar                               Objet Graph NavigationLanguageQStruts2表达式的基础?/span>
struts2-core-2.0.9.jar                      struts2框架cd
xwork-2.0.4.jar                               xworkcdQstruts2的基

2Q配|web.xml文g
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"
>

<web-app>
  
<display-name>My Application</display-name>
  
<filter>
    
<!--配置strutsqo?/span>-->
    
<filter-name>struts2</filter-name>
    
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  
</filter>

  
<filter-mapping>
    
<filter-name>struts2</filter-name>
    
<url-pattern>/*</url-pattern>
  
</filter-mapping>
</web-app>

3Q配|struts.xml文g
必须要把该文件徏立在~译好的WEB-INF下的classes目下
在myeclipse可以把它新徏到src下。src下的所有资源文件等都会在保存时自动~译到classes目录
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>

<struts>
    
<!-- 配置默认的包. -->
    
<package name="default" extends="struts-default">
         
    
</package>
</struts>


3Q徏立页面文?br /> Struts2提交一个请求的时候,输入的数据ƈ没有直接送给下一个页面,而是送给了一个你提供的JavacR这UJavac被UCؓAction。当 Action执行之后QStruts2会选择一个结果作回,通常情况下是一个JSP面Q但是也可以是PDF文gQExcel表单或者Java AppletH口?br /> q时需要做的是
  • 创徏一个JSP面来显C欢q消?/font>
  • 创徏一个ActioncL生成Ƣ迎消息
  • 在struts.xml中创Z个配|项来关联上q的Action和JSP面

  • 建立jsp面
    W一行引入了struts2的标{ֺQ在之后的页面中可以使用s标签了。这行在几乎所有的struts2应用的jsp面中都会出?/span>

    <%@ taglib prefix="s" uri="/struts-tags" %>
    <html>
        
    <head>
            
    <title>Hello World!</title>
        
    </head>
        
    <body>
            
    <s:form action="hello">
             
    <s:textfield name="name" label="name" />
           
    </s:form>
        
    </body>
    </html>

    创徏actionc?br /> executeҎ(gu)用来处理业务操作
    import com.opensymphony.xwork2.ActionSupport;
    public class HelloWorld extends ActionSupport {

        
    private String name;
        
    public String execute() throws Exception {
           
    return SUCCESS;
        }


        
    public void setName(String name){
            
    this.name= name;
        }


        
    public String getName() {
            
    return name;
        }

    }

    配置struts.xml兌jsp和action
    <!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
        
    <package name="tutorial" extends="struts-default">        
            
    <action name="HelloWorld" class="tutorial.HelloWorld">         
                
    <result>/HelloWorld.jsp</result>        
            
    </action>       
         
    </package>
    </struts>

    工作原理
    当浏览器发送请?http://localhost:8080/tutorial/HelloWorld.action 的时候,在服务器上发生了如下事gQ?br />
    1. 服务器接收到对HelloWorld.action的请求,Ҏ(gu)web.xml文g中的配置Q所有以.actionl尾的请求都会被 org.apache.struts2.dispatcher.FilterDispatcherqoQ所以这个请求被发送给 FilterDispatcherQFilterDispatcher是Struts 2 框架的入口点?
    2. Struts 2 框架查找HelloWorld.action对应的Java c,发现是HelloWorld.javaQ之后Struts 2 框架实例化了一个HelloWorldc,q且调用了这个类的executeҎ(gu)?
    3. executeҎ(gu)讄了message的内容,q且q回SUCCESS。框架却定返回值SUCCESSQƈ且找到对应的内容HelloWorld.jspQƈ且通知服务器将HelloWorld.jsp作ؓq回内容?
    4. 在HelloWorld.jsp被处理的q程中,<s:property value="message" />标签的内容被替换为HelloWorld 的getMessageҎ(gu)调用的结?
    5. Ҏ(gu)HelloWorld.jsp内容生成的HTML内容被发回到h的浏览器?
    l果cdQResult TypeQ?/font>
    Action 处理完成之后Q会选择一个结果返回给客户Q这个结果可能是单的HTML面QJSP面QFreeMarker模板QVelocity模板Q或者是一?PDF文旦个或者是更复杂的JasperReports。一个Action可能有几个可选的l果cdQؓ了决定到底用那个结果类型,Actioncȝ executeҎ(gu)必须q回一个标记结果类型的字符丌Ӏ?br /> struts.xml
    <action name="Logon" class="tutorial.Logon">
      <result type="redirect-action">Menu</result>
      <result name="input">/tutorial/Logon.jsp</result>
    </action>
    如果我们输入了用户名和密码,Logon Action会返?#8220;success”?success"是默认的q回l果Q这个时候会使用Menu action作ؓl果?br /> 如果我们什么也不输入,Logon Action 会返?input", Struts 2会用Logon.jsp 作ؓl果q回



    Sky Yi 2008-10-08 14:31 发表评论
    ]]>
    struts2W记 - 概述http://www.tkk7.com/hnicypb/archive/2008/10/08/233129.htmlSky YiSky YiWed, 08 Oct 2008 05:56:00 GMThttp://www.tkk7.com/hnicypb/archive/2008/10/08/233129.htmlhttp://www.tkk7.com/hnicypb/comments/233129.htmlhttp://www.tkk7.com/hnicypb/archive/2008/10/08/233129.html#Feedback0http://www.tkk7.com/hnicypb/comments/commentRss/233129.htmlhttp://www.tkk7.com/hnicypb/services/trackbacks/233129.html        在Strut 2 中不再会涉及到诸?HttpServletRequest, HttpServletResponseQ?HttpSession{Http相关的Servlet接口c,取而代之的是Struts 2 的接口,例如RequestAwareQSessionAware{?br />
    Struts 2 的标{֟?CSSQ标{֏以提供自己需要的HTML支持?br />         Struts 2 的标{ֈ用了CSS和模板,使用h会非常方便,在Struts 1.x中我们需要用Table来组l表单,但是在Struts 2中所有的标签自带了Table内容Q可以方便的处理格式。例?lt;s:textfield> 标签自动d?<tr> <td> {标{?br />
    有状态的CheckboxQ可以以一U统一的方式记录checkbox状态的变化?br />        在Struts 2中即使没有被选中的checkbox其内容仍然存在于Struts 2 框架中,不必像在Struts 1.x中那样需要做Ҏ(gu)的存在性判断?br />
     灉|的取消按钮,在取消按钮点ȝ时候可以指向一个不同的action?br />        @TODO
           可以在制定Form的action的同Ӟ制定cancel按钮的actionQ当点击submit和cancel的时候出现完全按不同的功能?br />
        W一{的AJAX的支持,在普通struts 标签的基上,使用AJAX增加了交互性和灉|性?br />        Struts 2 的标{ֆ|了Ajax的支持。Struts 2 的标{用了Dojotoolkit Ajax框架Q不但能够用AjaxҎ(gu),而且能够使用非常丰富和强大的览器小控gQ例如日期选择控g

        见到那集成Spring框架Q非常简单的使用Spring框架提供的依赖注入功能?br />        可以方便的用Spring理Struts 2 的action的创建,通过使用Spring可以充分的利用Spring的依赖诸如功能,q且能够很好的集成其他的框架Q例如HibernateQiBatis{?br />
        更多的返回Ş式,除了JSPq支持,JasperReports,JFreeChart, Action链,文g下蝲{?br />        除了支持JSP的表现Ş式,q支持JasperResports报表Q?JFreechart图标QAction链,文g下蝲{?br />
        POJO表单Q不再需要ActionFormsQ用Javabean获得客户的收入或者将属性表C出来,
        完全消除了ActionForml徏Q可以用Q意合适的cd来接受页面传来的数据或者将数据表现出来。ActionFrom可以使用POJO?JavaBean来替代,JavaBean中的属性可以用StringQ也可以使用具体的类型,例如DateQInt{?

        POJO ActionQ用Q意的cM为Actionc,甚至可以使用接口?br />        Mc都可以作ؓActionc,只要接口满一些简单的定义Q不需要在使用ActioncM的基c,你可以完全自q发挥?br /> 部v
        插gl构Q用jar文g扩展框架功能Q不需要在做手动的配置Q内|了JavaServer FacesQ?JasperResports, JFreeChart, Tiles{插件?br />        扩展一个功能只需要添加一个插Ӟ插g甚至可以热插拔,在你的应用不停止的情况下q加新的功能?br />
        集成了分析功能,可以方便的找到程序性能的问题点?br />        可以不借助外力发现E序的热点,扑ֈ问题的所在,

        准确的报告错误,可以非常准确的指出程序的问题炏V?br />        准确的报告运行时的错误,方便解决问题?br />
    l护
        ActionҎ(gu)试Q直接测试Struts 2的ActionQ不需要用Mock Http对象来测试?br />        Action是普通的c,不需要特D的环境Q所以Struts 2 的Action 特别Ҏ(gu)试?br />
        聪明的默认|不需要配|不必要的配|,大部分的框架配置元素的都有非常合适的默认|基本上你不需要在做Q何配|?br />        Struts 2 有很多的配置,但是每一个都有默认|基本额上不需要更攚w认的选项卛_保证最?br />
        Ҏ(gu)定制的控制器Q可以定制每一个Action的处理过E?br />        可以使用Intercepter来过滤每一个ActionQ在Action执行前后q加自定义的操作?br />
        集成了DebuggingQ可以用内容之的debugging工具扑ֈ问题?br />       
         灉|的标{ֺQ可以通过修改FreeMarker模板来定制标{输出Q不需要在操作像天书异LJSP Taglib APIQ模板语a支持QFreemarker和Velocity     
           可以自定义模板库Q或者修改已有模板的内容来定刉面的昄?br />
    Struts 2 中用的模式
    Command
    Chain of responsibility

    Struts2 处理程概要




    上图来源于Struts2官方站点Q是Struts 2 的整体结构?br /> 一个请求在Struts2框架中的处理大概分ؓ以下几个步骤
    1 客户端初始化一个指向Servlet容器Q例如TomcatQ的h
    2 q个hl过一pd的过滤器QFilterQ(q些qo器中有一个叫做ActionContextCleanUp的可选过滤器Q这个过滤器对于Struts2和其他框架的集成很有帮助Q例如:SiteMesh PluginQ?br /> 3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
    4 如果ActionMapper军_需要调用某个ActionQFilterDispatcher把请求的处理交给ActionProxy
    5 ActionProxy通过Configuration Manager询问框架的配|文Ӟ扑ֈ需要调用的Actionc?br /> 6 ActionProxy创徏一个ActionInvocation的实例?br /> 7 ActionInvocation实例使用命名模式来调用,在调用Action的过E前后,涉及到相x截器QIntercepterQ的调用?br /> 8 一旦Action执行完毕QActionInvocation负责Ҏ(gu)struts.xml中的配置扑ֈ对应的返回结果。返回结果通常是(但不LQ也?能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过E中可以使用Struts2 框架中承的标签。在q个q程中需要涉及到ActionMapper
     
    在上q过E中所有的对象QActionQResultsQInterceptorsQ等Q都是通过ObjectFactory来创建的?br />


    Sky Yi 2008-10-08 13:56 发表评论
    ]]>
    MyEclipse 快捷?/title><link>http://www.tkk7.com/hnicypb/archive/2008/09/26/231374.html</link><dc:creator>Sky Yi</dc:creator><author>Sky Yi</author><pubDate>Fri, 26 Sep 2008 12:41:00 GMT</pubDate><guid>http://www.tkk7.com/hnicypb/archive/2008/09/26/231374.html</guid><wfw:comment>http://www.tkk7.com/hnicypb/comments/231374.html</wfw:comment><comments>http://www.tkk7.com/hnicypb/archive/2008/09/26/231374.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hnicypb/comments/commentRss/231374.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hnicypb/services/trackbacks/231374.html</trackback:ping><description><![CDATA[<div id="4g4y4qu" class="blog_content"> <p><font face="Arial"><span id="2oyos24" class="hilite1">MyEclipse</span> <span id="6quaeic" class="hilite2">快捷?/span><br /> Q?QCtrl+M切换H口的大?br /> Q?QCtrl+Q跛_最后一ơ的~辑?br /> Q?QF2当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标Ud时Tooltipq会昄即Show Tooltip Description?br />           F3跛_声明或定义的地方?br />           F5单步调试q入函数内部?br />           F6单步调试不进入函数内部,如果装了金山词霸2006则要?#8220;取词开?#8221;?span class="hilite2">快捷?/span>Ҏ(gu)其他的?br />           F7由函数内部返回到调用处?br />           F8一直执行到下一个断炏V?br /> Q?QCtrl+Pg~对于XML文g是切换代码和囄H口<br /> Q?QCtrl+Alt+I看Java文g中变量的相关信息<br /> Q?QCtrl+PgUp对于代码H口是打开“Show List”下拉框,在此下拉框里昄有最q曾打开的文?br /> Q?QCtrl+/ 在代码窗口中是这U?/~注释?br />           Ctrl+Shift+/ 在代码窗口中是这U?*~*/注释Q在JSP文gH口中是<!--~-->?br /> Q?QAlt+Shift+O(或点dh中的Toggle Mark Occurrences按钮) 当点L个标记时可本页面中其他地方的此标记黄色凸显Qƈ且窗口的双框会出现白色的方块,点击此方块会跛_此标记处?br /> Q?Q右ȝ口的左边框即加断点的地方选Show Line Numbers可以加行受?br /> Q?0QCtrl+I格式化激zȝ元素Format Active Elements?br />             Ctrl+Shift+F格式化文件Format Document?br /> Q?1QCtrl+S保存当前文g?br />             Ctrl+Shift+S保存所有未保存的文件?br /> Q?2QCtrl+Shift+M(先把光标攑֜需导入包的cd? 作用是加Import语句?br />             Ctrl+Shift+O作用是缺的Import语句被加入,多余的Import语句被删除?br /> Q?3QCtrl+Space提示键入内容即Content AssistQ此时要输入法中Chinese(Simplified)IME-Ime/Nonlme Toggle?span class="hilite2">快捷?/span>Q用于切换英文和其他文字Q改成其他的?br />             Ctrl+Shift+Space提示信息即Context Information?br /> Q?4Q双ȝ口的左边框可以加断点?br /> Q?5QCtrl+D删除当前行?/font></p> <font face="Arial"> <p><br /> Q-Q待l?/p> <p><br /> [以下{载]<br /> Eclipse<span id="2s2e6me" class="hilite2">快捷?/span>大全<br /> Ctrl+1 快速修?最l典?span class="hilite2">快捷?/span>,׃用多说了)<br /> Ctrl+D: 删除当前?<br /> Ctrl+Alt+↓ 复制当前行到下一?复制增加)<br /> Ctrl+Alt+↑ 复制当前行到上一?复制增加)</p> <p>Alt+↓ 当前行和下面一行交互位|?特别实用,可以省去先剪?再粘贴了)<br /> Alt+↑ 当前行和上面一行交互位|?同上)<br /> Alt+← 前一个编辑的面<br /> Alt+→ 下一个编辑的面(当然是针对上面那条来说了)</p> <p>Alt+Enter 昄当前选择资源(工程,or 文g or文g)的属?/p> <p>Shift+Enter 在当前行的下一行插入空?q时鼠标可以在当前行的Q一位置,不一定是最?<br /> Shift+Ctrl+Enter 在当前行插入I(原理同上?</p> <p>Ctrl+Q 定位到最后编辑的地方<br /> Ctrl+L 定位在某?(对于E序过100的h有音?<br /> Ctrl+M 最大化当前的Edit或View (再按则反?<br /> Ctrl+/ 注释当前?再按则取消注?br /> Ctrl+O 快速显C?OutLine<br /> Ctrl+T 快速显C当前类的承结?br /> Ctrl+W 关闭当前Editer<br /> Ctrl+K 参照选中的Word快速定位到下一?br /> Ctrl+E 快速显C当前Editer的下拉列?如果当前面没有昄的用黑体表示)</p> <p>Ctrl+/(键? 折叠当前cM的所有代?/p> <p>Ctrl+×(键? 展开当前cM的所有代?/p> <p>Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代?</p> <p>Ctrl+Shift+E 昄理当前打开的所有的View的管理器(可以选择关闭,Ȁzȝ操作)</p> <p>Ctrl+J 正向增量查找(按下Ctrl+J?你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显C没有找C,查一个单词时,特别实用,q个功能Idea两年前就有了)</p> <p>Ctrl+Shift+J 反向增量查找(和上条相?只不q是从后往前查)</p> <p>Ctrl+Shift+F4 关闭所有打开的Editer</p> <p>Ctrl+Shift+X 把当前选中的文本全部变呛_?/p> <p>Ctrl+Shift+Y 把当前选中的文本全部变为小?/p> <p>Ctrl+Shift+F 格式化当前代?/p> <p>Ctrl+Shift+P 定位到对于的匚wW?譬如{}) (从前面定位后面时,光标要在匚wW里?后面到前?则反?</p> <p>下面?span class="hilite2">快捷?/span>是重构里面常用的,本hp己喜Ƣ且常用的整理一??一般重构的<span id="yoeykce" class="hilite2">快捷?/span>都是Alt+Shift开头的?</p> <p>Alt+Shift+R 重命?(是我自己最q的一个了,其是变量和cȝRename,比手工方法能节省很多力_?</p> <p>Alt+Shift+M 抽取Ҏ(gu) (q是重构里面最常用的方法之一?其是对一大堆泥团代码有用)</p> <p>Alt+Shift+C 修改函数l构(比较实用,有N个函数调用了q个Ҏ(gu),修改一ơ搞?</p> <p>Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变?其是多处调用的时?</p> <p>Alt+Shift+F 把Class中的local变量变ؓfield变量 (比较实用的功?</p> <p>Alt+Shift+I 合ƈ变量(可能q样说有点不妥Inline)<br /> Alt+Shift+V Ud函数和变?不怎么常用)<br /> Alt+Shift+Z 重构的后(zhn)药(Undo) <br /> </p> </font></div> <img src ="http://www.tkk7.com/hnicypb/aggbug/231374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hnicypb/" target="_blank">Sky Yi</a> 2008-09-26 20:41 <a href="http://www.tkk7.com/hnicypb/archive/2008/09/26/231374.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sql Server 中一个非常强大的日期格式化函?/title><link>http://www.tkk7.com/hnicypb/archive/2008/09/25/231126.html</link><dc:creator>Sky Yi</dc:creator><author>Sky Yi</author><pubDate>Thu, 25 Sep 2008 07:40:00 GMT</pubDate><guid>http://www.tkk7.com/hnicypb/archive/2008/09/25/231126.html</guid><wfw:comment>http://www.tkk7.com/hnicypb/comments/231126.html</wfw:comment><comments>http://www.tkk7.com/hnicypb/archive/2008/09/25/231126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hnicypb/comments/commentRss/231126.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hnicypb/services/trackbacks/231126.html</trackback:ping><description><![CDATA[<div><span style="font-size: 14px; font-family: 宋体"><span id="Content1273"><br /> <br /> Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM<br /> Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06<br /> Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16<br /> Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06<br /> Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06<br /> Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06<br /> Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06<br /> Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06<br /> Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46<br /> Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM<br /> Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06<br /> Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16<br /> Select CONVERT(varchar(100), GETDATE(), 12): 060516<br /> Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937<br /> Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967<br /> Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47<br /> Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157<br /> Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM<br /> Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16<br /> Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47<br /> Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250<br /> Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM<br /> Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006<br /> Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16<br /> Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006<br /> Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006<br /> Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006<br /> Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006<br /> Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006<br /> Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49<br /> Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM<br /> Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006<br /> Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16<br /> Select CONVERT(varchar(100), GETDATE(), 112): 20060516<br /> Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513<br /> Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547<br /> Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49<br /> Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700<br /> Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827<br /> Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM<br /> Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM<br /> <br /> <br /> 常用Q?br /> Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46<br /> Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47<br /> Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49<br /> Select CONVERT(varchar(100), GETDATE(), 12): 060516<br /> Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16  <br /> </span></span><a class="hidden" >本文 51CTO.COM技术博?/a></div> <img src ="http://www.tkk7.com/hnicypb/aggbug/231126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hnicypb/" target="_blank">Sky Yi</a> 2008-09-25 15:40 <a href="http://www.tkk7.com/hnicypb/archive/2008/09/25/231126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>|站开发定?/title><link>http://www.tkk7.com/hnicypb/archive/2008/09/22/230381.html</link><dc:creator>Sky Yi</dc:creator><author>Sky Yi</author><pubDate>Mon, 22 Sep 2008 03:31:00 GMT</pubDate><guid>http://www.tkk7.com/hnicypb/archive/2008/09/22/230381.html</guid><wfw:comment>http://www.tkk7.com/hnicypb/comments/230381.html</wfw:comment><comments>http://www.tkk7.com/hnicypb/archive/2008/09/22/230381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hnicypb/comments/commentRss/230381.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hnicypb/services/trackbacks/230381.html</trackback:ping><description><![CDATA[<div id="s24o4aa" class="t_msgfont" id="message11163"> <div id="soq444e" class="ad_pip" id="ad_thread3_1"><img id="alimamatmpf0.8739007809904637" style="border-top-width: 0px; padding-right: 0px; padding-left: 0px; border-left-width: 0px; border-bottom-width: 0px; padding-bottom: 0px; margin: 0px; vertical-align: baseline; width: 0px; padding-top: 0px; height: 0px; border-right-width: 0px" src="http://z.alimama.com/alimamal.php?i=mm_10312158_369697_2344403&u=http%3A%2F%2Fwww.mikecat.net%2Fshowtopic-2720.aspx&w=250&h=300&re=1024x768&sz=32&r=http%3A%2F%2Fwww.mikecat.net%2Fforumindex.aspx&cg=1a38d26fa75de6c3af61da3e4efdad90&prk=66025337&cas=prk&cah=734&caw=1024&ccd=32&ctz=8&chl=2&cja=1&cpl=0&cmm=0&cf=9.0&sx=693&sy=492&cbw=1007&cbh=3340" border="0" name="alimamatmpf0.8739007809904637" alt="" /></div> 1.250定律 <br /> 拉d认ؓQ每一位顾客n后,大体?50名亲朋好友。如果?zhn)赢得了一位顾客的好感Q就意味着赢得?50个h的好感;反之Q如果你得罪了一名顾客,也就意味着得罪?50 名顾客?nbsp; 在你的网站访客中Q一个访客可能可以带来一访客,M|站都有h和发展的q程Q这个过E中此定律尤光要?br /> 2.辄多定?br /> 辄多认为,一个企业要惛_市场上L占据dCQ那么就要做到第一个开发出C品,又第一个淘汰自q老品?nbsp; 国内|站跟风太严重,比如前段旉的格子网Q乞讨网Q博客网Q一个成功了Q大家一拥而上。但实际效果是,W一个出名的往往最成功Q所以在|站的定位上Q要动自q脑筋Q不是去捡h家剩下的客户。同理,Ch家出售的数据来徏站效果是很糟p的?br /> 3.木桶定律<br /> 水桶定律是指Q一只水桶能装多水Q完全取决于它最短的那块木板。这是说Q何一个组l都可能面(f)的一个共同问题,x成组l的各个部分往往军_了整个组l的水^?nbsp; 注意审视自己的网站,是速度最p糕Q美工最p糕Q宣传最p糕Q你首先要做的,不是改进你最强的Q而应该是你最薄弱的?br /> 4.马太效应<br /> 《新U》中有这样一个故事,一个国王远行前Q交l三个仆人每Z锭银子,吩咐他们Q?#8220;你们d生意Q等我回来时Q再来见我?#8221;国王回来ӞW一个仆Q?“MhQ你交给我们的一锭银子,我已赚了10锭?#8221;于是国王奖励?0座城邑。第二个仆h报告_“MhQ你l我的一锭银子,我已赚了5锭?#8221;于是国王例奖׃?座城邑。第三个仆h报告_“MhQ你l我的一锭银子,我一直包在手N存着Q我怕丢失,一直没有拿出来?#8221;于是国王命o第三个仆h的一锭银子也赏给W一个仆人,q且_“凡是的Q就q他所有的也要来。凡是多的,q要l他Q叫他多多益善?#8221;q就是马太效应?nbsp; 在同cȝ站中Q马太效应是很明昄。一个出名的C֌Q比一个新建的C֌Q更Ҏ(gu)吸引到新客户。启C是Q如果你无法把网站做大,那么你要做专。作专之后再做大更Ҏ(gu)?br /> 5.手表定理<br /> 手表定理是指一个h有一只表Ӟ可以知道现在是几炚wQ而当他同时拥有两只表时却无法定?br /> 一个网站,你只需要关注你特定的用L需求。不要在意不相干人的看法?br /> 6.不值得定律<br /> 不值得定律Q不值得做的事情Q就不值得做好  不要q度seoQ如果你不是惛_做垃圄。不要把旉费在美化再化面Q优化再优化E序Q在你网站能盈利后,q些事情可以交给技术h员完成?br /> 7.彼得原理<br /> 劳u?彼得认ؓQ在各种l织中,׃习惯于对在某个等U上U职的h员进行晋升提拔,因而雇员L向于晋升到其不U职的地位?br /> 不要L改变自己|站的定位。如博客|想变门P盛大惛_׃Q大家拭目以待吧?br /> 8.零和游戏原理<br /> 当你看到两位对弈者时Q你可以说他们正在?#8220;零和游戏”。因为在大多数情况下Q?M有一个赢Q一个输Q如果我们把莯计算为得1分,而输ؓ-1分,那么Q这两h得分之和是Q?+Q?1Q?0  不要把目光一直盯在你的竞争网站上Q不要花太多旉抢它的访客。我们把q些旉用来L互补的合作网站,挖掘新访客?br /> 9.华盛合作规?br /> 华盛合作规律说的是Q?一个h敯了事Q两个h互相推诿Q?三个人则永无成事之日?br /> 如果你看准一个方向,你自己干Q缺人手招。不要轻易找同伴一h|站Q否则你会发玎ͼ日子g过快了,事情做慢了?br /> 10.邦尼人力定律<br /> 一个h一分钟可以挖一个洞Q六十个ZU种却挖不了一个洞。合作是一个问题,如何合作也是一个问题。你需要有计划?br /> 11.牛蛙效应<br /> 把一只牛蛙放在开水锅里,牛蛙会很快蟩出来Q但当你把它攑֜h里,它不会蟩出来Q然后慢慢加热,起初牛蛙Z懒惰Q不会有什么动作,当水温高到它无法忍受的时候,惛_来,但已l没有了力气?nbsp; 如果你是sohoQ注意关注你的胦务。不要等到没׃再想怎么挣,你会发现那时候挣钱更难?br /> 12.蘑菇理<br /> 蘑菇理是许多组l对待初庐者的一U管理方法,初学者被|于阴暗的角落(不受重视的部门,或打杂跑腿的工作Q,上一头大_(无端的批评、指责、代人受q)QQ其自生自灭(得不到必要的指导和提携)?br />   做网站毕竟要遭遇q样的阶D,搜烦引擎不理你,友情链接找不刎ͼ访客不上门。这是磨l?br /> 13.奥卡姆剃刀定律<br /> 如无必要Q勿增实体?br /> 把网站做得简单,再简单,单到非常实用Q而不是花俏。google的首ؓ什么比雅虎好?<br /> 14.巴莱多定?Paredo 也叫二八定律)<br /> 你所完成的工作里80%的成果,来自于你20%的付出;?0%的付出,只换?0%的成果?br /> 随时衡量你所做的工作Q哪些是最有效果的?<br /> 1.马蝇效应<br /> 林肯年时和他的兄弟在肯塔基老家的一个农场里犁玉c_Q林肯吆马,他兄弟扶犁,而那匚w很懒Q慢慢腾腾,走走停停。可是有一D|间马走得飞快。林肯感到奇怪,C地头Q他发现有一只很大的马蝇叮在马n上,他就把马蝇打落了。看到马蝇被打落了,他兄弟就抱怨说Q?#8221;哎呀Q你Z么要打掉它,正是那家伙马跑h的嘛Q?#8221;  在你心满意的时候,d找你的马蝇。没有firefoxQ不会有ie7Qfirefox是微Y的马蝇之一。马蝇不可怕,怕的是会一口吃掉你的东西,像ie当初对网景干的那栗?<br /> 2.最高气温效?br /> 每天最热L下午2 时左叻I我们总认个时候太x厉害Q其实这时的太阳早已偏西Q不再是供给最大热量的时候了。此时气温之所以最高,不过是源于此前的热量U篏?br /> 你今天的|站量Q是你一个星期或更长旉前所做的事带来的?<br /> 3.限效应(溢出效应)<br /> 刺激q多、过强和作用旉q久而引起心理极不耐烦或反抗的心理现象Q称之ؓ“限效应”?别到别h论坛里发太多q告。别在自q站上攑֤多广告。别在自q论坛里太多地太明昑֜诱导话题?<br /> 4.懒蚂蚁效?br /> 生物学家研究发现Q成的蚂蚁中,大部分蚂蚁很勤劳Q寻找、搬q食物争先恐后,数蚂蚁却东张西望不q活。当食物来源断绝或蚁H被破坏Ӟ那些勤快的蚂蚁一{莫展?#8220;懒蚂?#8221;?#8220;n而出”Q带领众伙伴向它早已侦察到的新的食物源{UR?nbsp; 不要把注意力仅仅攑֜一个网站上Q即使这个网站现在ؓ你带来一切。你要给自己一些时间寻找新的可行的方向Q以备万一?<br /> 5.长尾理论<br /> ChrisAnderson认ؓQ只要存储和通的渠道_大,需求不旺或销量不佳的产品共同占据的市Z额就可以和那些数量不多的热卖品所占据的市Z额相Ҏ(gu)甚至更大?nbsp; 对于搜烦引擎Q未必你需要一个热门词排在W一位,如果有一千个冷门词排在第一位,效果不但一Pq会更稳定更长远?<br /> 6.破窗理论<br /> 栋徏{上的一块玻璃,又没有及时修好,别h可能受到某些暗C性的U容Q去打碎更多的玻璃?nbsp; 理论坛Ӟ如果你发现第一个垃圾脓(chung)Q赶紧删掉他吧。想惻I落伍现在Z么那么多××_现在控制比最初控刉多了?<br /> 7.“群效应”Q又U复制原?Copy Strategy)<br /> 一个羊?集体)是一个很散ؕ的组l,qx大家在一L目地左冲x。如果一头羊发现了一片肥沃的l草圎ͼq在那里吃到了新鲜的青草Q后来的群׃一哄而上Q争抢那里的青草Q全然不旁边虎视眈眈的|或者看不到其它地方q有更好的青草?br /> 不要L跟风Q保持自己思考的能力?<br /> 8.墨菲定律<br /> 如果坏事情有可能发生Q不这U可能性多么小Q它M发生Qƈ引v最大可能的损失?br /> 除非垃圾站,否则不要作弊Q对搜烦引擎不要Q对q告也不要?<br /> 9.光环效应<br /> Z对h的某U品质或特点有清晰的知觉Q印象比较深刅R突出, q种强烈的知觉, 像月晕形式的光环一P向周围I漫、扩散,掩盖了对q个人的其他品质或特点的认识?br /> 不要L崇拜一个h或者公司、一个概c一U做法?<br /> 10.蝴蝶效应<br /> 一只亚马逊河域热带雨林中的蝴蝶Q偶扇动几下翅膀Q两周后Q可能在国德克萨斯州引起一场龙卷风?br /> 不管你做什么,|站或者其他,你都应该x新闻。机遇或者灾隑֏能就在那?<br /> 11.阿尔巴d定理<br /> 一个企业经营成功与否,全靠寚w客的要求了解C么程度?nbsp; 我赞同别人的点评Q看C别h的需要,你就成功了一半;满了别人的需求,你就成功了全部。尤其是做网站?<br /> 12.史密斯原?br /> 如果你不能战胜他们,你就加入C们之中去?nbsp; <br /> 不要试图做孤胆英雄。如果潮挡不住Q至,你要L考ؓ什么?</div> <img src ="http://www.tkk7.com/hnicypb/aggbug/230381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hnicypb/" target="_blank">Sky Yi</a> 2008-09-22 11:31 <a href="http://www.tkk7.com/hnicypb/archive/2008/09/22/230381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hashtable和HashMap的区?/title><link>http://www.tkk7.com/hnicypb/archive/2008/09/19/230027.html</link><dc:creator>Sky Yi</dc:creator><author>Sky Yi</author><pubDate>Fri, 19 Sep 2008 14:18:00 GMT</pubDate><guid>http://www.tkk7.com/hnicypb/archive/2008/09/19/230027.html</guid><wfw:comment>http://www.tkk7.com/hnicypb/comments/230027.html</wfw:comment><comments>http://www.tkk7.com/hnicypb/archive/2008/09/19/230027.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hnicypb/comments/commentRss/230027.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hnicypb/services/trackbacks/230027.html</trackback:ping><description><![CDATA[1.Hashtable是Dictionary的子c,HashMap是Map接口的一个实现类Q?br /> 2.Hashtable中的Ҏ(gu)是同步的Q而HashMap中的Ҏ(gu)在缺省情况下是非同步的。即是说Q在多线E应用程序中Q不用专门的操作安全地可以使用Hashtable了;而对于HashMapQ则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解冻I<br /> Map Collections.synchronizedMap(Map m)<br /> q个Ҏ(gu)q回一个同步的MapQ这个Map装了底层的HashMap的所有方法,使得底层的HashMap即是在多线E的环境中也是安全的?br /> 3.在HashMap中,null可以作ؓ键,q样的键只有一个;可以有一个或多个键所对应的gؓnull。当get()Ҏ(gu)q回null值时Q即可以表示HashMap中没有该键,也可以表C键所对应的gؓnull。因此,在HashMap中不能由get()Ҏ(gu)来判断HashMap中是否存在某个键Q而应该用containsKey()Ҏ(gu)来判断?br /> <br /> 4.HashTable使用EnumerationQHashMap使用Iterator?br /> <br /> <br /> 以上只是表面的不同,它们的实C有很大的不同?br /> <br /> <br /> <br /> 5.HashTable中h(hun)ash数组默认大小?1Q增加的方式?old*2+1。HashMap中h(hun)ash数组的默认大是16Q而且一定是2的指数?br /> <br /> <br /> <br /> 6.哈希值的使用不同QHashTable直接使用对象的hashCodeQ代码是q样的:<br /> int hash = key.hashCode();<br /> int index = (hash & 0x7FFFFFFF) % tab.length;<br /> 而HashMap重新计算hash|而且用与代替求模Q?br /> int hash = hash(k);<br /> int i = indexFor(hash, table.length);<br /> <br /> static int hash(Object x) {<br />   int h = x.hashCode();<br /> <br /> <br /> <br />   h += ~(h << 9);<br />   h ^= (h >>> 14);<br />   h += (h << 4);<br />   h ^= (h >>> 10);<br />   return h;<br /> }<br /> static int indexFor(int h, int length) {<br />   return h & (length-1);<br /> }<br /> <br /> <img src ="http://www.tkk7.com/hnicypb/aggbug/230027.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hnicypb/" target="_blank">Sky Yi</a> 2008-09-19 22:18 <a href="http://www.tkk7.com/hnicypb/archive/2008/09/19/230027.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java相关在线apihttp://www.tkk7.com/hnicypb/archive/2008/09/09/227862.htmlSky YiSky YiTue, 09 Sep 2008 01:49:00 GMThttp://www.tkk7.com/hnicypb/archive/2008/09/09/227862.htmlhttp://www.tkk7.com/hnicypb/comments/227862.htmlhttp://www.tkk7.com/hnicypb/archive/2008/09/09/227862.html#Feedback0http://www.tkk7.com/hnicypb/comments/commentRss/227862.htmlhttp://www.tkk7.com/hnicypb/services/trackbacks/227862.htmlJava 2 Platform SE 5.0

    http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html

    JavaTM Platform Enterprise Edition, v 5.0

    http://java.sun.com/javaee/5/docs/api/


    1.Hibernate API Documentation (3.2.2.ga)

    http://www.hibernate.org/hib_docs/v3/api/

    2.Spring
    Framework API 2.5

    http://static.springframework.org/spring/docs/2.5.x/api/index.html

    3.Struts 1.3.8 API

    http://struts.apache.org/1.3.8/apidocs/index.html

    4.Struts
    2 Core 2.0.11.1 API

    http://struts.apache.org/2.0.11.1/struts2-core/apidocs/index.html



    Sky Yi 2008-09-09 09:49 发表评论
    ]]>
    վ֩ģ壺 Ů߹| Ʒ޹| ɫӰɫԴ| ޹Ʒպav | ž99°| ŷղwww| ձһ| ڵֻˬվ| ŷձƷ| ޹СƵƷþþ| ձһþ| AVþþþվ| 99ƷƵ߹ۿƬһһ| þѹƵ| ŮƵվ| ͵12p| ѳ˻ɫƬ| ѸƵ| ĻѹۿȫӰ| ŷۺһ| þۺͼۺͼ| ޵һվ˶| 97һƷ| ˳ɳƵ| ɫ˵| AV뾫Ʒ| ٸaëƬ| | ѹۿ| 91Ʒȫѹۿ| ѿavһ| ӰԺ| þþƷ69Ʒ| ߹ۿպ| õĻ2019| һaȫƵ| ŮһͰһһƵ| ޱAAAר| С˵ͼƬ| þþ뾫ƷպĦ | &#228;v뾫Ʒþþ |