??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美精品久久久久久久久久丰满,香蕉精品久久,九一成人免费视频http://www.aygfsteel.com/lengxinCEO/category/24526.htmlI Believe I Can Flyzh-cnSat, 24 May 2008 05:51:05 GMTSat, 24 May 2008 05:51:05 GMT60JAR文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#Feedback1http://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



]]>
q行msi提示windows installer服务未启?/title><link>http://www.aygfsteel.com/lengxinCEO/archive/2007/10/23/155329.html</link><dc:creator> 心?/dc:creator><author> 心?/author><pubDate>Tue, 23 Oct 2007 08:34:00 GMT</pubDate><guid>http://www.aygfsteel.com/lengxinCEO/archive/2007/10/23/155329.html</guid><wfw:comment>http://www.aygfsteel.com/lengxinCEO/comments/155329.html</wfw:comment><comments>http://www.aygfsteel.com/lengxinCEO/archive/2007/10/23/155329.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lengxinCEO/comments/commentRss/155329.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lengxinCEO/services/trackbacks/155329.html</trackback:ping><description><![CDATA[且,windows installer服务不能启动<br /> 解决Q?br /> 在命令行提示W下Q键入msiexec /unregister <br /> 然后再键入msiexec /regserver <br /> <img src ="http://www.aygfsteel.com/lengxinCEO/aggbug/155329.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-10-23 16:34 <a href="http://www.aygfsteel.com/lengxinCEO/archive/2007/10/23/155329.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{载】installanywherehttp://www.aygfsteel.com/lengxinCEO/archive/2007/09/18/146085.html 心?/dc:creator> 心?/author>Tue, 18 Sep 2007 02:36:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/09/18/146085.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/146085.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/09/18/146085.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/146085.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/146085.html我用的installAnyWhere?.1版本的,有关installAnyWhere的安装、破解,|上有很多,我是用自己写的cracker破解的,如果不注册,生成的安装包每次都会提示“该安装包是用未注册的installAnyWhere创徏?#8221;Q非怸爽。所以,最好破解了再用?/p>

|上有关installAnyWhere的用,自己看了很久Q都觉得不太明白Q所以,自己摸烦的几天,下面Q就把我自己的用的一些细节介l给大家Q如果你觉得对你有所帮助Q那是我最大的荣幸?/p>

使用步骤Q?/p>

一、修Ҏ地化文g

installAnyWhere本n支持多种语言的本地化Q包括中文。但~省自带的简体中文文件中Q几乎都是繁体中文,因此Q如果你的安装包要支持简体中文安装的话,最好先把简体中文的本地化文?#8220;?#8221;一下?/p>

化方法如下:

到installAnyWhere安装目录的\resource\i18nresources目录下,扑ֈcustom_zh_CN文gQ把其中的中文内容删除后重新输入体的汉字Q记得输入法要用体中文的?/p>

二、创建新的安装工E?/p>

打开installAnyWhere后,如下图所C:


选择“Create New Project”Q选择“Basic Project Template”模版Q选择“Save as”按钮Q弹Z存新建工E的目录以及名称Q名U的后缀?iap_xml?/p>

点击“Next”q入工程讄界面Q也可以直接点击“Advanced Designer”q入高设计界面。如果想对工E作一些高U的讄Q就选择高设计界面?/p>

高设计界面如下图所C:


从该界面中可以看刎ͼ有很多项讄Q一U导航包括:Project、Installer UI、Organization、Files、Pre-Install、Post-Install、Pre-Uninstall、Post-Uninstall、Build。下面分别逐个介绍?/p>

三、工E设|?/p>

q入高设计界面的Projiect界面Q其中包括了Info、Description、File Setting、Platforms、Locales、Rules、Config、Java?/p>

1、Info讄

