??xml version="1.0" encoding="utf-8" standalone="yes"?>97精品国产97久久久久久久久久久久,亚洲自拍小视频,亚洲男人天堂2024http://www.aygfsteel.com/siyn/category/27109.html<a target="_blank"> http://www.siyn.org </a>zh-cnMon, 23 Nov 2009 17:16:24 GMTMon, 23 Nov 2009 17:16:24 GMT60META-INF文g夹中的MANIFEST.MF 有什么作用?http://www.aygfsteel.com/siyn/archive/2009/11/22/303249.htmlsiynsiynSun, 22 Nov 2009 10:48:00 GMThttp://www.aygfsteel.com/siyn/archive/2009/11/22/303249.htmlhttp://www.aygfsteel.com/siyn/comments/303249.htmlhttp://www.aygfsteel.com/siyn/archive/2009/11/22/303249.html#Feedback0http://www.aygfsteel.com/siyn/comments/commentRss/303249.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/303249.html MANIFEST中的配置信息共有下面几类Q?br /> 一. 一般属?br /> 1. Manifest-Version
用来定义manifest文g的版本,例如QManifest-Version: 1.0
2. Created-By
声明该文件的生成者,一般该属性是由jar命o行工L成的Q例如:Created-By: Apache Ant 1.5.1
3. Signature-Version
定义jar文g的签名版?br /> 4. Class-Path
应用E序或者类装蝲器用该值来构徏内部的类搜烦路径
? 应用E序相关属?br /> 1. Main-Class
定义jar文g的入口类Q该cdL一个可执行的类Q一旦定义了该属性即可通过 java -jar x.jar来运行该jar文g?br /> ? 程?Applet)相关属?br /> 1. Extendsion-List
该属性指定了程序需要的扩展信息列表Q列表中的每个名字对应以下的属?br /> 2. <extension>-Extension-Name
3. <extension>-Specification-Version
4. <extension>-Implementation-Version
5. <extension>-Implementation-Vendor-Id
5. <extension>-Implementation-URL
? 扩展标识属?br /> 1. Extension-Name
该属性定义了jar文g的标识,例如Extension-Name: Struts Framework
? 包扩展属?br /> 1. Implementation-Title 定义了扩展实现的标题
2. Implementation-Version 定义扩展实现的版?br /> 3. Implementation-Vendor 定义扩展实现的组l?br /> 4. Implementation-Vendor-Id 定义扩展实现的组l的标识
5. Implementation-URL : 定义该扩展包的下载地址(URL)
6. Specification-Title 定义扩展规范的标?br /> 7. Specification-Version 定义扩展规范的版?br /> 8. Specification-Vendor 声明了维护该规范的组l?br /> 9. Sealed 定义jar文g是否存Q值可以是true或者false
? {֐相关属?br /> {֐斚w的属性我们可以来参照JavaMail所提供的mail.jar中的一D?br /> Name: javax/mail/Address.class
Digest-Algorithms: SHA MD5
SHA-Digest: AjR7RqnN//cdYGouxbd06mSVfI4=
MD5-Digest: ZnTIQ2aQAtSNIOWXI1pQpw==
q段内容定义cȝ名的cd、计摘要的法名以及对应的摘要内容(使用BASE64Ҏq行~码)


siyn 2009-11-22 18:48 发表评论
]]>
[转]Java IO 包中的Decorator模式http://www.aygfsteel.com/siyn/archive/2009/02/20/255773.htmlsiynsiynFri, 20 Feb 2009 02:20:00 GMThttp://www.aygfsteel.com/siyn/archive/2009/02/20/255773.htmlhttp://www.aygfsteel.com/siyn/comments/255773.htmlhttp://www.aygfsteel.com/siyn/archive/2009/02/20/255773.html#Feedback0http://www.aygfsteel.com/siyn/comments/commentRss/255773.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/255773.html阅读全文

