﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-走自己的路-随笔分类-JSP, Servlet and JSTL </title><link>http://www.blogjava.net/ldd600/category/32137.html</link><description>路漫漫其修远兮，吾将上下而求索</description><language>zh-cn</language><lastBuildDate>Thu, 06 Aug 2009 02:00:25 GMT</lastBuildDate><pubDate>Thu, 06 Aug 2009 02:00:25 GMT</pubDate><ttl>60</ttl><item><title>是用ServletContextListenser还是Servlet初始化资源</title><link>http://www.blogjava.net/ldd600/archive/2009/08/05/289929.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Wed, 05 Aug 2009 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2009/08/05/289929.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/289929.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2009/08/05/289929.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/289929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/289929.html</trackback:ping><description><![CDATA[<p>现在我们项目几乎都是在servlet的init方法中初始化资源，在destroy方法里释放资源。servlet的load on startup是有先后顺序，但是没有依赖关系，如果某个servlet初始化出现异常，不会终止剩下的servlet的初始化，这样有时会使得web application正常启动，但是却部分可用，整个系统处于不稳定状态。这应该是一种不推荐的做法。<br />
而servlet context listener是在所有servlet初始化之前被调用，同样在所有servlet destroy之前被调用。更关键的是，如果在<font style="background-color: #d8ffd5">contextInitialized</font>抛出runtime异常，剩余的listener和所有servlet都不会初始化，解决了web application非正常启动的问题。<br />
<br />
以下情况可以使用servlet来初始化资源：</p>
&nbsp;&nbsp;&nbsp;&nbsp; 整个系统只有一个servlet会在系统启动时初始化资源<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Servlet初始化的资源是独立的，不会影响整个系统的正常运行<br />
&nbsp;&nbsp;&nbsp;&nbsp; Servlet初始化失败后，整个系统处于不可被访问状态<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Container的版本比较旧，不支持servlet2.3或者更新的版本 
<img src ="http://www.blogjava.net/ldd600/aggbug/289929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2009-08-05 12:52 <a href="http://www.blogjava.net/ldd600/archive/2009/08/05/289929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通用RPC简易框架</title><link>http://www.blogjava.net/ldd600/archive/2009/04/04/263927.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Sat, 04 Apr 2009 12:57:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2009/04/04/263927.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/263927.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2009/04/04/263927.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/263927.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/263927.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 我们经常需要进行远程业务方法的调用，并对返回的结果进行处理。我们规范化了调用流程，可扩展支持多种协议：HTTP, JMS, RMI, FTP等，实现了序列化和反序列化，负载均衡，异步调用等模块。默认给出HTTP实现。&nbsp;&nbsp;<a href='http://www.blogjava.net/ldd600/archive/2009/04/04/263927.html'>阅读全文</a><img src ="http://www.blogjava.net/ldd600/aggbug/263927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2009-04-04 20:57 <a href="http://www.blogjava.net/ldd600/archive/2009/04/04/263927.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>