Info中主要设|工E的一些信息,包括安装的title、名U、品名U、工E的存放位置、构建后的安装包存放位置{信息,如下图所C:


如无Ҏ情况Q一般用缺省设|即可?/p>

2、Description讄

Description界面中设|安装包的品可能写入注册表中的一些信息,包括Q品名U、ID、版本、以及支持、提供商{信息,如下图所C:


在该界面中,你可以详l的填写相关的信息,包括产品介绍{?

3、File Settings

该界面中主要讄安装q程中,被安装的文g的时间如何处理,你可以选择保留文g本n的时_也可以设|ؓ安装时的旉Q还可以讄成指定的旉。该界面中还可以讄当文件已l存在时Q如何提C或操作。一般,使用~省讄卛_?/p>

File Settings的操作界面如下:


4、Platforms

我用?.1版本的InstallAnywhereQ支持三U操作系l^収ͼMac OS X、Windows和UNIX。因此,Platforms讄界面中,你可以分别对q三U操作^台的~省安装路径和缺省快h式进行设|。Windowsq_的设|界面如下:


一般用缺省设|即可?/p>

5、Locales

Locales设|安装包所支持的安装界面的语言。缺省是英文安装语言。只有选择了除英文之外的至一U其他语aQ安装包才会在安装开始时昄选择安装语言的界面。一般选择支持体中文即可。操作界面如下:


在installAnyWhere 的其他的版本手册中都提及需要注意中文的问题Q我在前面已l有说明。如果大家在使用中遇C文显C有问题的话Q尤其是在非windows操作q_上)Q也很简单只要将”*locales”的文件夹?#8221; custom_zh_CN”文g中的中文用UNICODE码代替就OK了,JDK\BIN中提q了相关的工具native2ascii.exeq行后替换原先的custom_zh_CNOK了?/p>

6、Rules

Rules中可以配置多种安装规则Q如安装前检查安装\径属性、安装^台或者其他自定义的规则。一般,我们会用到检查安装^収ͼ如是否是指定的操作系l,如下图所C:


7、Config

“Config”界面“installer debug output”中有俩个文本框,大家可以在里面填?#8220;console”,q样大家在安装文件生成后Q调试安装时可以通过控制台来查看相关的提CZ息。正是发布的话,清空卛_。其他几w可以使用~省讄卛_?br />
8、Java

如果需要安装VM的话Q就需要注意VM的安装\径,而设|VM的安装\径,在该界面中Q?br />

一般用~省讄卛_

四、安装界?/p>

主要讄安装的界面相关信息,一般选择swing模式卛_。该界面中,特别需要注意的是囄Q如果没有特别需要,最好用默认的Q否则,l常出现找不到图片的问题。如果需要的话,最好在InstallAnywhere的resources目录中徏立图片文件夹Q然后用该路径。其他用缺省设|即可?/p>

五、组l?/p>

Organization界面下主要包含Install Set、Feathures、Components和Modules四个子界面,分别用来讄安装集合Q如典型安装、最化安装、自定义安装{)、特性(如公q件、帮助文、应用程序等Q、组建(要安装内容的各个l成部分Q、模块(其他需要合q的模块Q。在配置安装集合Ӟ指定哪些Ҏ在某个安装cd时缺省选择被安装,而每个特性中具体包含哪些内容Q是在组Z配置的。没有特D需求的话,使用~省讄卛_?/p>

六、文?/p>

Files界面中,真正配置要安装的文g内容Q也是哪些内容要被d到安装包里。缺省的操作界面如下图所C:


单安装的话,只要把要安装的文仉过“Add Files”按钮dq来卛_Q如下图所C:

d文g后,效果图下图所C:

其他使用~省讄卛_?/p>

七、预安装

Pre-Install界面比较重要Q安装过E中的各U界面都在这里设|,如安装协议、安装\径、程序快捗预安装摘要{。一般简单安装的话,使用~省讄卛_。缺省情况下Q没有安装协议界面,如果需要的话,可以通过向导d?/p>

点击“Add Action”按钮打开选择action的界面,如下图所C:


切换到Panels界面Q选择“Panel:License Agreement”条目Q点?#8220;Add”按钮Q然后关闭选择action界面。这样就d了安装协议的界面Q如下图所C:


首先要选中刚刚d的安装协议条目,通过中间的上下箭头移动安装协议条目到合适的位置Q然后修改下面的PathQ其指定到你所使用的安装协议文件。目前只支持文本和htm俩中格式的协议文件?/p>

八、安装后

Post-Install界面中配|安装完成后的操作,~省会有俩个界面Q一个是提示安装完成Q另一个是重启操作pȝQ如下图所C:


如果安装完成后不需要重启操作系l,选中“RestartWindows”Q然后点?#8220;Remove”按钮卛_?/p>

九、预卸蝲

Pre-Uninstall界面中设|卸载过E的交互界面和步骤,~省有三个界面:卸蝲介绍、选择卸蝲cd、选择要卸载的featureQ如下图所C:


其中的卸载类型与前面Organization中设|的install set对应Q如install set中有多种安装cdQ那卸蝲。也有多种选择Q否则就没必要选择卸蝲cd。卸载的feature也与organization中的feature对应Q如果前面没有配|,q里也就没必要配|该panel?/p>

十、卸载后

Post-Uninstall界面也很单,主要是一个卸载完成的提示界面。缺省会有restart windows的步骤,如果不需要重启操作系l,可以直接remove掉restart windows的action?/p>

十一、构?/p>

Build界面中,主要讄要构建的安装包的目标q_以及是否在安装包中包含VMQ如下图所C:


如果q行安装E序的目标机器上已经安装有VMQ就可以选择安装包中不包含VMQ否则,p包含VMQ否则,安装包不能执行。需要注意的是选择VM的版本,如果你的E序本n也需要VMq行环境的话Q而且需要的VM版本较高Q那p从网上下载合适版本的VM?/p>

依照上面的步骤,可以构徏出基本功能的安装包了。后面将介绍一些特D功能的安装包的制作Q如多语a安装环境下的多语a的安装协议等?br />

׃InstallAnywhere制作出的安装包本w是Zjava的,因此Q如果目标计机上没有安装javaq行环境的话Q就必须在build安装包,选择包含VMQ否则,安装包不能运行?br /> 如果你打包的内容本n是基于java的程序,那程序本w运新就需要javaq行环境Q因此,可以在安装说明可以明安装条Ӟ必须安装javaq行环境?br /> 如果用InstalalAnywhere打包非javaE序Q那你的安装包最好包含VMQ否则,必d安装javaq新环境Q才能运行安装包?br />
下面说说本地化的问题?br /> 在用InstallAnywhere制作安装包的q程中,locale的设|界面中Q允怽选择多种语言。locale中的选择Q决定了你的安装包在启动安装时所提供的安装界面的语言选择。如果只选择了一U语aQ那安装׃会出现选择安装语言的界面,只有选择了一U以上的语言Q安装才会出现选择安装语言的界面?br />
英文是InstallAnywhere~省的语aQ因此,只要你在Locale中选择了非英文的语aQ就会出现安装语a的选项界面?br />
如果安装包配|了多语a安装的支持,那在安装q程中,一般都希望对应的安装界面、信息都是烦选的语言Q如选择了中文的话,那安装过E中的信息希望都是中文的Q如安装协议。也是Q如果选择中文安装的话Q安装协议是中文的;如果选择英文安装的话Q安装协议是英文的。这U情况,应该是大安希望的?br />
具体操作步骤如下Q?br /> 一、准备两U语a的安装协议文Ӟ假设分别为license_en.txt和license_zh.txt
二、在工程的locale配置界面中选中体中?br /> 三、按照之前介l的Ҏ配置、构建工E,否则没有custom_zh_CN文g
四、打开安装工程目录下的custom_zh_CN文gQ一般都在安装工E名+locale目录下,扑ֈ“LicenseAgrAction.*.resourceName=”,修改配置Z的中文安装协议文件名Qlicense_zh.txtQ?L内容与具体工E有养I是不同的代码
五、l在custom_zh_CN文g中查?#8220;LicenseAgrAction.*.resourcePath=”,修改配置文license_zh.txt文g所在的l对路径Q如Qd:\\test\\Q要注意是\?br /> 六、切换到InstallAnywhere高设计界面Q打开Files,选中“User
Install Fould”Q点?#8220;Add
launcher”Q这时会弹出对话框,询问你是否让InstallAnywhere自动搜烦含有mainҎ的类Q非javaE序的话Q可以选择取消。就会在文g树中d“shortcut
destination fold”,如下图所C:

选择?#8220;shortcut destination fold”Q点?#8220;property”中的path的下拉框,选择“DO NOT INSTALL”Q如下图所C:

dlicense_zh.txt文g?#8220;DO NOT INSTALL”中Qƈ删除?#8220;Create LaunchAnywhere”Q如下图所C:

七、构建工E即可?br />
q样Q在安装Ӟ选择中文的话Q就会用中文的安装协议?br />
~省情况下,InstallAnywhere构徏出的安装包是自解压的、可用于web方式安装的单文g的安装包Q也是Q构建出的安装包可以自解压,可以嵌入|页通过|页来安装。通常Q这U方式的安装包,基本可以满我们的需要,把这U安装包直接d到光盘也可以q行发行Q只是光盘中的内Ҏ较单一Q如q希望自q发布光盘也像其安装光盘那P里边包含很多文gQ而这些文件本w就是要被安装的内容Q但真正的内容又被隐藏在q些文g中,那该怎么办呢Q?

其实Q只要选择InstallAnywhere的Build标签中的Distribution中的“Build CD-ROM Installer”卛_Q如下图所C:

q样Q就可以构徏出可用于光盘d的发布内容了Q这些内容一般存攑֜输出目录的CDROM_Installers目录下。缺省情况下Q一个光盘的定w?50MQ如果内容超q?50MQInstallAnywhere会自动把内容分隔到其他disk的。假如内Ҏ700MQ那构徏出的CD-ROM的disk1中可以包?50M的内容,而disk2中则包含其余的内宏V在安装q程中,会自动提CZ更换disk2?br /> 每张disk的容量,可以单独讄Q只要点?#8220;Change Disk Space ans Name”按钮Q就可以打开修改disk属性的界面Q如下图所C:

其中?#8220;Media Name”属性就是安装过E中提示你更换光盘的名称Q而Mesia Size中是讄光盘定w大小的,切忌Q其单位是byte?br />
在制作安装包的过E中Q有时候我们也希望自己做的安装包稍微有点专业的感觉Q比如安装时必须输入一个安装序列号什么的Q这Pq人的感觉不同了。InstallAnywhere提供了这L功能Q只要进行简单的配置Q就可以很快制作Z个需要序列号的安装包了。具体的配置步骤如下Q?br /> 一、按照先前的说明构徏基本安装工程
二、在预安装配|界面中Q添加一个actionQ选择Panel中的get serial numberQ通过上下头Ud到合适的安装序
三、选中刚刚d?#8220;get serial number”panelQ点M面的Configure Serial Number按钮Q打开序列L成配|界面,如下图所C:

有下列几炚w要特别说明:
1、序列号个数必须大于{于产品个数
2、固定的字符串可以是前缀也可以是后缀
3、种子随机数最?位,可以手工输入Q但最好用自动生成的
4、记得选择把生成的序列号保存到文gQ否则很ȝ
5、如果一个品,选择生成多个序列Pq些序列号都可以用来q行安装
四、保存安装工E,可以在指定的目录下生成了序列号文g
五、build工程Q生成新的安装包
q样Q新的安装包必输入安装序列号才能完成安装Q否则,不能l箋安装?br />

]]>
org.hibernate.MappingException: Unknown entityhttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/14/136561.html 心?/dc:creator> 心?/author>Tue, 14 Aug 2007 01:22:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/14/136561.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/136561.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/14/136561.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/136561.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/136561.html想重新生成hbm.xmlӞ取java src folder说no entries availableQ奇怪了半天。终于发现工E从subvsion上checkout出来Q没有hibernate capabilitiesQ于是addq去?br>可恶的映,x动配得没有bugq真难?

]]>
java.lang.OutOfMemoryError: PermGen spacehttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/04/134416.html 心?/dc:creator> 心?/author>Sat, 04 Aug 2007 09:45:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/04/134416.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/134416.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/04/134416.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/134416.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/134416.html于是毫不犹U的把JVM Heap Size加大?Xms256m -Xmx512m?br>没想C天居然PermGen spaceQ真是服了JVMQ内存的问题真的是很烦恼的?br>于是又无奈的?Xms256m -Xmx512m 后面q加?-XX:MaxNewSize=256m -XX:MaxPermSize=512m?br>真心疼我的本?#8230;…

]]>
内网外网同时?/title><link>http://www.aygfsteel.com/lengxinCEO/archive/2007/08/04/134381.html</link><dc:creator> 心?/dc:creator><author> 心?/author><pubDate>Sat, 04 Aug 2007 03:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/lengxinCEO/archive/2007/08/04/134381.html</guid><wfw:comment>http://www.aygfsteel.com/lengxinCEO/comments/134381.html</wfw:comment><comments>http://www.aygfsteel.com/lengxinCEO/archive/2007/08/04/134381.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lengxinCEO/comments/commentRss/134381.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lengxinCEO/services/trackbacks/134381.html</trackback:ping><description><![CDATA[虽然本h用本本,不过boss坚决抵制内网外网同时上,因ؓ不知道什么原因内外网会ؕ发包?br>׃公司理|络的才辞掉了,所以前D|间一直苦于内|外|不停的切换中?br>偶尔在网上搜C个办法,发觉真是个高人?br>先解军_法如下:<br>1.讄外网的TCP/IP?br>2.讄内网的TCP/IPQandQ?span style="COLOR: #ff0000">不要讄|关Q网关ؓI!<br></span>Q得内|无法通过|关路由Q?br>3.q行cmd route命oQroute <span style="COLOR: #ff0000">-p</span> add <span style="COLOR: #ff0000">149.0.12.0</span> mask 255.255.255.0 <span style="COLOR: #ff0000">149.0.12.1</span> metric 1<br>Q?p参数代表怹写入路由表,149.0.12.0?49.0.12.1分别代表你内|的IPD和默认|关Q?br>4.启动两个q接?br>l于能一起上Q而且不会乱发包了Q? <img src ="http://www.aygfsteel.com/lengxinCEO/aggbug/134381.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-08-04 11:51 <a href="http://www.aygfsteel.com/lengxinCEO/archive/2007/08/04/134381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat启动EOF异常http://www.aygfsteel.com/lengxinCEO/archive/2007/08/03/134332.html 心?/dc:creator> 心?/author>Fri, 03 Aug 2007 13:37:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/03/134332.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/134332.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/03/134332.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/134332.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/134332.html- IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:
2279)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:
2748)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:
780)
    at java.io.ObjectInputStream.