siyn 2009-02-20 10:20 发表评论
]]>
native2ascii.bathttp://www.aygfsteel.com/siyn/archive/2008/09/05/227228.htmlsiynsiynFri, 05 Sep 2008 07:08:00 GMThttp://www.aygfsteel.com/siyn/archive/2008/09/05/227228.htmlhttp://www.aygfsteel.com/siyn/comments/227228.htmlhttp://www.aygfsteel.com/siyn/archive/2008/09/05/227228.html#Feedback0http://www.aygfsteel.com/siyn/comments/commentRss/227228.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/227228.htmlnative2ascii_bat.bat
del package_zh_CN.properties
copy 
package.properties package_zh_CN.properties.utf8
native2ascii 
-encoding utf-8 package_zh_CN.properties.utf8 package_zh_CN.properties
del package_zh_CN.properties.utf8
del 
*.bak


siyn 2008-09-05 15:08 发表评论
]]>
[求救]一个spring2声明式事务管理的问题http://www.aygfsteel.com/siyn/archive/2008/07/24/217179.htmlsiynsiynThu, 24 Jul 2008 06:07:00 GMThttp://www.aygfsteel.com/siyn/archive/2008/07/24/217179.htmlhttp://www.aygfsteel.com/siyn/comments/217179.htmlhttp://www.aygfsteel.com/siyn/archive/2008/07/24/217179.html#Feedback1http://www.aygfsteel.com/siyn/comments/commentRss/217179.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/217179.html阅读全文

siyn 2008-07-24 14:07 发表评论
]]>
工具cL?-GreatNumber.javahttp://www.aygfsteel.com/siyn/archive/2008/07/22/216701.htmlsiynsiynTue, 22 Jul 2008 12:46:00 GMThttp://www.aygfsteel.com/siyn/archive/2008/07/22/216701.htmlhttp://www.aygfsteel.com/siyn/comments/216701.htmlhttp://www.aygfsteel.com/siyn/archive/2008/07/22/216701.html#Feedback4http://www.aygfsteel.com/siyn/comments/commentRss/216701.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/216701.html阅读全文

siyn 2008-07-22 20:46 发表评论
]]>
Thinking in Java 摘要http://www.aygfsteel.com/siyn/archive/2008/07/21/216286.htmlsiynsiynMon, 21 Jul 2008 01:53:00 GMThttp://www.aygfsteel.com/siyn/archive/2008/07/21/216286.htmlhttp://www.aygfsteel.com/siyn/comments/216286.htmlhttp://www.aygfsteel.com/siyn/archive/2008/07/21/216286.html#Feedback0http://www.aygfsteel.com/siyn/comments/commentRss/216286.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/216286.html
假如你能Cq算W优先次序表Q我从来C住)Q那么就可以写出?#8220;聪明”的代码。但再深入想一层,那也会代码的读者/l护者感到困扰。所以忘了那些次序吧Q在拿不准的时候加上括号即可?br />

siyn 2008-07-21 09:53 发表评论
]]>
工具cL?-PropertiesReader.javahttp://www.aygfsteel.com/siyn/archive/2008/07/12/214445.htmlsiynsiynSat, 12 Jul 2008 08:54:00 GMThttp://www.aygfsteel.com/siyn/archive/2008/07/12/214445.htmlhttp://www.aygfsteel.com/siyn/comments/214445.htmlhttp://www.aygfsteel.com/siyn/archive/2008/07/12/214445.html#Feedback5http://www.aygfsteel.com/siyn/comments/commentRss/214445.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/214445.html
package org.siyn.util;

import java.io.InputStream;
import java.util.Properties;

/**
 * <p>
 * 本类用提供一个线E同步的Ҏ,d资源文g中的配置信息
 * </p>
 * 
 * 
@author siyn
 * @date 2008-7-10
 
*/

