??xml version="1.0" encoding="utf-8" standalone="yes"?>91视频在线观看,国产在线日韩,欧美成人中文字幕http://www.aygfsteel.com/lengxinCEO/archive/2008/12/19/247286.html 心?/dc:creator> 心?/author>Fri, 19 Dec 2008 03:16:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2008/12/19/247286.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/247286.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2008/12/19/247286.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/247286.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/247286.htmlhttp://subclipse.tigris.org/ 
    2.可以通过Eclipse的Update Site安装方式Q?a >http://subclipse.tigris.org/update_1.4.x或?a target="_blank" >下蝲下来之后Q解压羃复制到Eclipse目录卛_?br />     3.启动E序后在Eclipse配置的Team里面׃多出SVNQ就可以q行配置了?br />     4.惌提交一个项目,寚w目点d键Team——Share project可以将目导入SVN了?br />     需要注意的是,请不要将动态生成的目录d到SVNQ否则其他hCheck out的之后,再UpdateҎ出错Q例如classes目录Q不需要提交上去,本地可以了?br />     惌Ҏ本地和服务器上的源代码,请用Team——Synchronize with RepositoryQ列Z同的文g之后Q双击,既可以对比两个文件?br />     WebService目会生成一个。apt_generated目录Q里面包含了一些源代码Q提交的时候不需要提交上去,MyEclipse在获得SVN的项目之后,会自动生成这个目录和底下的文件?

]]>
Hibernate主键生成http://www.aygfsteel.com/lengxinCEO/archive/2008/08/22/223752.html 心?/dc:creator> 心?/author>Fri, 22 Aug 2008 07:36:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2008/08/22/223752.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/223752.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2008/08/22/223752.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/223752.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/223752.html1) Assigned
      主键由外部程序负责生成,无需Hibernate参与?
2) hilo
      通过hi/lo 法实现的主键生成机Ӟ需要额外的数据库表保存主键生成历史状态?
3) seqhilo
      与hilo cMQ通过hi/lo 法实现的主键生成机Ӟ只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库Q如Oracle?
4) increment
      主键按数值顺序递增。此方式的实现机制ؓ在当前应用实例中l持一个变量,以保存着当前的最大|之后每次需要生成主键的时候将此值加1作ؓ主键?
      q种方式可能产生的问题是Q如果当前有多个实例讉K同一个数据库Q那么由于各个实例各自维护主键状态,不同实例可能生成同样的主键,从而造成主键重复异常。因此,如果同一数据库有多个实例讉KQ此方式必须避免使用?
5) identity
       采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL中的主键生成机制?
6) sequence
       采用数据库提供的sequence 机制生成主键。如Oralce 中的Sequence?
7) native
       由HibernateҎ底层数据库自行判断采用identity、hilo、sequence其中一U作Z键生成方式?
8) uuid.hex
       由HibernateZ128 位唯一g生算法生?6 q制数|~码后以长度32 的字W串表示Q作Z键?
9) uuid.string
       与uuid.hex cMQ只是生成的主键未进行编码(长度16Q。在某些数据库中可能出现问题Q如PostgreSQLQ?
10) foreign
       使用外部表的字段作ؓ主键?

]]>
JAR文g揭密http://www.aygfsteel.com/lengxinCEO/archive/2008/05/23/202345.html 心?/dc:creator> 心?/author>Fri, 23 May 2008 03:08:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2008/05/23/202345.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/202345.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2008/05/23/202345.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/202345.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/202345.html

  JAR 文g是什么?
  JAR 文g格式以流行的 ZIP 文g格式为基Q用于将许多个文件聚集ؓ一个文件。与 ZIP 文g不同的是QJAR 文g不仅用于压羃和发布,而且q用于部|和装库、组件和插gE序Qƈ可被像编译器?JVM q样的工L接用。在 JAR 中包含特D的文gQ如 manifests 和部|描q符Q用来指C工具如何处理特定的 JAR?/p>

  一?JAR 文g可以用于Q?br />   ?用于发布和用类?
  ?作ؓ应用E序和扩展的构徏单元
  ?作ؓlg、applet 或者插件程序的部v单位
  ?用于打包与组件相兌的辅助资?

  JAR 文g格式提供了许多优势和功能Q其中很多是传统的压~格式如 ZIP 或?TAR 所没有提供的。它们包括:

  ?安全性?/strong> 可以?JAR 文g内容加上数字化签名。这P能够识别{֐的工具就可以有选择Cؓ您授予Y件安全特权,q是其他文g做不到的Q它q可以检代码是否被改q?/p>

  ?减少下蝲旉?/strong> 如果一?applet 捆绑C?JAR 文g中,那么览器就可以在一?HTTP 事务中下载这?applet 的类文g和相关的资源Q而不是对每一个文件打开一个新q接?/p>

  ?压羃?/strong>JAR 格式允许您压~文件以提高存储效率?/p>

  ?传输q_扩展?/strong> Java 扩展框架(Java Extensions Framework)提供了向 Java 核心q_d功能的方法,q些扩展是用 JAR 文g打包?Java 3D ?JavaMail 是?Sun 开发的扩展例子)?/p>

  ?包密?/strong> 存储?JAR 文g中的包可以选择q行密封Q以增强版本一致性和安全性。密一个包意味着包中的所有类都必d同一 JAR 文g中找到?/p>

  ?包版本控制?/strong> 一?JAR 文g可以包含有关它所包含的文件的数据Q如厂商和版本信息?/p>

  ?可移植性?/strong> 处理 JAR 文g的机制是 Java q_核心 API 的标准部分?

  压羃的和未压~的 JAR
  jar 工具在默认情况下压羃文g。未压羃?JAR 文g一般可以比压羃q的 JAR 文g更快地装载,因ؓ在装载过E中要解压羃文gQ但是未压羃的文件在|络上的下蝲旉可能更长?/p>

  META-INF 目录
  大多?JAR 文g包含一?META-INF 目录Q它用于存储包和扩展的配|数据,如安全性和版本信息。Java 2 q_识别q解?META-INF 目录中的下述文g和目录,以便配置应用E序、扩展和c装载器Q?/p>

  ?MANIFEST.MF?/strong> q个 manifest 文g定义了与扩展和包相关的数据?/p>

  ?INDEX.LIST?/strong> q个文g?jar 工具的新选项 -i 生成Q它包含在应用程序或者扩展中定义的包的位|信息。它?JarIndex 实现的一部分Qƈq装蝲器用于加速类装蝲q程?/p>

  ?xxx.SF?/strong> q是 JAR 文g的签名文件。占位符 xxx 标识了签名者?/p>

  ?xxx.DSA?/strong> 与签名文件相兌的签名程序块文gQ它存储了用于签?JAR 文g的公q名?

  jar 工具
  Z?JAR 文g执行基本的Q务,要用作为Java Development Kit 的一部分提供?Java Archive Tool (jar 工具)。用 jar 命o调用 jar 工具。表 1 昄了一些常见的应用Q?/p>