<init>(ObjectInputStream.java:280)
    at org.apache.catalina.util.CustomObjectInputStream.
<init>(CustomObjectInputStream.java:57)
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:
361)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:
320)
    at org.apache.catalina.session.StandardManager.start(StandardManager.java:
634)
    at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:
431)
    at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:
391)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:
1042)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:
255)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:
119)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:
4053)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1012)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:
718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1012)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:
450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:
683)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:
537)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
    at java.lang.reflect.Method.invoke(Method.java:
597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:
271)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:
409)
- Exception loading sessions from persistent storage
java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:
2279)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:
2748)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:
780)
    at java.io.ObjectInputStream.
<init>(ObjectInputStream.java:280)
    at org.apache.catalina.util.CustomObjectInputStream.
<init>(CustomObjectInputStream.java:57)
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:
361)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:
320)
    at org.apache.catalina.session.StandardManager.start(StandardManager.java:
634)
    at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:
431)
    at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:
391)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:
1042)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:
255)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:
119)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:
4053)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1012)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:
718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1012)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:
450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:
683)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:
537)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
    at java.lang.reflect.Method.invoke(Method.java:
597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:
271)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:
409)


解决Q保存在盘上的session数据dp|Q删?#8220;tomcat\work\Catalina\localhost\工程?#8221;下SESSIONS.ser卛_?/p>

]]>
ActiveMQ加蝲异常http://www.aygfsteel.com/lengxinCEO/archive/2007/08/03/134328.html 心?/dc:creator> 心?/author>Fri, 03 Aug 2007 13:27:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/03/134328.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/134328.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/08/03/134328.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/134328.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/134328.html- Creating ActiveMQ Broker
- Loading ActiveMQ Broker configuration from: /WEB-INF/classes/activemq.xml
- Failed to create broker: java.lang.IllegalStateException: Could not find valid implementation for2.0
java.lang.IllegalStateException: Could not find valid implementation 
for2.0
    at org.apache.xbean.spring.context.impl.XBeanHelper.createBeanDefinitionReader(XBeanHelper.java:
48)
    at org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:
94)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:
89)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:
269)
    at org.apache.xbean.spring.context.ResourceXmlApplicationContext.
<init>(ResourceXmlApplicationContext.java:64)
    at org.apache.xbean.spring.context.ResourceXmlApplicationContext.
<init>(ResourceXmlApplicationContext.java:52)
    at org.apache.activemq.xbean.BrokerFactoryBean.afterPropertiesSet(BrokerFactoryBean.java:
77)
    at org.apache.activemq.web.SpringBrokerContextListener.createBroker(SpringBrokerContextListener.java:
110)
    at org.apache.activemq.web.SpringBrokerContextListener.contextInitialized(SpringBrokerContextListener.java:
72)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
3669)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:
4104)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1012)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:
718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1012)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:
450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:
683)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:
537)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
    at java.lang.reflect.Method.invoke(Method.java:
597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:
271)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:
409)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:
27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:
513)
    at org.apache.xbean.spring.context.impl.XBeanHelper.createBeanDefinitionReader(XBeanHelper.java:
46)
     
23 more
Caused by: java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlBeanDefinitionReader.setValidationMode(I)V
    at org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.
<init>(XBeanXmlBeanDefinitionReader.java:58)
     
28 more
- Starting ActiveMQ Broker
- Failed to start ActiveMQ broker: java.lang.NullPointerException
java.lang.NullPointerException
    at org.apache.activemq.web.SpringBrokerContextListener.contextInitialized(SpringBrokerContextListener.java:
76)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
3669)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:
4104)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1012)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:
718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1012)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:
450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:
683)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:
537)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
    at java.lang.reflect.Method.invoke(Method.java:
597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:
271)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:
409)
Failed to create broker: java.lang.IllegalStateException: Could not find valid implementation for2.0

 

解决Q加载了2ơ不同的springQspring 的jar包有重复Q删除spring-1.4.jarQ保留spring-2.0.jar?

]]>
WebLogic8安装配置http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133605.html 心?/dc:creator> 心?/author>Tue, 31 Jul 2007 08:28:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133605.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/133605.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133605.html#Feedback3http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133605.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/133605.html安装q程׃多说了,执行server811_win32.exe文gQ开始安装。安装目录我选在d:\beaQ选择完全安装Q其他按默认值就行?br>
下面主要看看配置q程Q以下步骤按照WebLogic配置出现界面
1Q?#8220;开?>E序->Bea WebLogic Platform 8.1-> Configuration Wizard”Q启动Configuration Wizard工具?br>2Q选择“新徏WebLogic配置”Q单?#8220;next”?br>3Q选择“Basic WebLogic Server Domain”Q单?#8220;next”?br>4Q选择“custom”Q单?#8220;next”?br>5Q更改NameQ单?#8220;next”?br>6Q选择“?#8221;Q单?#8220;next”?br>7Q选择“?#8221;Q单?#8220;next”?br>8Q选择“?#8221;Q单?#8220;next”?br>9Q输?#8220;User name”?#8220;password”Q单?#8220;next”Q需要至?位密码,单击“next”?br>10Q默认设|,单击“next”?br>11Q默认设|,单击“next”?br>12QBea WebLogic默认安装了JDK1.4.1Q若要用其它版本。选择“other Java SDK”Q点?#8220;browse”指定安装目录。单?#8220;next”?br>13Q默认D|,单击“create”?br>14Q选择“start run server”Q单?#8220;done”?br>15Q再ơ启动Configuration Wizard工具?br>16Q选择“extend an existing weblogic configuration”Q单?#8220;next”?br>17Q选择“\bea\user_projects\domains\mydomain”Q单?#8220;next”?br>18Q在“DefaultWebApp”前打上勾选中,单击“next”?br>19Q默认设|,单击“next”?br>20Q默认设|,单击“next”?br>21Q默认设|,单击“next”?br>22Q默认设|,单击“next”?br>23Q可更改配置应用E序位置Q默认ؓ“\bea\user_projects\applications\mydomain”Q单?#8220;import”。导入完成后Q系l会在应用程序位|下创徏一个DefaultWebApp目录Q把你的jsp放在这儿吧Q)
24Q单?#8220;done”l束配置?/p>

在jbuider里面q行配置Q?/p>

1。工h上的Qenterprise-->configure servers

2。选择左侧user home下的weblogic platform server 8.x

3。选择右侧的enable server

4。home directory选择D:/bea/weblogic81/server

5。选择custom选项卡,bea home directory选择D:/bea

6。domain directory选择D:/bea/user_projects/domains/mydomain

7。输入user name和password

8。去掉下面两个勾选,然后ok