public class PropertiesReader
{
    
private String     file;
    
    
private Properties properties;
    
    
/**
     * 构?nbsp;PropertysReader
     * 
@param {String} path 相对于classes的文件\?br />      */

    
public PropertiesReader(String path)
    
{
        
this.file = path;
        
this.properties = new Properties();
    }

    
    
/**
     * <p>
     * 本方法根据资源名获取资源内容
     * <p>
     * 
     * 
@param {String} key 资源文g内key
     * 
@param {Stirng} defaultValue 默认?br />      * 
     * @reaurn String key对应的资源内?br />      
*/

    
public synchronized String getProperty(String key, String defaultValue)
    
{
        
try
        
{
            InputStream in 
= this.getClass().getClassLoader()
                    .getResourceAsStream(
this.file);
            
            properties.load(in);
            
        }

        
catch (Exception ex1)
        
{
            System.out.println(
"没有扑ֈ资源文g:" + this.file);
        }

        
return properties.getProperty(key, defaultValue);
    }

    
    
/**
     * <p>
     * 本方法根据资源名获取资源内容
     * <p>
     * 
     * 
@param {String} key 资源文g内key
     * 
@param {Stirng} defaultValue 默认?br />      * @param {boolean} isnull 如果配置文gvalue为空Q是否用默认?br />      * 
     * @reaurn String key对应的资源内?br />      
*/

    
public synchronized String getProperty(String key, String defaultValue,boolean isnull)
    
{
        String value 
= null;
        value 
= getProperty(key,defaultValue);
        
if(isnull && (value == null || "".equals(value.trim()) )  )
            value 
= defaultValue;
        
return value;
    }

    
    
public static void main(String[] args)
    
{
        PropertiesReader preader 
= new PropertiesReader("log4j.properties");
        String rootLogger 
= preader.getProperty("aaa""defaul");
        System.out.println(rootLogger);
    }

}



