Insert a short description about yourself here, and possibly a small photo, or comment this line out.

Calendar

August 2008
M T W T F S S
« Jul    
 123
45678910
11121314151617
18192021222324
25262728293031

July 19, 2008

基础知识一 ShutdownHook挂钩

Filed under: Basic skills, Java — admin @ 5:29 pm

在其代码中有一个比较重要的基本知识-挂钩,而关闭挂钩是一个已初始化但尚未启动的线程。虚拟机开始启用其关闭序列时,它会以某种未指定的顺序启动所有已注册的关闭挂钩,并让它们同时运行。运行完所有的挂钩后,如果已启用退出终结,那么虚拟机接着会运行所有未调用的终结方法。最后,虚拟机会暂停。注意,关闭序列期间会继续运行守护线程,如果通过调用 exit 方法来发起关闭序列,那么也会继续运行非守护线程。

虚拟机会为了响应以下两类事件而关闭:

程序正常退出,这发生在最后的非守护线程退出时,或者在调用 exit(等同于System.exit)方法时。或者,
为响应用户中断而终止 虚拟机,如键入 ^C;或发生系统事件,比如用户注销或系统关闭。 
常用的场合:关闭数据库链接,或者进行一些资源的清理,不过在使用该方式时,必须小心,该线程须安全,而且执行时间越短越好。

Runtime.getRuntime().addShutdownHook(Thread thread);

例如一下代码:
public class TestShutdownHook extends Thread {

    /**
     * 实现程序退出前的清理工作
     */
    public void run() {
        System.out.println(”This is ShutdownHook”);
    }

    public static void main(String[] args) {
        TestShutdownHook m = new TestShutdownHook();
        Runtime.getRuntime().addShutdownHook(m);
        try {
   Thread.sleep(10000);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
        System.exit(0);
    }
}

在tomcat的org.apache.catalina.startup.Catalina中就有:

 try {
            // Register shutdown hook
            if (useShutdownHook) {
                if (shutdownHook == null) {
                    shutdownHook = new CatalinaShutdownHook();
                }
                Runtime.getRuntime().addShutdownHook(shutdownHook);
            }
        } catch (Throwable t) {
            // This will fail on JDK 1.2. Ignoring, as Tomcat can run
            // fine without the shutdown hook.
        }

tomcat使用该功能主要是处理在tomcat启动时,如果用户中途取消服务器启动时加载的关闭挂钩。

• • •

July 14, 2008

Servlet生命周期

Filed under: Basic skills, Java — admin @ 7:56 am

装载Servlet。这项操作一般是动态执行的。然而,Server通常会提供一个管理的选项,用于在Server启动时强制装载和初始化特定的Servlet。  Server创建一个Servlet的实例

  Server调用Servlet的init()方法

  一个客户端的请求到达Server

  Server创建一个请求对象

  Server创建一个响应对象

  Server激活Servlet的service()方法,传递请求和响应对象作为参数

  service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息

  service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法

  对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。一般Servlet只初始化一次 ,当Server不再需要Servlet时(一般当Server关闭时),Server调用Servlet的Destroy()方法。

• • •

July 13, 2008

艾青诗选

Filed under: 历史人物 — admin @ 10:45 pm

 在繁华的都市里,今天能够静下心来读艾青的诗,确实是一种享受。

大堰河——我的保姆

大堰河,是我的保姆。
她的名字就是生她的村庄的名字,
她是童养媳,
大堰河,是我的保姆。 (more…)

• • •

July 12, 2008

序列号 注册码

Filed under: Wordpress qa — admin @ 11:16 am

editplus v2  Corner.yeah.net E6843-68680
editplus v3  crsky 7879E-5BF58-7DR23-DAOB2-7DR30

• • •

July 6, 2008

讨论:我现在能创业么?

Filed under: 评论 — admin @ 8:40 pm

1.火舞者:有意义的事就是好好活 创业在大多数时候来说是应该厚积薄发的,或者说要水到渠成,顺势而为比较好。因为这里面可能出现的问题,以及精神和资金压力都会好大,绝对不是简单的几个人找个场地就行的。三思而后行的同时还要把所有问题都想到最坏,直到你认为自己能输得起,那你就做吧,如果这个创业的结果一但是失败的,而且这个失败可能是你所承担不起的,那就最好不要尝试。
   (more…)

• • •

June 16, 2008

货币 四舍五入

Filed under: Web技术 — admin @ 4:37 pm

今天写了一个精简的四舍五入方法,这种方法一般用于货币,以js为例:

 function formatCurrency(s){
     var j = Math.round(s * 100);
  return parseInt(j) / 100.00;
    }

• • •

June 10, 2008

Java EE常识[转载:http://wiki.ccw.com.cn/Java_EE]

Filed under: Basic skills, Java — admin @ 4:37 pm

J2EE,Java2平台企业版(Java 2 Platform Enterprise Edition), 是Sun公司为企业级应用推出的标准平台(Platform)。Java平台共分为三个主要版本Java EE、Java SE和Java ME。

Sun公司在1998年发表JDK1.2版本的时候, 使用了新名称Java 2 Platform,即“Java2平台”,修改后的JDK称为Java 2 Platform Software Develping Kit,即J2SDK。并分为标准版(Standard Edition,J2SE), 企业版(Enterprise Edition,J2EE),微型版(MicroEdition,J2ME)。J2EE便由此诞生。 (more…)

• • •

HTTP协议常识

Filed under: Web技术 — admin @ 3:43 pm

HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。 (more…)

• • •

May 16, 2008

今天捐款了

Filed under: 流水账 — admin @ 9:50 am

     一直在犹豫是否捐款,本来是想为灾区人民尽点力所能及的事情,可是担心捐出去的钱根本就没有办法到灾区,因为之前就有很多这样的例子,记得小时候我们那里发生旱灾,水稻基本上是颗粒无收,国家为我们每户都发了大米,并且是免费。可是到了乡里,却是比平时市场上的大米的价格还要贵。
         今天早上犹豫再三还是捐了点钱,就当是为了自己的心能够安静下来吧。

• • •

May 14, 2008

转载:JavaScript获取屏幕、浏览器、网页高度宽度

Filed under: Web技术 — admin @ 8:42 pm

来自于:http://www.code-life.com/read.php?42
近年来很多网站流行在登录时喜欢弹出一个层让用户登录并用一个半透明的层作为背景,不过很多小的网站可能没有考虑到的一个问题:当网页不是最大化之时弹出一个层,那么当网页最大化就会出现很难看的局面,背景层不能覆盖整个网页了,可以通过window.onresize=function(){ }方式解决这个问题(据说ie与firefox处理方式不一致,暂时不理会了),有关于浏览器的高宽等常见函数列如下: (more…)

• • •
Next Page »