最后一步我有点qL。。?/p>

]]>
java里调用sql脚本对sybaseq行的操?/title><link>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133603.html</link><dc:creator> 心?/dc:creator><author> 心?/author><pubDate>Tue, 31 Jul 2007 08:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133603.html</guid><wfw:comment>http://www.aygfsteel.com/lengxinCEO/comments/133603.html</wfw:comment><comments>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133603.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133603.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lengxinCEO/services/trackbacks/133603.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">String sql </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">isql -Usa -P -S221 -Jcp936 iE:\\aaa.sql</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> {<br>    Runtime.getRuntime().exec(sql);<br>} </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (IOException e) {<br>    e.printStackTrace();<br>}<br></span></div> sybase用isqlQ-S是你本机sybase客户端的服务名,QJ是设|的字符集,Qi需要全路径了?<br><br>以上是在能确定数据库用户名、密?#8230;…g条g的情况下实行的,否则q是在sql脚本文gdString里,写上for循环一句一句的执行吧? <img src ="http://www.aygfsteel.com/lengxinCEO/aggbug/133603.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-07-31 16:25 <a href="http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>由此U念我逝去的爱?/title><link>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133604.html</link><dc:creator> 心?/dc:creator><author> 心?/author><pubDate>Tue, 31 Jul 2007 08:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133604.html</guid><wfw:comment>http://www.aygfsteel.com/lengxinCEO/comments/133604.html</wfw:comment><comments>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133604.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133604.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lengxinCEO/services/trackbacks/133604.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">SimpleDateFormat format</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> SimpleDateFormat(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">yyyyMMdd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>Date end </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> format.parse(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">20070729</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>Date begin </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> format.parse(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">20060420</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> l </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> end.getTime() </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> begin.getTime();<br></span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000"> d </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> l</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">24</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">60</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">60</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">);<br>System.out.println(d);<br></span></div> <img src ="http://www.aygfsteel.com/lengxinCEO/aggbug/133604.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-07-31 16:25 <a href="http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>properties的读?IO操作)及g?/title><link>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133602.html</link><dc:creator> 心?/dc:creator><author> 心?/author><pubDate>Tue, 31 Jul 2007 08:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133602.html</guid><wfw:comment>http://www.aygfsteel.com/lengxinCEO/comments/133602.html</wfw:comment><comments>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133602.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133602.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lengxinCEO/services/trackbacks/133602.html</trackback:ping><description><![CDATA[最W最实在思\最全面的做法,用于最基础的代码锻炼非常有效,推荐l大家打打java底^_^ <br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> cn.net.withub.xfgl.common; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_37_60_Open_Image onclick="this.style.display='none'; Codehighlighter1_37_60_Open_Text.style.display='none'; Codehighlighter1_37_60_Closed_Image.style.display='inline'; Codehighlighter1_37_60_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_37_60_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_37_60_Closed_Text.style.display='none'; Codehighlighter1_37_60_Open_Image.style.display='inline'; Codehighlighter1_37_60_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_37_60_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id=Codehighlighter1_37_60_Open_Text><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>* </span><span style="COLOR: #808080">@author</span><span style="COLOR: #008000"> YuLuo <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.File; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.FileInputStream; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.FileNotFoundException; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.FileOutputStream; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.IOException; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.InputStream; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.util.Properties; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">前一已介绍此方?nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> cn.net.withub.xfgl.common.ToUnicode; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_362_3319_Open_Image onclick="this.style.display='none'; Codehighlighter1_362_3319_Open_Text.style.display='none'; Codehighlighter1_362_3319_Closed_Image.style.display='inline'; Codehighlighter1_362_3319_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> CreatePro </span><span id=Codehighlighter1_362_3319_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_362_3319_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">L?nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> String readFile(String filePath, String parameterName) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> IOException, FileNotFoundException </span><span id=Codehighlighter1_484_735_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_484_735_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    String result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">; <br><img style="WIDTH: 11px; HEIGHT: 16px" height=16 src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" width=11 align=top>    File file </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(filePath); <br>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (file.exists()) </span><span id=Codehighlighter1_562_716_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_562_716_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        FileInputStream fis </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> FileInputStream(file); <br><img style="WIDTH: 11px; HEIGHT: 16px" height=16 src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" width=11 align=top>        </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[] b </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[fis.available()]; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        fis.read(b); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> String(b, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">UTF-8</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        fis.close(); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> result; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">修改后存?nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> saveFile(String content, String path, String fileName) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> IOException </span><span id=Codehighlighter1_841_1036_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_841_1036_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    File f </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(path); <br><img id=Codehighlighter1_887_903_Open_Image onclick="this.style.display='none'; Codehighlighter1_887_903_Open_Text.style.display='none'; Codehighlighter1_887_903_Closed_Image.style.display='inline'; Codehighlighter1_887_903_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">f.exists()) </span><span id=Codehighlighter1_887_903_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_887_903_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        f.mkdirs(); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    File fn </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(f, fileName); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    FileOutputStream fos </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> FileOutputStream(fn); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    fos.write(content.getBytes()); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    fos.close(); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">删除旧文?nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_1110_1219_Open_Image onclick="this.style.display='none'; Codehighlighter1_1110_1219_Open_Text.style.display='none'; Codehighlighter1_1110_1219_Closed_Image.style.display='inline'; Codehighlighter1_1110_1219_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1110_1219_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1110_1219_Closed_Text.style.display='none'; Codehighlighter1_1110_1219_Open_Image.style.display='inline'; Codehighlighter1_1110_1219_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> deleteFile(String path) </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> IOException </span><span id=Codehighlighter1_1110_1219_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1110_1219_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    File f </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(path); <br><img id=Codehighlighter1_1155_1171_Open_Image onclick="this.style.display='none'; Codehighlighter1_1155_1171_Open_Text.style.display='none'; Codehighlighter1_1155_1171_Closed_Image.style.display='inline'; Codehighlighter1_1155_1171_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (f.exists()) </span><span id=Codehighlighter1_1155_1171_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1155_1171_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        f.delete(); <br><img id=Codehighlighter1_1178_1216_Open_Image onclick="this.style.display='none'; Codehighlighter1_1178_1216_Open_Text.style.display='none'; Codehighlighter1_1178_1216_Closed_Image.style.display='inline'; Codehighlighter1_1178_1216_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1178_1216_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1178_1216_Closed_Text.style.display='none'; Codehighlighter1_1178_1216_Open_Image.style.display='inline'; Codehighlighter1_1178_1216_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>}</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span id=Codehighlighter1_1178_1216_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1178_1216_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> IOException(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">未找到相x?/span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">执行Ҏ </span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000"> writeProperties(String filePath, String parameterName, String parameterValue) </span><span id=Codehighlighter1_1331_2293_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1331_2293_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000"> flag </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">; <br><img id=Codehighlighter1_1361_2214_Open_Image onclick="this.style.display='none'; Codehighlighter1_1361_2214_Open_Text.style.display='none'; Codehighlighter1_1361_2214_Closed_Image.style.display='inline'; Codehighlighter1_1361_2214_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top>    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id=Codehighlighter1_1361_2214_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1361_2214_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">取得文g所有内?nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #000000">String all </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CreatePro.readFile(filePath, parameterName); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        String result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">如果配置文g里存在parameterName </span><span style="COLOR: #008000"><br><img id=Codehighlighter1_1522_1984_Open_Image onclick="this.style.display='none'; Codehighlighter1_1522_1984_Open_Text.style.display='none'; Codehighlighter1_1522_1984_Closed_Image.style.display='inline'; Codehighlighter1_1522_1984_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (all.indexOf(parameterName) </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">) </span><span id=Codehighlighter1_1522_1984_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1522_1984_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">得到parameterName前的字节?nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> a</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">all.indexOf(parameterName); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">取得以前parameterName的?nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #000000">String old </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> readProperties(filePath, parameterName); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">得到parameterName值前的字节数 </span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> b</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(parameterName.length()</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">.length()); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">新的properties文g所有内容ؓQ旧的properties文g中内容parameterName+"="+新的parameterName?parameterValue)+旧的properties文g中parameterNameg后的内容 </span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #000000">result</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">all.substring(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,a)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">parameterName</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">parameterValue</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">all.substring(b</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">ToUnicode.convert(old).length(),all.length()); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">删除以前的properties文g </span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>       </span><span style="COLOR: #000000">CreatePro.deleteFile(filePath); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">存储新文件到以前位置 </span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #000000">String[] arrPath </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> filePath.split(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WEB-INF</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        String path </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> arrPath[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WEB-INF\\configs</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        CreatePro.saveFile(result, path, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">xf.properties</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        flag</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">; <br><img id=Codehighlighter1_2238_2276_Open_Image onclick="this.style.display='none'; Codehighlighter1_2238_2276_Open_Text.style.display='none'; Codehighlighter1_2238_2276_Closed_Image.style.display='inline'; Codehighlighter1_2238_2276_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2238_2276_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2238_2276_Closed_Text.style.display='none'; Codehighlighter1_2238_2276_Open_Image.style.display='inline'; Codehighlighter1_2238_2276_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>}</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (IOException e) </span><span id=Codehighlighter1_2238_2276_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_2238_2276_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        e.printStackTrace(); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        flag</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> flag; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">PropertiesҎ写properties文g </span><span style="COLOR: #008000"><br><img id=Codehighlighter1_2325_2965_Open_Image onclick="this.style.display='none'; Codehighlighter1_2325_2965_Open_Text.style.display='none'; Codehighlighter1_2325_2965_Closed_Image.style.display='inline'; Codehighlighter1_2325_2965_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2325_2965_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2325_2965_Closed_Text.style.display='none'; Codehighlighter1_2325_2965_Open_Image.style.display='inline'; Codehighlighter1_2325_2965_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span id=Codehighlighter1_2325_2965_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_2325_2965_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">Properties prop = new Properties(); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>try { <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>InputStream fis = new <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>FileInputStream(filePath); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>//从输入流中读取属性列表(键和元素对) prop.load(fis); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>//调用 Hashtable 的方?nbsp;put。?nbsp;getProperty Ҏ提供q行性?nbsp;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>//强制要求为属性的键和g用字W串。返回值是 Hashtable 调用 put 的结果?nbsp;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>OutputStream fos = new FileOutputStream(filePath); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>prop.setProperty(parameterName,parameterValue); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>//以适合使用 load Ҏ加蝲?nbsp;Properties 表中的格式, <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>//此Properties 表中的属性列表(键和元素对)写入输出?nbsp;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>prop.store(fos, "Update '" + parameterName + "' value \n"); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>falg = true; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>}catch (IOException e) { <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>e.printStackTrace(); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>System.err.println("Visit " + filePath + " for updating " + parameterName + " value error"); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>falg = false; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">读properties文gQPropertiesҎ </span><span style="COLOR: #008000"><br><img id=Codehighlighter1_3073_3316_Open_Image onclick="this.style.display='none'; Codehighlighter1_3073_3316_Open_Text.style.display='none'; Codehighlighter1_3073_3316_Closed_Image.style.display='inline'; Codehighlighter1_3073_3316_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_3073_3316_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_3073_3316_Closed_Text.style.display='none'; Codehighlighter1_3073_3316_Open_Image.style.display='inline'; Codehighlighter1_3073_3316_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> String readProperties(String filePath, String parameterName) </span><span id=Codehighlighter1_3073_3316_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_3073_3316_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    String value </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    Properties prop </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Properties(); <br><img id=Codehighlighter1_3137_3249_Open_Image onclick="this.style.display='none'; Codehighlighter1_3137_3249_Open_Text.style.display='none'; Codehighlighter1_3137_3249_Closed_Image.style.display='inline'; Codehighlighter1_3137_3249_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top>    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id=Codehighlighter1_3137_3249_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_3137_3249_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        InputStream fis </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> FileInputStream(filePath); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        prop.load(fis); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        value </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> prop.getProperty(parameterName); <br><img id=Codehighlighter1_3273_3298_Open_Image onclick="this.style.display='none'; Codehighlighter1_3273_3298_Open_Text.style.display='none'; Codehighlighter1_3273_3298_Closed_Image.style.display='inline'; Codehighlighter1_3273_3298_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top>    }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (IOException e) </span><span id=Codehighlighter1_3273_3298_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_3273_3298_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        e.printStackTrace(); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> value; <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"> </span></span></div> <img src ="http://www.aygfsteel.com/lengxinCEO/aggbug/133602.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-07-31 16:24 <a href="http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>native2ascii.exehttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133601.html 心?/dc:creator> 心?/author>Tue, 31 Jul 2007 08:23:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133601.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/133601.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133601.html#Feedback1http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133601.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/133601.html配置文g里的中文Q用JDK的native2ascii.exe可以~码Q特别好用,自己写了D代码实现如下: 
public class ToUnicode { 
    
public static String convert(String s) { 
       
//判断传入字符串是否ؓ中文Q取W一个字W判断其字节?nbsp;
        if(s.substring(0,1).getBytes().length==2){ 
            String unicode 
= ""
            char[] charAry = new char[s.length()]; 
            
for(int i=0; i<charAry.length; i++) { 
                charAry 
= (char)s.charAt(i); 
                unicode
+="\\u" + Integer.toString(charAry, 16); 
            } 
return unicode; 
        }
else
            
return s; 
        } 
    } 
}


]]>
验证邮箱、电话、QQ的正则表辑ּhttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133599.html 心?/dc:creator> 心?/author>Tue, 31 Jul 2007 08:22:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133599.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/133599.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133599.html#Feedback1http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133599.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/133599.htmlfunction isEmail(email){
    