siyn 2008-07-12 16:54 发表评论
]]>
自己整理的分工?/title><link>http://www.aygfsteel.com/siyn/archive/2008/07/10/213936.html</link><dc:creator>siyn</dc:creator><author>siyn</author><pubDate>Thu, 10 Jul 2008 05:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/siyn/archive/2008/07/10/213936.html</guid><wfw:comment>http://www.aygfsteel.com/siyn/comments/213936.html</wfw:comment><comments>http://www.aygfsteel.com/siyn/archive/2008/07/10/213936.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/siyn/comments/commentRss/213936.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/siyn/services/trackbacks/213936.html</trackback:ping><description><![CDATA[<p>今天自己整理了一个分工?刚做q有很多没完善的地方)Q把它放上来?br /> 因ؓ个h水^有限Q有不对的地方,望大家见谅。也希望大家提出你们宝贵的意见或?br /> <br /> <a href="/Files/siyn/siyn-pager.rar">源码siyn-pager.rar下蝲<br /> </a><br /> 下面主要介绍一下其使用Ҏ:</p> <p>1.把siyn-pager.jar攑ֈlib下,<br /> 2.把siyn-pager.tld攑ֈ/WEB-INF/?<br /> 3.修改web.xml文g,dtld配置 </p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff"><</span><span style="color: #800000">jsp-config</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />    </span><span style="color: #0000ff"><</span><span style="color: #800000">taglib</span><span style="color: #0000ff">></span><span style="color: #000000"> <br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">taglib-uri</span><span style="color: #0000ff">></span><span style="color: #000000">http://www.siyn.org/siyn-pager.tld</span><span style="color: #0000ff"></</span><span style="color: #800000">taglib-uri</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">taglib-location</span><span style="color: #0000ff">></span><span style="color: #000000">/WEB-INF/siyn-pager.tld</span><span style="color: #0000ff"></</span><span style="color: #800000">taglib-location</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />    </span><span style="color: #0000ff"></</span><span style="color: #800000">taglib</span><span style="color: #0000ff">></span><span style="color: #000000">  <br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff"></</span><span style="color: #800000">jsp-config</span><span style="color: #0000ff">></span></div> 4.action <br /> 4.1通过PageControlUtil.getPageControl(request)得到pageControlQ?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">PageControl pageControl </span><span style="color: #000000">=</span><span style="color: #000000"> PageControlUtil.getPageControl(request);</span></div> 4.2如果q没有获得总记录数Q通过调用service的方法获得总记录数<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">if</span><span style="color: #000000">(pageControl.getRowcount() </span><span style="color: #000000"><=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">)<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />            pageControl.setRowcount(service.getSize());</span></div> 4.3通过调用service的方法得到结果集<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">List list </span><span style="color: #000000">=</span><span style="color: #000000"> service.getData(pageControl);</span></div> 4.4结果集Q分|制beanQpageControlQ放入request<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">list</span><span style="color: #000000">"</span><span style="color: #000000">, list);<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        request.setAttribute(<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />                        org.siyn.common.web.struts.taglib.page.Constants.PAGE_CONTROL_MODEL,<br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />                        pageControl);</span></div> 4.5跌{面<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">return</span><span style="color: #000000"> mapping.findForward(</span><span style="color: #000000">"</span><span style="color: #000000">success</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div> 5.jsp面 <br /> 5.1导入标签?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000"><%</span><span style="color: #000000">@ taglib uri</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">http://www.siyn.org/siyn-page.tld</span><span style="color: #000000">"</span><span style="color: #000000"> prefix</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">page</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%></span></div> 5.2昄list数据<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000"><</span><span style="color: #000000">logic:iterate id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">data</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">list</span><span style="color: #000000">"</span><span style="color: #000000">  indexId</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">i</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />    </span><span style="color: #000000"><</span><span style="color: #000000">ul</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #000000"><</span><span style="color: #000000">li</span><span style="color: #000000">><</span><span style="color: #000000">bean:write name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">data</span><span style="color: #000000">"</span><span style="color: #000000"> property</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">x</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">/></</span><span style="color: #000000">li</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #000000"><</span><span style="color: #000000">li</span><span style="color: #000000">><</span><span style="color: #000000">bean:write name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">data</span><span style="color: #000000">"</span><span style="color: #000000"> property</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">xx</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">/></</span><span style="color: #000000">li</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #000000"><</span><span style="color: #000000">li</span><span style="color: #000000">><</span><span style="color: #000000">bean:write name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">data</span><span style="color: #000000">"</span><span style="color: #000000"> property</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">xxx</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">/></</span><span style="color: #000000">li</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />    </span><span style="color: #000000"></</span><span style="color: #000000">ul</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000"></</span><span style="color: #000000">logic:iterate</span><span style="color: #000000">></span></div> 5.3昄D控制<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; 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 alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #000000"><</span><span style="color: #000000">pager:navigator actionPath</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">xxx.do?Op=showlist</span><span style="color: #000000">"</span><span style="color: #000000"> shownum</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">3</span><span style="color: #000000">"</span><span style="color: #000000"> template</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">template.jsp</span><span style="color: #000000">"</span><span style="color: #000000">/></span><span style="color: #000000"> </span></div> q个navigator有三个属性,<br />     actionPath为必ȝQ请求数据的action地址<br />     shownum可选,D栏除了首,上页Q下,末页外,中间的数字页昄几个Q默认显C??br />     template  可选,为导航栏的模板\?相对于classes目录)Q自己可以修改以昄不同风格Q默认ؓorg/siyn/common/web/struts/taglib/page/pageControlTemplate.jsp<br /> <br /> <br /> <img src ="http://www.aygfsteel.com/siyn/aggbug/213936.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/siyn/" target="_blank">siyn</a> 2008-07-10 13:21 <a href="http://www.aygfsteel.com/siyn/archive/2008/07/10/213936.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用javap反编译class文ghttp://www.aygfsteel.com/siyn/archive/2008/05/07/198876.htmlsiynsiynWed, 07 May 2008 02:09:00 GMThttp://www.aygfsteel.com/siyn/archive/2008/05/07/198876.htmlhttp://www.aygfsteel.com/siyn/comments/198876.htmlhttp://www.aygfsteel.com/siyn/archive/2008/05/07/198876.html#Feedback0http://www.aygfsteel.com/siyn/comments/commentRss/198876.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/198876.htmlpublic class Test    // 从Objectcȝ?/span>
{
    
public static void main(String[] args)
    
{
        System.out.println(
new Test().toString());
    }

}

现在我们使用JDK带的反编译工具javap来反~译Test.classQ先执行下面的命令:
javap Test > Test.txt
打开Test.txt文g后,会看到如下的代码Q?br />
public class Test extends java.lang.Object{
    
public Test();
    
public static void main(java.lang.String[]);
}

再用下面的命o来得到bytecode代码Q?br />
javap -c Test >Test1.txt
打开Test1.txt后,会看到如下的代码Q?br />
public class Test extends java.lang.Object{
public Test();
  Code:
   
0:    aload_0
   
1:    invokespecial    #8//Method java/lang/Object."<init>":()V
   4:    return

public static void main(java.lang.String[]);
  Code:
   
0:    getstatic    #16//Field java/lang/System.out:Ljava/io/PrintStream;
   3:    new    #1//class Test
   6:    dup
   
7:    invokespecial    #22//Method "<init>":()V
   10:    invokevirtual    #23//Method java/lang/Object.toString:()Ljava/lang/String;
   13:    invokevirtual    #27//Method java/io/PrintStream.println:(Ljava/lang/String;)V
   16:    return
}