?1. 常见?jar 工具用法
功能 命o
用一个单独的文g创徏一?JAR 文g jar cf jar-file input-file...
用一个目录创Z?JAR 文g jar cf jar-file dir-name
创徏一个未压羃?JAR 文g jar cf0 jar-file dir-name
更新一?JAR 文g jar uf jar-file input-file...
查看一?JAR 文g的内?/td> jar tf jar-file
提取一?JAR 文g的内?/td> jar xf jar-file
从一?JAR 文g中提取特定的文g jar xf jar-file archived-file...
q行一个打包ؓ可执?JAR 文g的应用程?/td> java -jar app.jar

  可执行的 JAR
  一个可执行?jar 文g是一个自包含?Java 应用E序Q它存储在特别配|的JAR 文g中,可以?JVM 直接执行它而无需事先提取文g或者设|类路径。要q行存储在非可执行的 JAR 中的应用E序Q必d它加入到您的c\径中Qƈ用名字调用应用程序的ȝ。但是用可执行?JAR 文gQ我们可以不用提取它或者知道主要入口点可以运行一个应用程序。可执行 JAR 有助于方便发布和执行 Java 应用E序?/p>

  创徏可执?JAR
  创徏一个可执行 JAR 很容易。首先将所有应用程序代码放C个目录中。假讑ֺ用程序中的主cL com.mycompany.myapp.Sample。您要创Z个包含应用程序代码的 JAR 文gq标识出ȝ。ؓ此,在某个位|?不是在应用程序目录中)创徏一个名?manifest 的文Ӟq在其中加入以下一行:

  Main-Class: com.mycompany.myapp.Sample

  然后Q像q样创徏 JAR 文gQ?/p>

  jar cmf manifest ExecutableJar.jar application-dir

  所要做的就是这些了 -- 现在可以?java -jar 执行q个 JAR 文g ExecutableJar.jar?/p>

  一个可执行?JAR 必须通过 menifest 文g的头引用它所需要的所有其他从?JAR。如果用了 -jar 选项Q那么环境变?CLASSPATH 和在命o行中指定的所有类路径都被 JVM 所忽略?/p>

  启动可执?JAR
  既然我们已经自q应用E序打包C一个名?ExecutableJar.jar 的可执行 JAR 中了Q那么我们就可以用下面的命o直接从文件启动这个应用程序:

  java -jar ExecutableJar.jar

  包密?br />   密封 JAR 文g中的一个包意味着在这个包中定义的所有类都必d同一?JAR 文g中找到。这使包的作者可以增强打包类之间的版本一致性。密还提供了防止代码篡改的手段?/p>

  要密包Q需要在 JAR ?manifest 文g中ؓ包添加一?Name _然后加上gؓ“true”?Sealed 头。与可执行的 JAR 一P可以在创?JAR Ӟ通过指定一个具有适当头元素的 manifest 文g密封一?JARQ如下所C:

  Name: com/samplePackage/
  Sealed: true

  Name 头标识出包的相对路径名。它以一?#8220;/”l束以与文g名区别。在 Name 头后面第一个空行之前的所有头都作用于?Name 头中指定的文件或者包。在上述例子中,因ؓ Sealed 头出现在 Name 头后q且中间没有IQ所?Sealed 头将被解释ؓ只应用到?com/samplePackage 上?/p>

  如果试图从密包所在的 JAR 文g以外的其他地方装载密包中的一个类Q那?JVM 抛Z?SecurityException?/p>

  扩展打包
  扩展?Java q_增加了功能,?JAR 文g格式中已l加入了扩展机制。扩展机制?JAR 文g可以通过 manifest 文g中的 Class-Path 头指定所需要的其他 JAR 文g?/p>

  假设 extension1.jar ?extension2.jar 是同一个目录中的两?JAR 文gQextension1.jar ?manifest 文g包含以下_

  Class-Path: extension2.jar

  q个头表?extension2.jar 中的cL extension1.jar 中的cȝ扩展cRextension1.jar 中的cd以调?extension2.jar 中的c,q且不要?extension2.jar 处在c\径中?/p>

  在装载用扩展机制的 JAR ӞJVM 会高效而自动地在Class-Path 头中引用?JAR d到类路径中。不q,扩展 JAR 路径被解释ؓ相对路径Q所以一般来_扩展 JAR 必须存储在引用它?JAR 所在的同一目录中?/p>

  例如Q假讄 ExtensionClient 引用了类 ExtensionDemo,它捆l在一个名?ExtensionClient.jar ?JAR 文g中,而类 ExtensionDemo 则捆l在 ExtensionDemo.jar 中。ؓ了 ExtensionDemo.jar 可以成ؓ扩展Q必d ExtensionDemo.jar 列在 ExtensionClient.jar ?manifest ?Class-Path 头中Q如下所C:

  Manifest-Version: 1.0
  Class-Path: ExtensionDemo.jar

  在这?manifest ?Class-Path 头的值是没有指定路径?ExtensionDemo.jarQ表?ExtensionDemo.jar ?ExtensionClient JAR 文g处在同一目录中?/p>

  JAR 文g中的安全?br />   JAR 文g可以?jarsigner 工具或者直接通过 java.security API {֐。一个签名的 JAR 文g与原来的 JAR 文g完全相同Q只是更C它的 manifestQƈ?META-INF 目录中增加了两个文gQ一个签名文件和一个签名块文g?/p>

  JAR 文g是用一个存储在 Keystore 数据库中的证书签名的。存储在 keystore 中的证书有密码保护,必须?jarsigner 工具提供q个密码才能?JAR 文g{֐?/p>


Keystore 数据?/strong>

  JAR 的每一位签名者都由在 JAR 文g?META-INF 目录中的一个具?.SF 扩展名的{֐文g表示。这个文件的格式cM?manifest 文g -- 一l?RFC-822 头。如下所C,它的l成包括一个主要部分,它包括了q名者提供的信息、但是不特别针对M特定?JAR 文g,q有一pd的单独的,q些也必须包含?menifest 文g中。在验证一个签名的 JAR Ӟ签名文件的摘要g?JAR 文g中的相应计的摘要D行比较?/p>

  清单 1. {֐ JAR 中的 Manifest ?signature 文g

Contents of signature file META-INF/MANIFEST.MF

Manifest-Version: 1.0
Created-By: 1.3.0 (Sun Microsystems Inc.)

Name: Sample.java
SHA1-Digest: 3+DdYW8INICtyG8ZarHlFxX0W6g=

Name: Sample.class
SHA1-Digest: YJ5yQHBZBJ3SsTNcHJFqUkfWEmI=

Contents of signature file META-INF/JAMES.SF

Signature-Version: 1.0
SHA1-Digest-Manifest: HBstZOJBuuTJ6QMIdB90T8sjaOM=
Created-By: 1.3.0 (Sun Microsystems Inc.)

Name: Sample.java
SHA1-Digest: qipMDrkurQcKwnyIlI3Jtrnia8Q=

Name: Sample.class
SHA1-Digest: pT2DYby8QXPcCzv2NwpLxd8p4G4=

  数字{֐
  一个数字签名是.SF {֐文g的已{֐版本。数字签名文件是二进制文Ӟq且?.SF 文g有相同的文g名,但是扩展名不同。根据数字签名的cd -- RSA、DSA 或?PGP -- 以及用于{֐ JAR 的证书类型而有不同的扩展名?/p>

  Keystore
  要签名一?JAR 文gQ必首先有一个私钥。私钥及其相关的公钥证书存储在名?keystores 的、有密码保护的数据库中。JDK 包含创徏和修?keystores 的工兗keystore 中的每一个密钥都可以用一个别名标识,它通常是拥有这个密钥的{֐者的名字?/p>

  所?keystore ?密钥和信ȝ证书?都是用唯一别名讉K的。别名是在用 keytool -genkey 命o生成密钥?公钥和私?q在 keystore 中添加项时指定的。之后的 keytool 命o必须使用同样的别名引用这一V?/p>

  例如Q要用别?#8220;james”生成一个新的公?U钥对ƈ公钥包装到自签名的证书中,要用下q命令:

keytool -genkey -alias james -keypass jamespass
        -validity 80 -keystore jamesKeyStore
        -storepass jamesKeyStorePass

  q个命o序列指定了一个初始密?#8220;jamespass”Q后l的命o在访?keystore “jamesKeyStore”中与别名“james”相关联的U钥Ӟ需要这个密码。如?keystore“jamesKeyStore”不存在,?keytool 会自动创建它?/p>

  jarsigner 工具
  jarsigner 工具使用 keystore 生成或者验?JAR 文g的数字签名?/p>

  假设像上qC子那样创Z keystore “jamesKeyStore”Qƈ且它包含一个别名ؓ“james”的密钥,可以用下面的命o{֐一?JAR 文gQ?/p>

jarsigner -keystore jamesKeyStore -storepass jamesKeyStorePass
          -keypass jamespass -signedjar SSample.jar Sample.jar james

  q个命o用密?#8220;jamesKeyStorePass”从名?#8220;jamesKeyStore”?keystore 中提出别名ؓ“james”、密码ؓ“jamespass”的密钥,q对 Sample.jar 文g{֐、创Z个签名的 JAR -- SSample.jar?/p>

  jarsigner 工具q可以验证一个签名的 JAR 文gQ这U操作比{֐ JAR 文g要简单得多,只需执行以下命oQ?/p>

  jarsigner -verify SSample.jar

  如果{֐?JAR 文g没有被篡改过Q那?jarsigner 工具׃告诉?JAR 通过验证了。否则,它会抛出一?SecurityExceptionQ?表明哪些文g没有通过验证?/p>

  q可以用 java.util.jar ?java.security API 以编E方式签?JAR(有关l节参阅参考资?。也可以使用?Netscape Object Signing Tool q样的工兗?/p>

  JAR 索引
  如果一个应用程序或?applet 捆绑到多?JAR 文g中,那么c装载器׃用一个简单的U性搜索算法搜索类路径中的每一个元素,qɾc装载器可能要下载ƈ打开许多?JAR 文gQ直到找到所要的cL者资源。如果类装蝲器试囑֯找一个不存在的资源,那么在应用程序或?applet 中的所?JAR 文g都会下蝲。对于大型的|络应用E序?appletQ这会导致启动缓慢、响应迟~ƈ费带宽?/p>

  ?JDK 1.3 以后QJAR 文g格式开始支持烦引以优化|络应用E序中类的搜索过E,特别?applet。JarIndex 机制攉?applet 或者应用程序中定义的所?JAR 文g的内容,q将q些信息存储到第一?JAR 文g中的索引文g中。下载了W一?JAR 文g后,applet c装载器用收集的内容信息高效地装?JAR 文g。这个目录信息存储在?JAR 文g?META-INF 目录中的一个名?INDEX.LIST 的简单文本文件中?/p>

  创徏一?JarIndex
  可以通过?jar 命o中指?-i 选项创徏一?JarIndex。假设我们的目录l构如下图所C:


JarIndex

  您将使用下述命o?JarIndex_Main.jar、JarIndex_test.jar ?JarIndex_test1.jar 创徏一个烦引文Ӟ

  jar -i JarIndex_Main.jar JarIndex_test.jar SampleDir/JarIndex_test1.jar

  INDEX.LIST 文g的格式很单,包含每个已烦引的 JAR 文g中包含的包或者类的名字,如清?2 所C:

  清单 2. JarIndex INDEX.LIST 文gCZ

JarIndex-Version: 1.0

JarIndex_Main.jar
sp

JarIndex_test.jar
Sample

SampleDir/JarIndex_test1.jar
org
org/apache
org/apache/xerces
org/apache/xerces/framework
org/apache/xerces/framework/xml4j

  l束?
  JAR 格式q远出了一U压~格式,它有许多可以改进效率、安全性和l织 Java 应用E序的功能。因些功能已l徏立在核心q_ -- 包括~译器和c装载器 -- 中了Q所以开发h员可以利?JAR 文g格式的能力简化和改进开发和部vq程?/p>



转自Q?a target="_blank">http://linxh.bokee.com/2946294.html



]]>
XPpȝ后台服务优化http://www.aygfsteel.com/lengxinCEO/archive/2007/12/08/166180.html 心?/dc:creator> 心?/author>Fri, 07 Dec 2007 16:20:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/08/166180.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/166180.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/08/166180.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/166180.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/166180.html   假如你打开zip文g的话用winzip或者winrar软g的话Q以下优化是一个相当好的优化,Windows XP内置了对ZIP文g的,我们可以把zip文g当成文gҎ览。不q,pȝ要用部分资源来实现 q一功能Q因此禁用这一功能可以提升pȝ性能。实现方法非常简单,只需取消zipfldr.dll的注册就可以了?
  开?#8594;q行: regsvr32 /u zipfldr.dll

  2、减开机磁盘扫描等待时_重启时候马上你会看到效果?
  开?#8594;q行:chkntfs /t:0

  3、删除系l备份文?在各UYg安装妥当之后Q其实XP需要更新文件的时候就很少了?
  开?#8594;q行:sfc.exe /purgecache
  然后回R卛_,可节省百兆?
  假如担心的话Q可不执行,此做法只会节省空_而不是加速?

  4、开?#8594;q行: services.mscq入XP自带服务修改列表
  在列表每个服务的属性里可?关闭","手动","自动"?

  alerter -错误警报器?(可关?

  application layer gateway service -l与W三者网l共?防火墙支持的服务Q有些防火墙/|络׃n软g需要。占??mb内存?(可关?

  application management-用于讑֮Q发布和删除软g服务?

  automatic updates -windows自动更新?可关?

  background intelligent transfer service - q个服务原是用来实现http1.1服务器之间的信息传输Q微软称支持windows更新时断点箋?

  clipbook - 用与局域网电脑来共?_脓/剪脓的内宏V?可关?

  com+Event system -一?COM+ 软g需要?查你?c:program filesComPlus Applications 目录Q没东西可以把这个服务关?

  COM+Event system application -同上 (可关?

  COmputer browser -用来览局域网电脑的服务,但关了也不媄响浏?(可关?

  cryptographic services -windows更新时用来确认windows 文g指纹的,我更新时才开启一下?(可关?

  DHCP client-静态IP者需?xDSL {??

  Distributed link tracking client-用于局域网更新q接信息Q比如在电脑A有个文gQ在B做了个连接,如果文gUd了,q个服务会更新信息。占?兆内存?(可关? 

        Distributed Transaction coordinator-无聊的东ѝ?(可关?

  DNS Client-DNS解析服务?可关?

  Error reporting service -错误报告器,把windows中错误报告给微Y?可关?

  Event Log- pȝ日志U录服务Q很有用于查扄l毛?

  Fast user switching compatibility-多用户快速切换服务?可关?

  help and support -帮助?可关?

  Human interface device access-支持"弱智"电脑配g的。比如键盘上调音量的按钮{等?可关?

  IMAPI CD-burning COM service -xpȝ服务Q用软g׃用了。占?.6兆内?(可关?

  Indexing service -恐怖的xp减?#8230;…(可关?

  Internet Connection Firewall(ICF)……-xp防火墙?不用的话可关?

  IPSEC Services-大众用户q边都沾不上?(可关?

  Logical Disk manager -盘理服务。需要时它会通知你,所以一般关?(可关?

  Logical Disk manager administrative service-同上?(可关?

  messenger -不是msnQ不惌骚扰的话关。注:妖刺是利用q个?(可关?

  MS software shadow copy provider-无用Q据说是备䆾用的。但……没用?(可关?

  Net Logon-登陆Domain Controller用的?可关?

  Netmeeting remote desktop sharing-用netmeeting实现电脑׃n?可关?

  Network Connections - 上网/局域网要用的?

  Network DDE -和clipbook一L的?可关?

  Network DDE DSDM -同上 (可关?

  Network Location Awareness-如有|络׃n或ICS/ICF可能需要?服务器端) (可关?

  NT LM Security support provider-telnet 服务用的?可关?

  NVIDIA Driver Helper service -nvidia 昑֍帮助?可关?

  PDEngine - perfectdisk 引擎

  PDScheduler -perfectdisk 计划服务

  PerFORMance logs and alerts-记录机器q行状况而且定时写入日志或发警告Q内容可能过于专业,所以自己决定?

  Plug and Play- 自动查测新装gQ即插即用?

  Portable media serial number-l对无用?(可关?

  Print Spooler -打印机用的?(无打印机可关?

  Protected Storage-储存本地密码和网上服务密码的服务Q包括填表时?自动完成"功能?

  QoS RSVP -据说是降低网?0%……(可关?

  Remote access auto connection manager-宽带/|络׃n?

  Remote desktop help session manager-q程帮助服务Q占?兆内存?(可关?

  Remote Procedure Call (RPC) -pȝ核心服务?

  Remote Procedure Call LOCATOR-q个倒没什么用Q管理 RPC 数据库服务,占用1兆内存?(可关?

  remote registry -q程注册表运?修改。微软的漏洞……(可关?

  removable storage -一般情况下不用Q磁带备份用的?(可关?

  routing and remote access-不知者关Q我也不知?(可关?

  secondary logon-l与administrator 以外的用户分配指定操作权.(可关?

  security accounts manager-?Protected Storage, IIS Admin 才需要?

  server -局域网文g/打印׃n需要的?(不打印者可关闭)

  shell hardware detection-l有些配|自动启动,像内存棒Q和有些cd驱动{?

  smart card -?.4兆内存呢(可关?

  smart card helper -兟?可关?

  SSDP Discovery service-没有什么硬件利用这个服务?可关?

  system event notification-记录用户d/注销/重v/x信息?可关?

  system restore service -pȝq原服务Q吃资源和内存的怪兽。虽然有时用刎ͼ自己军_?(可关?

  task scheduler-windows 计划服务?可关?

  TCP/IP NetBIOS helper-如果你的|络不用Netbios 或WINS的话?可关?

  Telephony - 拨号服务Q如果你的宽带不用拨P那么关了它?

  telnet -q是微Y的漏z。这根dos中的telnet命o没关pR?兆内存?可关?

  terminal services-实现q程d本地电脑Q快速用户切换和q程桌面功能需要,不用q些功能关了吧?可关?

  themes -XP的主题。关闭后是XP的经兔R根{?可关?

  uninterruptible power supply-停电保护讑֤用的?可关?

  universal plug and play device host-同SSDP Discovery Service?可关?

  upload manager-用来实现服务器和客户端输送文件的服务Q简单文件传输不需要这个?可关?

  volume shadow copy-同MS Software Shadow Copy ProviderQ无用?可关?

  webclient-可能和以后的.net技术有联系?可关?

  Windows Audio - 控制着你听到的声音?喜欢无声者可关闭)

  Windows Installer -windows的MSI安装服务?设成手动)

  windows image acquisition (WIA) -有些数码相机和扫描器用的Q觉得没用?可关?

  Windows Management Instrumentation - 重要的服务,关了会出现奇怪的问题

]]>
JAVAc里一些取路径的方?/title><link>http://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166056.html</link><dc:creator> 心?/dc:creator><author> 心?/author><pubDate>Fri, 07 Dec 2007 07:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166056.html</guid><wfw:comment>http://www.aygfsteel.com/lengxinCEO/comments/166056.html</wfw:comment><comments>http://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lengxinCEO/comments/commentRss/166056.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lengxinCEO/services/trackbacks/166056.html</trackback:ping><description><![CDATA[<p>Thread.currentThread().getContextClassLoader().getResource("")<br /> Test.class.getClassLoader().getResource("")<br /> ClassLoader.getSystemResource("")<br /> Test.class.getResource("")<br /> Test.class.getResource("/")<br /> new File("/").getAbsolutePath()<br /> System.getProperty("user.dir")</p> <p>关于Classloader详见<a title="http://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166055.html" href="http://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166055.html" target="_blank">http://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166055.html</a></p> <img src ="http://www.aygfsteel.com/lengxinCEO/aggbug/166056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lengxinCEO/" target="_blank"> 心?/a> 2007-12-07 15:25 <a href="http://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>理解Java ClassLoader机制http://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166055.html 心?/dc:creator> 心?/author>Fri, 07 Dec 2007 07:23:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166055.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/166055.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/07/166055.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/166055.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/166055.html当JVMQJava虚拟机)启动Ӟ会Ş成由三个cd载器l成的初始类加蝲器层ơ结构:

       bootstrap classloader
                |
       extension classloader
                |
       system classloader

bootstrap classloader Q引|也称为原始)cd载器Q它负责加蝲Java的核心类。在Sun的JVM中,在执行java的命令中使用-Xbootclasspath选项或?- D选项指定sun.boot.class.pathpȝ属性值可以指定附加的cR这个加载器的是非常Ҏ的,它实际上不是 java.lang.ClassLoader的子c,而是由JVM自n实现的。大家可以通过执行以下代码来获得bootstrap classloader加蝲了那些核心类库:
        URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();
        for (int i = 0; i < urls.length; i++) {
            System.out.println(urls[i].toExternalForm());
        }
在我的计机上的l果为:
文g:/C:/j2sdk1.4.1_01/jre/lib/endorsed/dom.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/endorsed/sax.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xalan-2.3.1.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xercesImpl-2.0.0.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xml-apis.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xsltc.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/rt.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/i18n.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/sunrsasign.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/jsse.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/jce.jar
文g:/C:/j2sdk1.4.1_01/jre/lib/charsets.jar
文g:/C:/j2sdk1.4.1_01/jre/classes
q时大家知道了ؓ什么我们不需要在pȝ属性CLASSPATH中指定这些类库了吧,因ؓJVM在启动的时候就自动加蝲它们了?br />
extension classloader Q扩展类加蝲器,它负责加载JRE的扩展目录(JAVA_HOME/jre/lib/ext或者由java.ext.dirspȝ属性指定的Q中JAR的类包。这为引入除Java核心cM外的新功能提供了一个标准机制。因为默认的扩展目录Ҏ有从同一个JRE中启动的JVM都是通用的,所以放入这个目录的 JARcdҎ有的JVM和system classloader都是可见的。在q个实例上调用方法getParent()Lq回I值nullQ因为引导加载器bootstrap classloader不是一个真正的ClassLoader实例。所以当大家执行以下代码Ӟ
   System.out.println(System.getProperty("java.ext.dirs"));
   ClassLoader extensionClassloader=ClassLoader.getSystemClassLoader().getParent();
   System.out.println("the parent of extension classloader : "+extensionClassloader.getParent());
l果为:
C:\j2sdk1.4.1_01\jre\lib\ext
the parent of extension classloader : null
extension classloader是system classloader的parentQ而bootstrap classloader是extension classloader的parentQ但它不是一个实际的classloaderQ所以ؓnull?br />
system classloader Q系l(也称为应用)cd载器Q它负责在JVM被启动时Q加载来自在命ojava中的-classpath或者java.class.pathpȝ属性或?CLASSPATH*作系l属性所指定的JARcd和类路径。总能通过静态方法ClassLoader.getSystemClassLoader()扑ֈ该类加蝲器。如果没有特别指定,则用戯定义的Q何类加蝲器都该cd载器作ؓ它的父加载器。执行以下代码即可获得:
   System.out.println(System.getProperty("java.class.path"));
输出l果则ؓ用户在系l属性里面设|的CLASSPATH?br /> classloader 加蝲cȝ的是全盘负责委托机制。所谓全盘负责,x当一个classloader加蝲一个Class的时候,q个Class所依赖的和引用的所?Class也由q个classloader负责载入Q除非是昑ּ的用另外一个classloader载入Q委托机制则是先让parentQ父Q类加蝲?(而不是superQ它与parent classloadercM是承关p?LQ只有在parent找不到的时候才从自qc\径中d找。此外类加蝲q采用了cache机制Q也是如果 cache中保存了q个Classq接返回它Q如果没有才从文件中d和{换成ClassQƈ存入cacheQ这是Z么我们修改了Class但是必须重新启动JVM才能生效的原因?br />
每个ClassLoader加蝲Class的过E是Q?br /> 1.此Class是否载入q(卛_cache中是否有此ClassQ,如果有到8,如果没有?
2.如果parent classloader不存在(没有parentQ那parent一定是bootstrap classloader了)Q到4
3.hparent classloader载入Q如果成功到8Q不成功?
4.hjvm从bootstrap classloader中蝲入,如果成功?
5.LClass文gQ从与此classloader相关的类路径中寻找)。如果找不到则到7.
6.从文件中载入ClassQ到8.
7.抛出ClassNotFoundException.
8.q回Class.

其中5.6步我们可以通过覆盖ClassLoader的findClassҎ来实现自q载入{略。甚臌盖loadClassҎ来实现自q载入q程?br />
cd载器的顺序是Q?br /> 先是bootstrap classloaderQ然后是extension classloaderQ最后才是system classloader。大家会发现加蝲的Class是重要的越在靠前面。这样做的原因是Z安全性的考虑Q试惛_果system classloader“亲自”加蝲了一个具有破坏性的“java.lang.System”cȝ后果吧。这U委托机制保证了用户即h一个这Lc,也把它加入到了类路径中,但是它永q不会被载入Q因个类L由bootstrap classloader来加载的。大家可以执行一下以下的代码Q?br />    System.out.println(System.class.getClassLoader());
会看到l果是nullQ这p明java.lang.System是由bootstrap classloader加蝲的,因ؓbootstrap classloader不是一个真正的ClassLoader实例Q而是由JVM实现的,正如前面已经说过的?br />
下面p我们来看看JVM是如何来为我们来建立cd载器的结构的Q?br /> sun.misc.LauncherQ顾名思义Q当你执行java命o的时候,JVM会先使用bootstrap classloader载入q初始化一个LauncherQ执行下来代码:
  System.out.println("the Launcher's classloader is "+sun.misc.Launcher.getLauncher().getClass().getClassLoader());
l果为:
  the Launcher's classloader is null (因ؓ是用bootstrap classloader加蝲,所以class loader为null)
Launcher 会根据系l和命o讑֮初始化好class loaderl构QJVMq它来获得extension classloader和system classloader,q蝲入所有的需要蝲入的ClassQ最后执行java命o指定的带有静态的mainҎ的Class。extension classloader实际上是sun.misc.Launcher$ExtClassLoadercȝ一个实例,system classloader实际上是sun.misc.Launcher$AppClassLoadercȝ一个实例。ƈ且都?java.net.URLClassLoader的子cR?br />
让我们来看看Launcher初试化的q程的部分代码?br />
Launcher的部分代码:
public class Launcher  {
   public Launcher() {
       ExtClassLoader extclassloader;
       try {
           //初始化extension classloader
           extclassloader = ExtClassLoader.getExtClassLoader();
       } catch(IOException ioexception) {
           throw new InternalError("Could not create extension class loader");
       }
       try {
           //初始化system classloaderQparent是extension classloader
           loader = AppClassLoader.getAppClassLoader(extclassloader);
       } catch(IOException ioexception1) {
           throw new InternalError("Could not create application class loader");
       }
       //system classloader讄成当前线E的context classloaderQ将在后面加以介l)
       Thread.currentThread().setContextClassLoader(loader);
       ......
   }
   public ClassLoader getClassLoader() {
       //q回system classloader
       return loader;
   }
}

extension classloader的部分代码:
static class Launcher$ExtClassLoader extends URLClassLoader {

   public static Launcher$ExtClassLoader getExtClassLoader()
       throws IOException
   {
       File afile[] = getExtDirs();
       return (Launcher$ExtClassLoader)AccessController.doPrivileged(new Launcher$1(afile));
   }
  private static File[] getExtDirs() {
       //获得pȝ属?#8220;java.ext.dirs”
       String s = System.getProperty("java.ext.dirs");
       File afile[];
       if(s != null) {
           StringTokenizer stringtokenizer = new StringTokenizer(s, File.pathSeparator);
           int i = stringtokenizer.countTokens();
           afile = new File;
           for(int j = 0; j < i; j++)
               afile[j] = new File(stringtokenizer.nextToken());

       } else {
           afile = new File[0];
       }
       return afile;
   }
}

system classloader的部分代码:
static class Launcher$AppClassLoader extends URLClassLoader
{

   public static ClassLoader getAppClassLoader(ClassLoader classloader)
       throws IOException
   {
       //获得pȝ属?#8220;java.class.path”
       String s = System.getProperty("java.class.path");
       File afile[] = s != null ? Launcher.access$200(s) : new File[0];
       return (Launcher$AppClassLoader)AccessController.doPrivileged(new Launcher$2(s, afile, classloader));
   }
}

看了源代码大家就清楚了吧Qextension classloader是用系l属?#8220;java.ext.dirs”讄cL索\径的Qƈ且没有parent。system classloader是用系l属?#8220;java.class.path”讄cL索\径的Qƈ且有一个parent classloader。Launcher初始化extension classloaderQsystem classloaderQƈsystem classloader讄成ؓcontext classloaderQ但是仅仅返回system classloaderlJVM?br />
  q里怎么又出来一个context classloader呢?它有什么用呢?我们在徏立一个线EThread的时候,可以个线E通过setContextClassLoaderҎ来指定一个合适的classloader作ؓq个U程的context classloaderQ当此线E运行的时候,我们可以通过getContextClassLoaderҎ来获得此context classloaderQ就可以用它来蝲入我们所需要的Class。默认的是system classloader。利用这个特性,我们可以“打破”classloader委托机制了,父classloader可以获得当前U程的context classloaderQ而这个context classloader可以是它的子classloader或者其他的classloaderQ那么父classloader可以从其获得所需?ClassQ这打破了只能向父classloaderh的限制了。这个机制可以满_我们的classpath是在q行时才定,q由定制?classloader加蝲的时?由system classloader(卛_jvm classpath?加蝲的class可以通过context classloader获得定制的classloaderq加载入特定的class(通常是抽象类和接?定制的classloader中是其实?,例如web应用中的servlet是用这U机制加载的.

        好了Q现在我们了解了classloader的结构和工作原理Q那么我们如何实现在q行时的动态蝲入和更新呢?只要我们能够动态改变类搜烦路径和清?classloader的cache中已l蝲入的Classp了,有两个方案,一是我们承一个classloaderQ覆盖loadclassҎQ动态的LClass文gq用defineClassҎ来;另一个则非常单实用,只要重新使用一个新的类搜烦路径来new一?classloaderp了,q样xCcL索\径以便来载入新的ClassQ也重新生成了一个空白的cache(当然,cL索\径不一定必L?。噢Q太好了Q我们几乎不用做什么工作,java.netURLClassLoader正是一个符合我们要求的classloaderQ我们可以直接用或者承它可以了Q?br />
q是j2se1.4 API的doc中URLClassLoader的两个构造器的描qͼ
URLClassLoader(URL[] urls)
         Constructs a new URLClassLoader for the specified URLs using the default delegation parent ClassLoader.
URLClassLoader(URL[] urls, ClassLoader parent)
         Constructs a new URLClassLoader for the given URLs.
其中URL[] urls是我们要设|的cL索\径,parent是q个classloader的parent classloaderQ默认的是system classloader?br />

        好,现在我们能够动态的载入Class了,q样我们可以利用newInstanceҎ来获得一个Object。但我们如何此Object造型呢?可以此Object造型成它本n的Class吗?

        首先让我们来分析一下java源文件的~译Q运行吧Qjavac命o是调?#8220;JAVA_HOME/lib/tools.jar”中的“com.sun.tools.javac.Main”的compileҎ来编译:

   public static int compile(String as[]);

   public static int compile(String as[], PrintWriter printwriter);

q回0表示~译成功Q字W串数组as则是我们用javac命o~译时的参数Q以I格划分。例如:
javac -classpath c:\foo\bar.jar;. -d c:\ c:\Some.java
则字W串数组as为{"-classpath","c:\\foo\\bar.jar;.","-d","c:\\","c:\Some.java"}Q如果带有PrintWriter参数Q则会把~译信息出到q个指定的printWriter中。默认的输出?System.err?br />
其中 Main是由JVM使用Launcher初始化的system classloader载入的,Ҏ全盘负责原则Q编译器在解析这个java源文件时所发现的它所依赖和引用的所有Class也将由system classloader载入Q如果system classloader不能载入某个ClassӞ~译器将抛出一?#8220;cannot resolve symbol”错误?br />
所以首先编译就通不q,也就是编译器无法~译一个引用了不在CLASSPATH中的未知Class的java源文Ӟ而由于拼写错误或者没有把所需cd攑ֈCLASSPATH中,大家一定经常看到这?#8220;cannot resolve symbol”q个~译错误吧!

其次Q就是我们把q个Class攑ֈ~译路径中,成功的进行了~译Q然后在q行的时候不把它攑օ到CLASSPATH中而利用我们自q classloader来动态蝲入这个ClassQ这时候也会出?#8220;java.lang.NoClassDefFoundError”的违例,Z么呢Q?br />
我们再来分析一下,首先调用q个造型语句的可执行的Class一定是由JVM使用Launcher初始化的system classloader载入的,Ҏ全盘负责原则Q当我们q行造型的时候,JVM也会使用system classloader来尝试蝲入这个Class来对实例q行造型Q自然在system classloaderL不到q个Class时就会抛?#8220;java.lang.NoClassDefFoundError”的违例?br />
OKQ现在让我们来ȝ一下,java文g的编译和Class的蝲入执行,都是使用Launcher初始化的system classloader作ؓc蝲入器的,我们无法动态的改变system classloaderQ更无法让JVM使用我们自己的classloader来替换system classloaderQ根据全盘负责原则,限制了~译和运行时Q我们无法直接显式的使用一个system classloaderL不到的ClassQ即我们只能使用Java核心cdQ扩展类库和CLASSPATH中的cd中的Class?br />
q不dQ再试一下这U情况,我们把这个Class也放入到CLASSPATH中,让system classloader能够识别和蝲入。然后我们通过自己的classloader来从指定的class文g中蝲入这个ClassQ不能够委托 parent载入Q因样会被system classloader从CLASSPATH中将其蝲入)Q然后实例化一个ObjectQƈ造型成这个ClassQ这样JVM也识别这个ClassQ因?system classloader能够定位和蝲入这个Class从CLASSPATH中)Q蝲入的也不是CLASSPATH中的q个ClassQ而是?CLASSPATH外动态蝲入的Q这h行了吧Q十分不q的是,q时会出?#8220;java.lang.ClassCastException”q例?br />
Z么呢Q我们也来分析一下,不错Q我们虽然从CLASSPATH外用我们自qclassloader动态蝲入了q个ClassQ但它的实例造型的时候是JVM会用system classloader来再ơ蝲入这个ClassQƈ试用我们的自己的classloader载入的Class的一个实例造型为system classloader载入的这个ClassQ另外的一个)。大家发C么问题了吗?也就是我们尝试将从一个classloader载入的Class的一个实例造型为另外一个classloader载入的ClassQ虽然这两个Class的名字一P甚至是从同一个class文g中蝲入。但不幸的是JVM 却认个两个Class是不同的Q即JVM认ؓ不同的classloader载入的相同的名字的ClassQ即使是从同一个class文g中蝲入的Q是不同的!q样做的原因我想大概也是主要Z安全性考虑Q这样就保证所有的核心Javac都是system classloader载入的,我们无法用自qclassloader载入的相同名字的Class的实例来替换它们的实例?br />
看到q里Q聪明的读者一定想C该如何动态蝲入我们的ClassQ实例化Q造型q调用了吧!

那就是利用面向对象的基本Ҏ之一的多形性。我们把我们动态蝲入的Class的实例造型成它的一个system classloader所能识别的父类p了!q是Z么呢Q我们还是要再来分析一ơ。当我们用我们自qclassloader来动态蝲入这我们只要把这个Class的时候,发现它有一个父cClassQ在载入它之前JVM先会载入q个父类ClassQ这个父cClass是system classloader所能识别的Q根据委托机Ӟ它将由system classloader载入Q然后我们的classloader再蝲入这个ClassQ创Z个实例,造型个父cClassQ注意了Q造型成这个父c?Class的时候(也就是上溯)是面向对象的java语言所允许的ƈ且JVM也支持的QJVM׃用system classloader再次载入q个父类ClassQ然后将此实例造型个父cClass。大家可以从q个q程发现q个父类Class都是?system classloader载入的,也就是同一个class loader载入的同一个ClassQ所以造型的时候不会出CQ何异常。而根据多形性,调用q个父类的方法时Q真正执行的是这个ClassQ非父类 ClassQ的覆盖了父cL法的Ҏ。这些方法中也可以引用system classloader不能识别的ClassQ因为根据全盘负责原则,只要载入q个Class的classloaderx们自己定义的 classloader能够定位和蝲入这些Classp了?br />
q样我们可以事先定义好一l接口或者基cdƈ攑օCLASSPATH中,然后在执行的时候动态的载入实现或者承了q些接口或基cȝ子类。还不明白吗Q让我们来想一想Servlet吧,web application server能够载入Ml承了Servlet的Classq正的执行它们Q不它实际的Class是什么,是都把它们实例化成Z个Servlet ClassQ然后执行Servlet的initQdoPostQdoGet和destroy{方法的,而不这个Servlet是从web- inf/lib和web-inf/classes下由system classloader的子classloader(卛_制的classloader)动态蝲入。说了这么多希望大家都明白了。在applet,ejb{容器中,都是采用了这U机?

对于以上各种情况Q希望大家实际编写一些example来实验一下?br />
最后我再说点别的, classloader虽然UCؓcd载器Q但q不意味着只能用来加蝲ClassQ我们还可以利用它也获得囄Q音频文件等资源的URLQ当Ӟq些资源必须在CLASSPATH中的jarcd中或目录下。我们来看API的doc中关于ClassLoader的两个寻找资源和Class的方法描q吧Q?br />         public URL getResource(String name)
        用指定的名字来查找资源,一个资源是一些能够被class代码讉K的在某种E度上依赖于代码位置的数据(囄Q音频,文本{等Q?br />                一个资源的名字是以'/'号分隔确定资源的路径名的?br />                q个Ҏ先hparent classloader搜烦资源Q如果没有parentQ则会在内置在虚拟机中的classloaderQ即bootstrap classloaderQ的路径中搜索。如果失败,q个Ҏ调用findResource(String)来寻找资源?br />         public static URL getSystemResource(String name)
               从用来蝲入类的搜索\径中查找一个指定名字的资源。这个方法用system class loader来定位资源。即相当于ClassLoader.getSystemClassLoader().getResource(name)?br />
例如Q?br />    System.out.println(ClassLoader.getSystemResource("java/lang/String.class"));
的结果ؓQ?br />    jar:文g:/C:/j2sdk1.4.1_01/jre/lib/rt.jar!/java/lang/String.class
表明String.class文g在rt.jar的java/lang目录中?br /> 因此我们可以图片等资源随同Class一同打包到jarcd中(当然Q也可单独打包这些资源)q添加它们到class loader的搜索\径中Q我们就可以无需兛_q些资源的具体位|,让class loader来帮我们L了!



]]>
用JavaScript和vbscript实现UrlEncode和UrlDecodehttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/04/165143.html 心?/dc:creator> 心?/author>Tue, 04 Dec 2007 05:25:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/04/165143.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/165143.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/04/165143.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/165143.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/165143.html /*利用VBScript构徏asc吗和字符串的互{函数*/
Function str2asc(strstr)
    str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
    asc2str = chr(ascasc)
End Function
</script>
<script language="javascript">
/*q里开始时UrlEncode和UrlDecode函数*/
function UrlEncode(str){
    var ret="";
    var strSpecial="!"#$%&'()*+,/:;<=>?[]^`{|}~%";
    for(var i=0;i<str.length;i++){
        var chr = str.charAt(i);
        var c=str2asc(chr);
        if(parseInt("0x"+c) > 0x7f){
            ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
        }else{
            if(chr==" "){
                ret+="+";
            }else if(strSpecial.indexOf(chr)!=-1){
                ret+="%"+c.toString(16);
            }else{
                ret+=chr;
            }
        }
    }
    return ret;
}
function UrlDecode(str){
    var ret="";
    for(var i=0;i<str.length;i++){
        var chr = str.charAt(i);
        if(chr == "+"){
            ret+=" ";
        }else if(chr=="%"){
            var asc = str.substring(i+1,i+3);
            if(parseInt("0x"+asc)>0x7f){
                ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));
                i+=5;
            }else{
                ret+=asc2str(parseInt("0x"+asc));
                i+=2;
            }
        }else{
            ret+= chr;
        }
    }
    return ret;
}
</script>

 



]]>
quartz报错java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Sethttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/03/164815.html 心?/dc:creator> 心?/author>Mon, 03 Dec 2007 03:45:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/03/164815.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/164815.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/12/03/164815.html#Feedback6http://www.aygfsteel.com/lengxinCEO/comments/commentRss/164815.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/164815.html Caused by: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set;
的原因是׃使用的commons-collections.jar版本太低D的要使用3.*的才行?br /> 对于使用MyEclipse的,如果导入了commons-collections.jar 3.*的包q不行,而且没有扑ֈ其他的包的话很可能是MyEclipse自带的Liberary中包括了版本低的包而你导入了这个lib?br /> 比如MyEclipse的Hibernate的Lib中包括commons-collections.jar但是版本?.*?br /> Window->Preferences->Myeclipse->Project Capabilities->Hibernate
从lib中删除此包即可?

]]>
window.open()参数详解http://www.aygfsteel.com/lengxinCEO/archive/2007/11/29/164000.html 心?/dc:creator> 心?/author>Thu, 29 Nov 2007 07:25:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/11/29/164000.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/164000.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/11/29/164000.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/164000.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/164000.html alwaysLowered
innerWidth
screenY
alwaysRaised
left
scrollbars
channelmode
location
status
dependent
menubar
titlebar
directories
outerWidth
toolbar
fullscreen
outerHeight
top
height
menubar
width
hotkeys
resizable
z-lock
innerHeight
screenX  

--------------------------------------------------------------------------------------------------------------------
alwaysLowered
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  指定H口L保留在堆栈的最下面。换a之,不管新窗口是否激z,L其他H口下?
  window.open("alwayslowered.html", "_blank", "alwaysLowered");
--------------------------------------------------------------------------------------------------------------------
alwaysRaised
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  指定H口L保留在堆栈的最上面。换a之,不管新窗口是否激z,L其他H口上?
  window.open("alwaysraised.html", "_blank", "alwaysRaised");
--------------------------------------------------------------------------------------------------------------------
channelmode
  Internet ExplorerQ版?4+
  NavigatorQ不支持
  指定是否按照剧场模式昄H口Q以及是否显C频道区?
  window.open("channelmode.html", "_blank", "channelmode");
--------------------------------------------------------------------------------------------------------------------
dependent
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  定义是否H口成ؓ当前打开H口的依赖子H口。依赖窗口就是当它的父窗口关闭时Q它也随卛_闭。在windowsq_上,一个依赖窗口不会在d栏上昄?
  window.open("dependent.html", "_blank", "dependent");
--------------------------------------------------------------------------------------------------------------------
directories
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  指定是否昄目录按钮Q比如众所周知?What's Cool" and "What's New" 按钮Q。Internet Explorer这些目录按钮引用ؓ链接工具栏,NavigatorQ版?和以上)UCZ人工h?
  window.open("directories.html", "_blank", "directories");
--------------------------------------------------------------------------------------------------------------------
fullscreen
  Internet ExplorerQ版?4+
  NavigatorQ不支持
  定义是否按照全屏方式打开览器。请心使用全屏模式Q因为在q种模式下,览器的标题栏和菜单都被隐藏Q所有你应该提供一个按钮或者其他可视的U烦来帮助用户关闭这个窗口。当Ӟ使用热键ALT+F4也能关闭H口?
  window.open("fullscreen.html", "_blank", "fullscreen");
--------------------------------------------------------------------------------------------------------------------
height
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  以象素pixel为单位定义窗口文显C区域的高度Q最数值是100。如果仅仅定义高度,Internet Explorer使用l定的高度和默认的宽度。对于NavigatorQ如果不同时指定width或者innerWidthQ那么就忽略这个属性?
  window.open("height.html", "_blank", "height=200,width=300");
--------------------------------------------------------------------------------------------------------------------
hotkeys
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  如果没有定义Q或者ؓ0Q,那么屏蔽了没有菜单条的新窗口的大部分热键。但是安全以及退出热键仍然保留?
  window.open("hotkeys.html", "_blank", "hotkeys=0,menubar=0");
--------------------------------------------------------------------------------------------------------------------
innerHeight
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  以象素pixel为单位定义窗口文档显C区域的高度Q最数值是100。在Navigator版本4中,q个特征替换heightQؓ得是保持向后兼容。对于NavigatorQ如果不同时指定width或者innerWidthQ那么就忽略这个属性?
  window.open("innerheight.html", "_blank", "innerHeight=200,innerWidth=300");
--------------------------------------------------------------------------------------------------------------------
innerWidth
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  以象素pixel为单位定义窗口文显C区域的宽度Q最数值是100。在Navigator版本4中,q个特征替换widthQؓ得是保持向后兼容。对于NavigatorQ如果不同时指定height或者innerHeightQ那么就忽略这个属性?
  window.open("innerwidth.html", "_blank", "innerHeight=200,innerWidth=300");
--------------------------------------------------------------------------------------------------------------------
left
  Internet ExplorerQ版?4+
  NavigatorQ不支持
  以象素ؓ单位定义H口的X左标?
  window.open("left.html", "_blank", "left=20");
--------------------------------------------------------------------------------------------------------------------
location
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  定义是否昄览器中供地址URL输入的文本域?
  window.open("location.html", "_blank", "location");
--------------------------------------------------------------------------------------------------------------------
menubar
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  定义是否昄菜单条(菜单条位于窗口顶部,包括“文g”?#8220;~辑”{)?
  window.open("menubar.html", "_blank", "menubar");
--------------------------------------------------------------------------------------------------------------------
outerHeight
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  以象素ؓ单位定义H口Q它的外部边界)的总高度,最数值比100多一些,因ؓH口内容区域的高度必至是100。如果没有同时定义outerWidthQNavigator忽视这个特征?
  window.open("outerheight.html", "_blank", "outerHeight=200,outerWidth=300");
--------------------------------------------------------------------------------------------------------------------
outerWidth
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  以象素ؓ单位定义H口Q它的外部边界)的d度,最数值比100多一些,因ؓH口内容区域的宽度必至是100。如果没有同时定义outerHeightQNavigator忽视这个特征?
  window.open("outerwidth.html", "_blank", "outerHeight=200,outerWidth=300");
--------------------------------------------------------------------------------------------------------------------
resizable
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  定义是否H口可以通过它的边界q行大小~放控制。依赖于q_不同Q用户也许还有其他改变窗口大的Ҏ?
  window.open("resizable.html", "_blank", "resizable");
--------------------------------------------------------------------------------------------------------------------
screenX
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  以象素ؓ单位定义H口的X坐标?
  window.open("screenx.html", "_blank", "screenX=20");
--------------------------------------------------------------------------------------------------------------------
screenY
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  以象素ؓ单位定义H口的Y坐标?
  window.open("screeny.html", "_blank", "screenY=20");
--------------------------------------------------------------------------------------------------------------------
scrollbars
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  定义是否ȀzLq_垂直滚动条?
  window.open("scrollbars.html", "_blank", "scrollbars");
--------------------------------------------------------------------------------------------------------------------
status
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  定义是否在窗口的下部d状态栏?
  window.open("status.html", "_blank", "status");
--------------------------------------------------------------------------------------------------------------------
titlebar
  Internet ExplorerQVersion 5+
  NavigatorQ版?4+
  定义是否昄H口的标题栏。在Internet Explorer中,除非调用者是一个HTML应用E序或者一个可信Q的对话框Q那么这个特征是被屏蔽的?
  window.open("titlebar.html", "_blank", "titlebar=0");
--------------------------------------------------------------------------------------------------------------------
toolbar
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  定义是否昄览器的工具栏(位于H口的上部,包括“后退”?#8220;向前”Q?
  window.open("toolbar.html", "_blank", "toolbar");
--------------------------------------------------------------------------------------------------------------------
top
  Internet ExplorerQ版?4+
  NavigatorQ不支持
  以象素ؓ单位定义H口的纵坐标?
  window.open("top.html", "_blank", "top=20");
--------------------------------------------------------------------------------------------------------------------
width
  Internet ExplorerQ所有版?
  NavigatorQ所有版?
  以象素pixel为单位定义窗口文显C区域的宽度Q最数值是100。如果仅仅定义宽度,Internet Explorer使用l定的宽度和默认的高度。对于NavigatorQ如果不同时指定height或者innerHeightQ那么就忽略这个属性?
  window.open("width.html", "_blank", "height=200,width=300");
--------------------------------------------------------------------------------------------------------------------
z-lock
  Internet ExplorerQ不支持
  NavigatorQ版?4+
  定义H口ȀzL不在堆栈中QP是_新窗口当被激zLq不能位于其他窗口之上?
  window.open("zlock.html", "_blank", "z-lock"); 
--------------------------------------------------------------------------------------------------------------------

]]>
java.lang.UnsupportedClassVersionErrorhttp://www.aygfsteel.com/lengxinCEO/archive/2007/10/24/155551.html 心?/dc:creator> 心?/author>Wed, 24 Oct 2007 04:31:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/10/24/155551.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/155551.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/10/24/155551.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/155551.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/155551.html一直做jdk1.5的项目,H遇一个老项目jdk1.4的,Dtomcat启动?/span>java.lang.reflect.InvocationTargetException
解决Qeclipse?br />
Windows-->Preferences在弹出的H口中选择
java-->compiler在右上方把Compile compliance levelҎ1.4



]]>
վ֩ģ壺 | Թ| | ;| | ɽ| | | | | ͩ| ˷| ¸| ũ| | ƽ| | | ɽ| | | ˮ| ׶| ں| ͨ| | | | Զ| | ų| ɽ| | | | | | | | | |