var filter=/^\s*([A-Za-z0-9_-]+(\.\w+)*@(\w+\.)+\w{2,3})\s*$/;
    
if(!filter.test(email)){
        alert(
"email error!"); 
    }
else{
        alert(
"email ok!");
    }

}

电话Q?br>
function isTel(tel){
    
var filter=/^\s*[.0-9]{8,11}\s*$/;
    
if(!filter.test(tel) || tel<30000000 || tel>20000000000){
        alert(
"tel error!");
    }
else{
    alert(
"tel ok!");
    }

}

QQQ?br>
function isQQ(qq){
    
var filter=/^\s*[.0-9]{5,10}\s*$/;
    
if(!filter.test(qq)){
    alert(
"QQ error!");
    }
else{
    alert(
"QQ ok!");
    }

}



]]>
java得到当前旉http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133600.html 心?/dc:creator> 心?/author>Tue, 31 Jul 2007 08:22:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133600.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/133600.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133600.html#Feedback2http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133600.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/133600.html
SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd" + " " + "hh:mm:ss");
String datetime 
= tempDate.format(new java.util.Date());

2?br>
Calendar now=Calendar.getInstance();
String time
=now.get(Calendar.YEAR)+"-"+(now.get(Calendar.MONTH)+1)+"-"+now.get(Calendar.DAY_OF_MONTH)+" "+now.get(Calendar.HOUR_OF_DAY)+":"+now.get(Calendar.MINUTE)+":"+now.get(Calendar.SECOND);


]]>
数据库读出空g换行的显C?/title><link>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133598.html</link><dc:creator> 心?/dc:creator><author> 心?/author><pubDate>Tue, 31 Jul 2007 08:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133598.html</guid><wfw:comment>http://www.aygfsteel.com/lengxinCEO/comments/133598.html</wfw:comment><comments>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133598.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133598.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lengxinCEO/services/trackbacks/133598.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top> <span style="COLOR: #000000"><%!</span> <span style="COLOR: #000000"><br><img id=Codehighlighter1_34_296_Open_Image onclick="this.style.display='none'; Codehighlighter1_34_296_Open_Text.style.display='none'; Codehighlighter1_34_296_Closed_Image.style.display='inline'; Codehighlighter1_34_296_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top> <img id=Codehighlighter1_34_296_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_34_296_Closed_Text.style.display='none'; Codehighlighter1_34_296_Open_Image.style.display='inline'; Codehighlighter1_34_296_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top> </span><span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000"> String turn(String str)</span> <span id=Codehighlighter1_34_296_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"> </span><span id=Codehighlighter1_34_296_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_66_158_Open_Image onclick="this.style.display='none'; Codehighlighter1_66_158_Open_Text.style.display='none'; Codehighlighter1_66_158_Closed_Image.style.display='inline'; Codehighlighter1_66_158_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_66_158_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_66_158_Closed_Text.style.display='none'; Codehighlighter1_66_158_Open_Image.style.display='inline'; Codehighlighter1_66_158_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span> <span style="COLOR: #0000ff">while</span> <span style="COLOR: #000000">(str.indexOf(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">\n</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">!=-</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">)</span> <span id=Codehighlighter1_66_158_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"> </span><span id=Codehighlighter1_66_158_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        str </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> str.substring(</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">,str.indexOf(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">\n</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">))</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"><br></span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">str.substring(str.indexOf(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">\n</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span> </span><span style="COLOR: #000000"> <br><img id=Codehighlighter1_189_280_Open_Image onclick="this.style.display='none'; Codehighlighter1_189_280_Open_Text.style.display='none'; Codehighlighter1_189_280_Closed_Image.style.display='inline'; Codehighlighter1_189_280_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_189_280_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_189_280_Closed_Text.style.display='none'; Codehighlighter1_189_280_Open_Image.style.display='inline'; Codehighlighter1_189_280_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span> <span style="COLOR: #0000ff">while</span> <span style="COLOR: #000000">(str.indexOf(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">!=-</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">)</span> <span id=Codehighlighter1_189_280_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"> </span><span id=Codehighlighter1_189_280_Open_Text><span style="COLOR: #000000">{ <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        str </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> str.substring(</span> <span style="COLOR: #000000">0</span> <span style="COLOR: #000000">,str.indexOf(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">))</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">str.substring(str.indexOf(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">); <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span> </span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000"> str;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span> </span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top> </span><span style="COLOR: #000000">%></span> </div> 使用? <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000"><%=</span><span style="COLOR: #000000">turn(rs.getString(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">name</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))</span><span style="COLOR: #000000">%></span></div> <img src ="http://www.aygfsteel.com/lengxinCEO/aggbug/133598.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-07-31 16:21 <a href="http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js悬Qq告http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133597.html 心?/dc:creator> 心?/author>Tue, 31 Jul 2007 08:19:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133597.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/133597.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133597.html#Feedback0http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133597.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/133597.html < script type = " text/javascript " >
    var delta