siyn 2008-05-07 10:09 发表评论
]]>
利用Tomcat建立多个Web Server的方?/title><link>http://www.aygfsteel.com/siyn/archive/2008/04/02/190294.html</link><dc:creator>siyn</dc:creator><author>siyn</author><pubDate>Wed, 02 Apr 2008 02:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/siyn/archive/2008/04/02/190294.html</guid><wfw:comment>http://www.aygfsteel.com/siyn/comments/190294.html</wfw:comment><comments>http://www.aygfsteel.com/siyn/archive/2008/04/02/190294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/siyn/comments/commentRss/190294.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/siyn/services/trackbacks/190294.html</trackback:ping><description><![CDATA[     摘要: 当你使用Tomcat作ؓWeb Server的时候,是不是会惌q样的一个问题:如何利用Tomcat建立多个Web应用 呢? <br>要实现这一Ҏ很简单的,也有多种Ҏ?以下说明使用%tomcat_home%代表Tomcat安装目录)?nbsp; <a href='http://www.aygfsteel.com/siyn/archive/2008/04/02/190294.html'>阅读全文</a><img src ="http://www.aygfsteel.com/siyn/aggbug/190294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/siyn/" target="_blank">siyn</a> 2008-04-02 10:41 <a href="http://www.aygfsteel.com/siyn/archive/2008/04/02/190294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA通过接口来实现CALLBACKhttp://www.aygfsteel.com/siyn/archive/2008/02/17/JAVA_CALLBACK.htmlsiynsiynSun, 17 Feb 2008 04:25:00 GMThttp://www.aygfsteel.com/siyn/archive/2008/02/17/JAVA_CALLBACK.htmlhttp://www.aygfsteel.com/siyn/comments/180253.htmlhttp://www.aygfsteel.com/siyn/archive/2008/02/17/JAVA_CALLBACK.html#Feedback0http://www.aygfsteel.com/siyn/comments/commentRss/180253.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/180253.html在网上看了好多关于java回调的文?自己ȝ了一?个h意见,仅供参?:

JAVA通过接口来实现CALLBACK?nbsp; 
  例:  
  1.class   A,class   B  
  2.class   A实现接口operate  
  3.class   B拥有一个参Cؓoperate接口cd的函数test(operate   o)  
  4.class   Aq行时调用class   B中test函数,以自w传入参?nbsp; 
  5.class   B已取得AQ就可以随时回调A所实现的operate接口中的Ҏ

=========================================================================

接口和回?~程一个常用的模式是回调模式,在这U模式中你可以指定当一个特定时间发生时回调对象上的Ҏ?/p>

==========================================================================

概括一句:回调函数实际上就是在调用某个函数Q通常是API函数Q时Q将自己的一个函敎ͼq个函数为回调函敎ͼ的地址作ؓ参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数Q这时你可以利用q个Z在回调函C处理消息或完成一定的操作?/p>

===========================================================================

借用John D. Mitchell的例子应该比较好理解


在MS-Windows或者X-Windowpȝ的事仉动模型中Q当某些事g发生的时候,开发h员已l熟悉通过传递函数指针来调用处理Ҏ。而在Java的面向对象的模型中,不能支持q种ҎQ因而看h好像排除了用这U比较舒服的机制Q但事实q如此?/p>

Java的接口提供了一U很好的机制来让我们辑ֈ和回调相同的效果。这个诀H就在于定一个简单的接口Q在接口之中定义一个我们希望调用的Ҏ?/p>

举个例子来说Q假讑ֽ一个事件发生的时候,我们惛_被通知Q那么我们定义一个接口:

public interface InterestingEvent
{

    
// This is just a regular method so it can return something or

    
// take arguments if you like.

    
public void interestingEvent ();

}

q就l我们一个控制实C该接口的所有类的对象的控制炏V因此,我们不需要关心Q何和自己相关的其它外界的cd信息。这U方法比C函数更好Q因为在C++风格的代码中Q需要指定一个数据域来保存对象指针,而Java中这U实现ƈ不需要?/p>

发出事g的类需要对象实现InterestingEvent接口Q然后调用接口中的interestingEvent ()Ҏ?/p>

public class EventNotifier
{

    
private InterestingEvent ie;

    
private boolean somethingHappened; 

    
public EventNotifier (InterestingEvent event)
    
{

        
// Save the event object for later use.

        ie 
= event; 

        
// Nothing to report yet.

        somethingHappened 
= false;

    }
 

    
//  

    
public void doWork ()
    
{

        
// Check the predicate, which is set elsewhere.

        
if (somethingHappened)
        
{

            
// Signal the even by invoking the interface's method.

            ie.interestingEvent ();

        }


        
//
    }
 

    
// 

}

在这个例子中Q我们用了somethingHappenedq个标志来跟t是否事件应该被Ȁ发。在许多事例中,被调用的Ҏ能够Ȁ发interestingEvent()Ҏ才是正确的?/p>

希望收到事g通知的代码必d现InterestingEvent接口Qƈ且正的传递自w的引用C仉知器?/p>

public class CallMe implements InterestingEvent
{

    
private EventNotifier en; 

    
public CallMe ()
    
{

        
// Create the event notifier and pass ourself to it.

        en 
= new EventNotifier (this);

    }
 

    
// Define the actual handler for the event.

    
public void interestingEvent ()
    
{

        
// Wow!  Something really interesting must have occurred!

        
// Do something

    }
 

    
//

}




siyn 2008-02-17 12:25 发表评论
]]>
response.setContentType()的String参数及对应类?/title><link>http://www.aygfsteel.com/siyn/archive/2008/01/22/177111.html</link><dc:creator>siyn</dc:creator><author>siyn</author><pubDate>Tue, 22 Jan 2008 10:09:00 GMT</pubDate><guid>http://www.aygfsteel.com/siyn/archive/2008/01/22/177111.html</guid><wfw:comment>http://www.aygfsteel.com/siyn/comments/177111.html</wfw:comment><comments>http://www.aygfsteel.com/siyn/archive/2008/01/22/177111.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/siyn/comments/commentRss/177111.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/siyn/services/trackbacks/177111.html</trackback:ping><description><![CDATA[<p>response.setContentType()的String参数及对应类?</p> <p><option   value="image/bmp">BMP</option>   <br /> <option   value="image/gif">GIF</option>   <br /> <option   value="image/jpeg">JPEG</option>   <br /> <option   value="image/tiff">TIFF</option>   <br /> <option   value="image/x-dcx">DCX</option>   <br /> <option   value="image/x-pcx">PCX</option>   <br /> <option   value="text/html">HTML</option>   <br /> <option   value="text/plain">TXT</option>   <br /> <option   value="text/xml">XML</option>   <br /> <option   value="application/afp">AFP</option>   <br /> <option   value="application/pdf">PDF</option>   <br /> <option   value="application/rtf">RTF</option>   <br /> <option   value="application/msword">MSWORD</option>   <br /> <option   value="application/vnd.ms-excel">MSEXCEL</option>   <br /> <option   value="application/vnd.ms-powerpoint">MSPOWERPOINT</option>   <br /> <option   value="application/wordperfect5.1">WORDPERFECT</option>   <br /> <option   value="application/vnd.lotus-wordpro">WORDPRO</option>   <br /> <option   value="application/vnd.visio">VISIO</option>   <br /> <option   value="application/vnd.framemaker">FRAMEMAKER</option>   <br /> <option   value="application/vnd.lotus-1-2-3">LOTUS123</option></p> <img src ="http://www.aygfsteel.com/siyn/aggbug/177111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/siyn/" target="_blank">siyn</a> 2008-01-22 18:09 <a href="http://www.aygfsteel.com/siyn/archive/2008/01/22/177111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用ServletContextListener实现定时dhttp://www.aygfsteel.com/siyn/archive/2008/01/08/173552.htmlsiynsiynTue, 08 Jan 2008 02:28:00 GMThttp://www.aygfsteel.com/siyn/archive/2008/01/08/173552.htmlhttp://www.aygfsteel.com/siyn/comments/173552.htmlhttp://www.aygfsteel.com/siyn/archive/2008/01/08/173552.html#Feedback7http://www.aygfsteel.com/siyn/comments/commentRss/173552.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/173552.html
package com.ed.cnc.servletListener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.ed.cnc.city.StatisticsTask;