= 0.15
    var collection;
    
function  floaters() {
        this.items
=  [];
    this.addItem
=   function (id,x,y,content){
            document.write(
' <DIV id='+id+'style="Z-INDEX: 10; POSITION:absolute;width:100px;height:100px;left:'+(typeof(x)=='string'?eval(x):x)+';top:'+(typeof(y)=='string'?eval(y):y)+'">'+content+'<br><a href=#onClick="javascript:hiddDiv(this);">关闭</a></DIV>');
        var newItem     =  {};
        newItem.object
= document.getElementById(id);        newItem.x =  x;
        newItem.y
=  y;
            this.items[this.items.length]
=  newItem;
    }
    this.play
=   function () {
        collection
=  this.items            timerShow = setInterval( ' play()',10);
    }
    }
    
function  play(){
        
for (var i = 0 ;i < collection.length;i ++ ){
        var followObj
= collection[i].object;
        var followObj_x
= (typeof(collection[i].x) == ' string'?eval(collection[i].x):collection[i].x);
        var followObj_y = (typeof(collection[i].y) == ' string'?eval(collection[i].y):collection[i].y);
             if (followObj.offsetLeft! = (document.body.scrollLeft + followObj_x)) {
        var dx
= (document.body.scrollLeft + followObj_x - followObj.offsetLeft) * delta;
        dx
= (dx > 0 ? 1 : - 1 ) * Math.ceil(Math.abs(dx));
            followObj.style.left
= followObj.offsetLeft + dx;
        }
            
if (followObj.offsetTop! = (document.body.scrollTop + followObj_y)) {
        var dy
= (document.body.scrollTop + followObj_y - followObj.offsetTop) * delta;
        dy
= (dy > 0 ? 1 : - 1 ) * Math.ceil(Math.abs(dy));
            followObj.style.top
= followObj.offsetTop + dy;
        }
        followObj.style.display
=   ' ';
    }
    }    
    var theFloaters