/**
 * l计ContextListener
 * 
@author westd
 *
 
*/

/**
 * 
@author westd
 *
 
*/

public class StatisticsContextListener implements ServletContextListener
{

    
private java.util.Timer timer = null;
    
    
    
/**
     * q个Ҏ在Web应用服务做好接受h的时候被调用?br />      * 
     * 
@see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
     
*/

    
public void contextInitialized(ServletContextEvent event) 
    
{
        timer 
= new java.util.Timer(true);
        event.getServletContext().log(
"定时器已启动"); 
        timer.schedule(
new StatisticsTask(event.getServletContext()), 060*60*1000);//每隔1时
        event.getServletContext().log("已经dd调度?/span>");
    }

    
    
    
/**
     * q个Ҏ在Web应用服务被移除,没有能力再接受请求的时候被调用?br />      * 
     * 
@see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
     
*/

    
public void contextDestroyed(ServletContextEvent event)
    
{
        timer.cancel();
        event.getServletContext().log(
"定时器销?/span>");
    }


}


一个承于TimerTask的一个类QStatisticsTask.java
package com.ed.cnc.city;

import java.util.Calendar;
import java.util.TimerTask;

import javax.servlet.ServletContext;


/**
 * l计d
 * 
@author westd
 *
 
*/

public class StatisticsTask extends TimerTask
{

    
private static final int STATISTICS_SCHEDULE_HOUR = 0;
    
private static boolean isRunning = false;
    
private ServletContext context = null;

    
public StatisticsTask(ServletContext context)
    
{
        
this.context = context;
    }

    
    @Override
    
public void run()
    
{
        Calendar cal 
= Calendar.getInstance(); 
        
//System.out.println(isRunning);
        if (!isRunning) 
        

            
if (STATISTICS_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY)) //查看是否为凌?/span>
            
                isRunning 
= true
                context.log(
"开始执行指定Q?/span>");
                
                
//TODO d自定义的详细d
                executeTask();
                
                
//指定d执行l束
                isRunning = false;
                context.log(
"指定d执行l束"); 
            }
 
        }
 
        
else 
        
{
            context.log(
"上一ơQ务执行还未结?/span>");
        }

    
    }


    
/**
     * 执行d
     
*/

    
public void executeTask()
    
{
        System.out.println(
"d1");
        System.out.println(
"d2");
    }

}


web.xml中添加如下代码:
<listener>
        
<listener-class>com.ed.cnc.servletListener.StatisticsContextListener</listener-class>
</listener>



siyn 2008-01-08 10:28 发表评论
]]>
java数据cdhttp://www.aygfsteel.com/siyn/archive/2007/10/17/153563.htmlsiynsiynWed, 17 Oct 2007 06:20:00 GMThttp://www.aygfsteel.com/siyn/archive/2007/10/17/153563.htmlhttp://www.aygfsteel.com/siyn/comments/153563.htmlhttp://www.aygfsteel.com/siyn/archive/2007/10/17/153563.html#Feedback1http://www.aygfsteel.com/siyn/comments/commentRss/153563.htmlhttp://www.aygfsteel.com/siyn/services/trackbacks/153563.html
byteQ字节型Q? 1 -128?27
shortQ短整型Q? 2 -32768?2767
intQ整型) 4 -2147483648?147483647
longQ长整型Q? 8 -9223372036854775808 ~ 9223372036854775807
floatQQ点型Q? 4 -3.4E38?.4E38
doubleQ双_ֺ型) 8 -1.7E308?.7E308
charQ字W型Q? 2 从字W型对应的整型数来划分,其表C围是0?5535
booleanQ布型Q? 1 true或false

  阅读全文

siyn 2007-10-17 14:20 发表评论
]]>
վ֩ģ壺 ̨| ϴ| ϸ| ¹Ȫ| | | | Ӷ| | | | ˹| Ž| | ϰ| ɽ| | | | | ̩| | | ʡ| | | ƽ| Ͼ| | Ӷ| | | | Ϊ| | ½| | Ժ| | | |