=   new  floaters();
    theFloaters.addItem(
' followDiv1','document.body.clientWidth-85',85,'<a href=photolink target=_blank><img src=photourl border=0 width=85></a>');
    theFloaters.addItem( ' followDiv2',0,85,'<a href=photolink target=_blank><img src=photourl border=0 width=85></a>');
    theFloaters.play();
    
function  hiddDiv(a){            window.clearInterval(timerShow)
    a.parentNode.style.display
= ' none';
    }
    
function  is800Dpi() // 800 * 600隐藏q告{     if (window.screen.height == 600 ){
        hiddDiv();    
    }
    }
    is800Dpi()
</ script > U色部分自行修改.
此乃本公司js高手村֓的原?勿{?抄用h明出?

]]>
jsp里用Ajax做的select的两U联,带数据库?/title><link>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133596.html</link><dc:creator> 心?/dc:creator><author> 心?/author><pubDate>Tue, 31 Jul 2007 08:18:00 GMT</pubDate><guid>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133596.html</guid><wfw:comment>http://www.aygfsteel.com/lengxinCEO/comments/133596.html</wfw:comment><comments>http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133596.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133596.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lengxinCEO/services/trackbacks/133596.html</trackback:ping><description><![CDATA[jsp里的两个selectQ?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000"><</span><span style="COLOR: #000000">select name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">lei</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> onchange</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">callServer(this.options[this.selectedIndex].text)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000"><%</span><span style="COLOR: #000000"><br>rs</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">stmt.executeQuery(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">select dfl from dhyfl</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(rs.next()){<br></span><span style="COLOR: #000000">%></span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">><%=</span><span style="COLOR: #000000">rs.getString(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dfl</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">%></</span><span style="COLOR: #000000">option</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000"><%</span><span style="COLOR: #000000"><br>}<br></span><span style="COLOR: #000000">%></span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">select</span><span style="COLOR: #000000">><</span><span style="COLOR: #000000">select name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">smallLei</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></</span><span style="COLOR: #000000">select</span><span style="COLOR: #000000">></span></div> <br>jsp底部的AjaxQ?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000"><</span><span style="COLOR: #000000">script language</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">javascript</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>var xmlHttp</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> {<br>   xmlHttp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> XMLHttpRequest();<br>} </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (trymicrosoft) {<br>     </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> {<br>       xmlHttp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ActiveXObject(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Msxml2.XMLHTTP</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>     } </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (othermicrosoft) {<br>       </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> {<br>         xmlHttp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ActiveXObject(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Microsoft.XMLHTTP</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>       } </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (failed) {<br>          <br>       }  <br>     }<br>   }<br>function callServer(smallLei){<br>    var url</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><%=request.getContextPath()%>/smallLei?lei=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> smallLei;<br>    xmlHttp.open(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">get</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,url,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">true</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>    xmlHttp.onreadystatechange </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">upsmlei;<br>    xmlHttp.send(</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">);<br>}<br>function upsmlei(){<br>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(xmlHttp.readyState </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">){<br>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(xmlHttp.status</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">){<br>            var smlei </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> document.all.smallLei;<br>            smlei.options.length</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>            var arr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">xmlHttp.responseText.split(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>            </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(var i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">arr.length</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">){<br>                smlei.add(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Option(arr[i],arr[i]));<br>            }<br>        }<br>    }<br>}<br></span><span style="COLOR: #000000"></</span><span style="COLOR: #000000">script</span><span style="COLOR: #000000">></span></div> <br>Ajax的servletQ?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> cqrx.ajax;<br><br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.IOException;<br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.io.PrintWriter;<br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.sql.ResultSet;<br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.sql.Statement;<br><br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.servlet.ServletException;<br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.servlet.http.HttpServlet;<br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.servlet.http.HttpServletRequest;<br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.servlet.http.HttpServletResponse;<br><br></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> cqrx.zgdsc.Conn;<br><br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> SmallLei </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> HttpServlet {<br><br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> SmallLei() {<br>        </span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">();<br>    }<br><br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> destroy() {<br>        </span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">.destroy();<br>    }<br><br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> doGet(HttpServletRequest request, HttpServletResponse response)<br>            </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> ServletException, IOException {<br><br>                response.setContentType(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/html;charset=gb2312</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>        PrintWriter out </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> response.getWriter();<br>             String lei </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> request.getParameter(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">lei</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>             lei </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> String(lei.getBytes(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ISO8859-1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">), </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">GB2312</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>             out.print(lei);<br>             Conn c </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Conn();<br>             Statement stmt </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br>             ResultSet rs </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br>             </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> {<br>             stmt </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> c.getConn().createStatement();<br>             String sql </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">select sfl from shyfl where dfl ='</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> lei </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>             rs </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> stmt.executeQuery(sql);<br>             String str </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br>             </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000"> (rs.next()) {<br>             str </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> str </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> rs.getString(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>             }<br>             out.print(str);<br>            <br>             } </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (Exception e) {<br>             System.out.print(e.getMessage());<br>        } </span><span style="COLOR: #0000ff">finally</span><span style="COLOR: #000000"> {<br>            out.flush();<br>            out.close();<br>        }<br>    }<br><br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> doPost(HttpServletRequest request, HttpServletResponse response)<br>            </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> ServletException, IOException {<br>        doGet(request, response);<br>    }<br><br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> init() </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> ServletException {<br>    }<br><br>}</span></div> <img src ="http://www.aygfsteel.com/lengxinCEO/aggbug/133596.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-07-31 16:18 <a href="http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133596.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java跌{语句http://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133595.html 心?/dc:creator> 心?/author>Tue, 31 Jul 2007 08:16:00 GMThttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133595.htmlhttp://www.aygfsteel.com/lengxinCEO/comments/133595.htmlhttp://www.aygfsteel.com/lengxinCEO/archive/2007/07/31/133595.html#Feedback4http://www.aygfsteel.com/lengxinCEO/comments/commentRss/133595.htmlhttp://www.aygfsteel.com/lengxinCEO/services/trackbacks/133595.htmlgetServletContext().getRequestDispatcher("/one.jsp").include(request, response); 2.
response.sendRedirect("/demo/one.jsp");
3.
out.println("<script>window.location=\"/demo/one.jsp\";</script>");


]]>
վ֩ģ壺 | | ˫| | ض| ̫| | ߺ| | | żҴ| ԫ| | | | ʡ| | ï| Ϫ| | ɽ| | | ԭ| | | Դ| | | | | ʯɽ| | ض| ij| ƺ| | | Ӵ| | |