2005年11月13日 #
祝大家节日快乐! 结束了9月繁忙的工作.回家休息了很长时间没上来更新. 生活比较琐碎 .
TrackBack:http://www.blogjava.net/goingmm/archive/2006/06/23/54595.html
朋友们 五一快乐 出游的朋友注意安全 呆家里的朋友不要光顾着睡觉平时很少有机会看太阳哦我呢?回家 事实基本上已经不允许了出游 一直想去新加坡看看老朋友发现新加坡的单程机票200多[广州白云机场→新加坡]可惜等我知道的时候三个月内的都预定空了再等下一次大假吧忙碌了几个月我也说不清楚做了些啥但总算还是有一些小收获有些烦人的问题... 现在终于有时间好好补补了正好有时间总结 总结下一次上来 一定把这三个月忙碌的过程和结果与大伙分享Goingmm 2006-05-01
忙了一个星期,事情总算平稳的起步了该睡觉了睡醒了再说...2006-03-19 Goingmm
这些天杂乱的事情太多要呆到20:00才回家不是给公司加班 可能是为自己奇异的想法昨天晚上在王府井外面听到一首歌当时只记得一句歌词:“想起我和你牵手的画面”早上过来,歌词几乎都忘了尝试搜索,居然找到了我不知道[想起]是新歌还是老歌感觉有点怀旧,又有点抄袭曲调能让我想起十年前[蔡琴她们那些时代]部分节奏有点抄袭“神话主题曲”推荐给大伙 听听看吧曲名:想起 歌手:韩雪 回到相约的地点 在这我对你不了解 以为爱得深就不怕伤悲 偏偏爱人心成雪 我独自走在寂寞的长街 回忆一幕幕重演 我告诉自己勇敢去面对 就算心碎也完美 想起我和你牵手的画面 泪水化成云霞满天 如果我和你还能再见面 就让情意旧梦能圆 我们在不同的世界 想着每一次的误会 好像再一次依偎你身边 偏偏你有千里远 我独自走在寂寞的长街 回忆一幕幕重演 我告诉自己勇敢去面对 就算心碎也完美 想起我和你牵手的画面 泪水化成云霞满天 如果我和你还能再见面 就让情意旧梦能圆 Goingmm 2006-03-10
请看:http://www.igoogle8.com/igoogle8/make/?f=1&s=Goingmm&t=0很奇怪吧?google怎么变成连版权都“个性化”的主页了。而且用起来和google感觉还一模一样再看:http://www.igoogle8.com/原来:http://www.igoogle8.com/ 做了手脚接着:主页上没有作者或者运营商的任何信息,于是打开google查询关键字“igoogle8”http://www.google.com/search?hl=zh-CN&q=igoogle8&btnG=Google+%E6%90%9C%E7%B4%A2&lr=lang_zh-CN%7Clang_zh-TW哇!69 项符合igoogle8的查询结果 大致看了一下Google狗年悄悄发布新品“爱狗狗吧”,引来网民蜂拥测试- 雅虎论坛iGoogle8爱狗狗吧/ 一秒钟将Google据为己有 - 4:12iGoogle8爱狗狗吧,将Google据为己有/ 向好友推荐iGoogle8爱狗狗吧iGoogle8爱狗狗吧/ 超级女声·狗狗爬行榜。。。。。。。。。。。。。。。。。。。。。。。。。后来:问了问GoogleChina 的朋友。他们也不知道这玩意作者弄了这么一个东西,但是又不做宣传。居然还有人猜测是Google中国出的产品其他不说,就看主页下面的[向好友推荐igoogle8 和 设为主页] 这也不可能是google所为啊于是:查了查igoogle8的服务环境 OS Server Last changed IP address Netblock Owner FreeBSD Apache 8-Mar-2006 59.151.5.206 Abitcool(China) Inc. 1 forex.com.cn 3 10 3 Windows Server 2003 Microsoft-IIS/6.0 2 e4u.cn - 41 41 Linux Apache-Coyote/1.1 3 qunar.com - - - Linux Apache 4 www.zhanzuo.com - 25 25 FreeBSD Apache/1.3.34 (Unix) PHP/4.4.2 5 www.igoogle8.com - - - FreeBSD Apache结论:这家伙 不可能和Google有什么关系Goingmm 2006-03-08
Blog左边新加了一个LOGO 点击 可以立刻和我的QQ建立临时通话通道 旁边还有一个小企鹅图标。如果亮着就表示在线 灰着就表示隐身 呵呵! 如果我的QQ不在线 你也可以留言给我。 我测试过,能收到历史消息 空了 多做几个LOGO轮换着用 Goingmm 2006-03-04
Key Words: Sun Microsystems Java SE 6 Beta
历时一年时间,Sun 终于推出了Java SE 6 Beta。这是Java SE 6(Mustang)的第一个完整版本。其中的亮点包括,web services,新的安全机制和管理,改进的desktop用户体验,File类添加了一些检查磁盘空间的API。Splash Screen 等等 当然还有 Fixed and Known Bugs Downloading url:http://java.sun.com/javase/6/download.jspGoingmm 2006-02-16 from:csdn Goingmm 2006-02-17 Modified
新闻:2006年2月14日,Google中国黑板报[www.googlechinablog.com] 正式开通 定位:普通Google员工与网民分享交流产品、技术和文化的窗口 布局:左边[2/3]用Blog做噱头[ 吸引眼球] + 右边[1/3][ 推销自己的产品链接Google忠实的网络推手] 用意:眼看中国这么大的市场,Google也急于在中国本地化,用心良苦 花絮:图片“Google 中国工程师在工作”有一个胖娃的背影,有点像老“XU” 视角:直白的商业运作模式,不一定能拿到Google员工直白的心声。喜欢关注Google的朋友,可以期待和观望 企业比较低廉的一种公关模式。期待交流的想法是无庸置疑的,值得表扬Goingmm 2006-02-15 注意看红色圈住的人是谁? 老XU 啊!~~ 点图片有超链Goingmm 2006-02-17 修改
Key wordsName: Apache Tomcat Version 5.5.9 Release: v 1.25 2005/01/19 20:30:26JDK: 1.4.2 OR 5.0背景: JDK5.0 + Tomcat 5.5.9 去年,因为尝鲜一直使用JDK5.0。使用这个搭配也从来没有遇到问题
JDK1.4.2 + Tomcat 5.5.9 今年拿到新电脑后,现在的开发环境很依赖环境变量的设置。出于谨慎我还是选择了使用JDK1.4.2 昨天晚上无聊的装上Tomcat 5.5.9玩 1)JRE选择JDK1.4.2 安装完成 2)用Monitor Tomcat 启动Tomcat 3)打开http://127.0.0.1:8080/ 4)找不到服务器 5)感觉+漫骂... 真他NND的奇怪了 疑惑什么地方弄错了
改装经历: 咱,不能丢脸的被这只猫猫忽悠吧! 于是,很不耐烦的找出这个版本的RELEASE-NOTES(坏习惯-不太喜欢看说明)
呵呵... 这里解释的很清楚 Ø Tomcat 5.5 只默认支持J2SE 5.0 and later Ø Tomcat 5.5 在编译JSP上做出的改变 但是,TNND后面一段关于在JDK1.4上配置运行的描述,实在是太迷糊人了[根本没有说清楚] 根据他表达的意思我试过很多方法 Ø 看来想要“不妥协”的使用,唯有“改装”。有了改装的初步想法 Ø 在我的机器里面找看有没有现成的jar包 发现了几个相似的包 测试不行 Ø 到官方网站[http://tomcat.apache.org/download-55.cgi]把所有的包都down下来看 Ø 最后发现一个像摸像样的包[apache-tomcat-5.5.15-compat]但是和我现在的Tomcat版本不一样 Ø 抱着试一下的心态。解压缩出来两个文件夹 ① bin ②common 用他们覆盖安装目录下的文件夹 Ø 用Monitor Tomcat 启动Tomcat Ø 打开http://127.0.0.1:8080/ 看到了熟悉的猫猫 Ø Bingo,记录下这次“改装”的经历
经验总结: 其实,这只是我们平时遇到的很小很小的问题(菜鸟问题) 问:为什么要总结呢?为什么还用小题大作写成blog呢? 结:使用任何产品,用心看看说明文档 是非常有必要的。尊重产品工作者的劳动, 自己也能少很多麻烦 顺便... 链接其他: 关于Tomcat各个版本的运行速度。emu 哥哥在他最近的blog中给出了测试结果 个人感觉 Ø Tomcat 越新的版本使用越方便[基本上不需要单独配置] Ø Tomcat 不为我们熟悉的功能也越来越多[平时没用到的也没去关注过] Ø Tomcat 运行速度的测试结果,我还是比较疑惑 Goingmm 2006-02-12
Ø 280公里意味着什么?
高速公路2.5小时车程,火车3.5小时行程
Ø 280公里发生了什么?
两次/年 片刻停泊 留下的唯有牵挂
Ø 280公里给了我什么?
时间换来单薄生存 享受的唯有牵挂
初八是个好日子 书上说:“七不出门,八不归家”
又要出发了 离家的感觉是牵挂
爸妈牵挂280公里外的我 平平安安 有获
我牵挂280公里外的父母 身体健康 发财
南充 [ 一个“变化”很大的城市 ]
说“浮华”不敢 我不敢靠“浅尝”的数字来诽谤
说“作践”不愿 我不愿靠“批露”的声音来出名
说“独特”不能 我不能靠“断言”的措辞来浮夸
说“自清”不想 我不想靠“忘根”的情愫开解脱
原本以为,可以把这里的“精彩”和大家分享
调皮的光标‘怪异’的摆下这个‘怪异’的标题
我能想到的,只有明天280公里远去的牵挂
送给
每一个即将离开父母去找寻梦想的朋友
或许,你们的牵挂是2800公里 28000公里…
临走时,别忘了
用心摸摸爸爸的皱纹
悄悄数数妈妈的白发
Goingmm Subscription 2006-2-5 凌晨
凌晨,看到一个挺有趣的讨论[JavaEye]。2006年,Java界的主题将是什么?
两年的开发经历,对新技术的追逐与否我不敢妄自评论。茶余饭后无聊的思考基础显然重要,当新事物能为我所用的时候,能快速应对,足以不可否认,新技术的出现,往往能成就一批热心追逐的人[只是少部分,大部分属于随波逐流的困惑]
2000年 应用服务器年 这一年,Java应用服务器的需求成为各大公司的最大利益。谁不希望用“业界标准”来标榜自己呢!■ BEA公司的繁荣从此开始
2001年 EJB年 这一年,EJB2.0发布,整个Java业界为之震动,“牵强”的分布式架构,让EJB成了魔术词汇■ EJB成了高价企业软件的“文凭”。懂不懂EJB成为能不能拿到高薪的关键
2002年 设计模式年 这一年,大家开始发现EJB真TNND难用,开始发现Java开发需要遵循某种规则,设计模式开始流行, J2EE核心模式也应运而生■ jdon网站借着设计模式的热点一举成名
2003年 Hibernate年 这一年,大家开始否定EJB,开始采用O/R Mapping,Hibernate迅速流行■ JavaEye由于颇有预见性的推广普及Hibernate而成为国内Java社区的亮点
2004年 Spring年 这一年,EJB3规范和JDO2规范忙着打架,但是真正的主角是Spring,Spring携着IoC和AOP迅速占领J2EE的眼球.■ 《Without EJB》 成为大家背弃EJB2.0的宣言书
2005年 AJAX年 这一年,大部分时间大家都在反思,或者是学习合适的应用程序架构。伴随着Google的Gmail, Google Maps等一系列AJAX应用,一个古老的XMLHTTP组件咸鱼翻身。这个冬天终于找到了主题-AJAX■ 骄傲的程序员回头关注“用户体验”
2006年 XX年? 这一年,除了成名已久的EJB3.0值得期待,我们还能看到出人意料的新名词吗? 这一年,将会是更深刻的反思年吗?[用已有的技术集合更完美的“用户体验”] 这一年,我们将何去何从,我也说不清楚 你呢? Goingmm 2006-02-03
2006年1月25日早上9点起床 收拾了几件换洗的衣服准备回家 回家的心情是急切的,关上门 刚走出几步 又摸出钥匙串 回去扫视着整个房间 是不舍? 是不情愿? 是不放心? 好像感觉有什么东西落下了 似乎惦念着还有什么事没有做完 5分钟后没有任何发现 倔强的离开了 在离开的的士上还在猜疑 永远离别一个城市也不曾有过的感觉 大年三十 陪爸爸妈妈看完春节晚会 邀集一伙朋友准备出去“通宵” 因为今年是本命年 大伙都建议上庙去求个 [ 2006 平安 ] 坐车+走路 1小时就到了 见了 如来佛 观音菩萨 十八罗汉 财神爷 ... 祈祷的心是诚实的 面对恩赐,永不满足的心 感觉太乱 大年初二 一伙朋友坐船出去 游嘉陵江 目的地是 50多年前“毛主席的共产主义作品” -- 农村合作社 看着 破陋的 两排男女宿舍+两间夫妻房 听着 89岁老人淳朴的歌声“社会主义好” 喝着 所谓的“大锅饭”(一大锅红薯稀饭) 50 年前的“共产主义” 500年后的“共产主义” 希望 至少能像庙里的菩萨 给我一点虔诚的勇气 心突然... Goingmm 2006-01-30
BLOGJAVA 服务器居然是这个配置
问:3G是目前最热门的话题,到底3G服务与目前普遍使用的GSM和GPRS应用有何不同?
答:有两个主要不同的地方:3G可提供更多的视频服务。虽然GPRS也可提供视像上的享受,但却不能提供好的视像品质。就好比如您要通过手机看直播串流,这是较难的,而3G就能。通过3G,用户可体验到不同的移动应用。
第二点是移动下载的速率比GPRS更好。比如您要下载一首完整的歌曲,一首歌约1.5MB。GPRS是可以下载的,但却需要很长的时间,如果您使用3G服务,约花上30秒就可完成整首的歌曲下载。
另外一点就是在2G服务应用上做不到的,但3G服务却能做到的视像通话,就类似2G的声音通话,我们可通过手机面对面的通话。
还有一个不同是老百姓不容易接受或者不容易理解的,就是3G可以提供更加清晰的语音服务。由于2G的语音质量已经很不错了,所以,这个答案只能是在3G上马之后进行细微的比较才能得出。 当然,3G和2G最主要的就是带宽升级带来的应用。多种种应用应该不仅仅限于手机,笔记本和PDA用户也应该能享受到3G带来的便利
问:移动用户可从3G服务中获得怎样的益处?
答:我把3G所带来的益处规分为三种。
一是移动用户可通过3G服务进行视像通话,无论您在哪里,您都可看到对方的表情进行通话。
二是通过3G的高速速率可更快的进入移动平台。这是之前的2G服务所满足不到用户的关键。高速率的3G可让您更快的进入您要的应用内容,例如进行下载工作时,之前的GPRS只能够跑115kbps,但3G却拥有更好的速率素质。
三是提供更广系列的3G应用内容。
问:您刚才一直在提3G可进行视像通话。是否可以说,视像通话就是3G的杀手应用?
答:不,不能这么说。我认为目前没有任何的3G杀手应用出现,当然希望是有的,但其实3G并不一定只有单一的杀手应用,或许有很多种。至于视像通话其实有一些不足,比如,当您进行视像通话,您的脸面对着镜头,这是进行视像通话时令人感到沉重的地方,有些人可能就不喜欢。这和单独的用手机照相的感觉是不一样的。
当然,我相信在3G服务之下,视像通话应用将是广受用户欢迎的3G应用,这一趋势将在世界各地流行开来。另外,一旦我国上马3G,视像通话将可能成为运营商宣传的重点,用户也就容易了解,相信视像通话将是推动3G服务的主要关键应用之一。
问:WIMAX也是无线技术之一,甚至有人说它是3.5G。您认为WIMAX与3G服务有什么不同?
答:WIMAX是一项新的技术,它充满了市场潜能。WIMAX与3G同时在讲述着宽频,但两者开始的角度是有所不同的。WIMAX讲的是宽频技术,谈的是在家或是公共领域的无线应用,涉及到移动宽频的解决方案。3G从一开始,就完全的从移动手机的角度开始或出发。
问:那些用户可能成为3G的主要用户?
答:有两种目标用户群。
第一种是专业的移动用户。专业移动用户可通过3G的视频通话与伙伴通话,快速的网络速率满足他们的需求。快速率的3G数码卡可以连接到他们笔记电脑,进入互联网浏览,他们不再需要电话线或是其他的连接线。我们也将他们叫做高端用户。
第二种是20岁至30岁之间的年轻人,他们视3G服务能为他们提供更多的娱乐,这将成为运营商的主要目标群。
问:您觉得3G服务上马后,现有的2G/2.5G用户是否会马上转去使用3G,或者说,那些因素决定用户向3G转移?
答:我想主要有三个因素。
第一是市场上的3G手机价格刚开始应该很贵。据我猜测,3G启动初期在市场上的3G手机售价大多数将在三千以上,年轻用户群对这样的手机售价较难以消化。
二是3G服务的覆盖率不够。任何运营商得到3G牌照之后都不可能全国性建网,仅仅会在部分大城市先行建网,到2008年以后,绝大部分省、地市两级城市才可能达到满意的覆盖率。这和中国联通实施建设CDMA网络以及CDMA用户增长情况是一致的。
三就是用户对3G服务的了解到底有多少?目前知道3G的人群其实非常的少,上马3G之后,需要运营商以及SP们大力宣传3G相关业务,才有可能让更多的老百姓了解3G业务,比如前面提到的视像通话很可能是老百姓最早能接受或者了解到的业务。其实3G不仅是这项应用,而是有更快的下载速率,为用户提供更多的视频内容,或是更快的进入互联网等益处,提供更多的娱乐。当然,我这里要强调的是,网络的表现也是占有很大的因素,因此哪个运营商的网络质量高,覆盖率高,将可能吸引更多的用户。
问:看目前的情形,我国很有可能出现多家3G运营商,那么,你认为,运营商应该用什么特点来吸引用户选择自己的3G服务?
答:我想,除了前面说的哪个运营商的网络质量高,覆盖率高,就可能吸引更多的用户之外,关键是看哪个运营商提供的应用内容供应比竞争对手的应用内容多,譬如有多少个现场直播的电视频道、多少种的娱乐选择、多少种的视频录像下载、多少种的铃声选择、多少种的游戏下载等。另外,一些新兴业务如查看交通状况、移动博客、数据卡等服务是否齐全等。
另一方就是谁的3G服务收费方面较让大众负担得起,就好像您要进行视像通话,收费是与2G的声音通话收费一致,收费大众化。这也许是最影响用户采用3G的关键因素了。
问:您认为2G服务什么时候退役,什么时候全面转向使用3G?
答:我认为这需要一个较长的时间段,从今年年初算起,2G起码还有7至10年的生命期,3G上马之后,应该有个3年左右的慢热期,我想到2010年之后,3G用户将出现较高幅度的增长。作者版权:http://blog.sina.com.cn/u/5560fa9f010001y52006-01-17
2006-1-1 15:30 打开眼睛,撕开被子,立起枕头,挺冷的,想躺下继续睡。 2006是我的本命年,迷信吗?还有点心虚。理性吧!有准备承受更大的压力。
新年的第一天,你是怎么过的?有为自己在新的一年做计划吗?有和朋友一起出去大吃一顿庆祝吗?有像我一样睡昏了头的吗?看看我新年第一天的流水帐吧! 什么都还没有做,心里有点怪怪的。为什么会有点发了慌的感觉。因为什么都没有做发慌吗?可能是肚子太饿了。 找到一家象样的中餐馆子。要了一盘“锅盔回锅”,还特意叫老板上了一碟红油泡菜。整碗白米干饭。很不错哦。 吃饱回家看会电视(湖南电视台的新春晚会),TNND翻来覆去都是那几个“超女”没看头。 点支烟,摸出电脑准备听会音乐,翻翻过去一年的照片。让回忆在“小资”中升华。突然记起前几天Down了WTP1.0。最近在翻看一些经典电影。一直都没时间玩玩。于是打开玩,等我再次感觉肚子饿已经是晚上22:20 对了,MIKE明天就要去SOHU了。临别前,给他电话送别。那娃居然在打麻将。不晓得听懂我送别的良苦用心没有。愿他一路顺风。新年新成绩吧! 放下电话,煮碗面吃,又看见昨天泡的衣服都还没有洗。 洗衣服是一件很有趣的事情。平时很少有机会运动,这时候可以凑合着活动一下。平时绷紧的神经挺累的。这时候,可以很享受的哼唱着散碎的歌曲。忧郁了,可以试着在发泄中思考。享受着局外人的宁静 工作快两年了,自己问过自己一个问题,说忙也好,颓废也吧。一直在回避,怕自己知道答案后会后悔当初。会逃避现实生活,会不知所措…偏偏在这时候想起“为什么想要做一个程序员”。 当初可能有一种不服输的想法。计算机毕业总能混碗吃吧。靠自己的双手生存的感觉真的不错。但是这种感觉很短暂。 晚上的公交车窗外,灯红酒绿。而我们只属于浮华背后的看客。躲在车窗后面的我们,窥视着,YY着。或许有着无数的感慨和畅想。或许回味着有时候也加入其中。哽咽着洗脚水味的洋酒。带着酒意,舞动在模糊迷人的身体背后。那是在发泄,那是在饥渴的释放… 那是一只披着羊皮的狼。 因为…这里没有欺骗,没有勾心斗角,没有讨价还价,很单纯,单纯到你可以没有其他的任何生活方式。在这里你可以找到攻城拔寨的快感。可以享受与世隔绝的宁静。怀揣骨子里面的清高。或许还能享受在别人眼中的高手身份吧! 大多数程序员都会经历 新手学习;逐渐成熟;自暴自弃,浮躁得异想天开;走向成熟或者是不知天高地厚得狂妄。 很难定义自己现在所处的阶段。就算在浮躁期吧。有了一点小小的成就感以后,就会变的浮躁,开始去思考,为什么做程序员,现在该拿多少薪水,梦想的实物该拿什么去换… 我不敢奢望谁能去帮我承担这种浮躁…光标闪到这里,变得机械了。突然没言语 知道自己需要有一段长时间的休息。去忘掉Source Code,淡化网络给我们带来的便捷。开始打算着,选择离开一段时间。离开Office,离开友情深深的团队。离开这块“净土”去瞧瞧陌生的精彩。回到阔别已久的老家追忆童年。或许生活的不堪重负会让我减却浮躁。或许该把竞技的舞台留给更多饥渴的勇士。这样对大家都好。
都说,新的一年应该给自己一个新的计划。计划如果有Scope的话。可以把他分成三种
n Request 类型的 [每一次记得了,看看计划,傻笑一下,干一次]
n Session 类型的 [在一个阶段给自己的计划,可以按计划坚持干完]
n 持久 类型的 [给自己一个长期的计划,不懈的努力]
面对计划,我就属于第一种,哈哈!给大家说一段笑话吧。大学的时候计划考英语四级,买了本单词来背。前些天再次想起,翻出来看的时候发现结果才看到“E”。看了两天又丢一边了。
所以,有时候我不太喜欢过场式的给自己计划。做好每一天,让“鲜为人知的理想”离我越来越近就好。今天打算为浮躁埋单
衣服洗完了,好象今天洗得特别干净。新年新气象嘛!Goingmm Subscription 2006-01-01
WTP(Web Tools Platform)是Eclipse组织的一个针对J2EE做的一个开发工具插件,是Eclipse下面的一个项目.使用过WTP 0.7的用户都知道,WTP提供了几乎完整的Web应用开发的工具支持. 12月19日,Eclipse基金会发布了WTP(Web Tool Project) 1.0rc版本.当天只发布了相关的插件包。我大概是25号从官方网站http://download.eclipse.org/webtools/downloads/drops/R-1.0-200512210855/拿到了全集成的版本(Eclipse Version: 3.1.1 Build id: M20050929-0840)。 用这个版本写了一个DEMO。感觉是上手挺容易的。V1.0在V0.7的基础上Fixed了一些Bug。而且有些功能点简化了。做得更common一些。使用过程遇到一些问题,但我不肯定是不是对环境不够熟悉造成的误解。比如修改一个JSP的名字,怎么发布都报错,只有关掉WTP重新Init一次。还有中文问题在这个环境中仍然存在。为了不写Action和相关配置文件,我用一个Servlet来控制转发的,加上一句req.setCharacterEncoding("gb2312")就搞定了。 列举主要使用过程: ■ Setup and configuration ■ Development basics ■ JSP Editing ■ Servlets ■ Deployment descriptors ■ Structure Source Editing (SSE) framework ■ Server ■ Running and debugging the web app 准备放这个Demo的过程,和简单的代码。但是篇幅原因,我就只能放一些零碎的图片。在这里没有打算告诉大家怎么去写一个简单的Web应用。如果对WTP感兴趣的话,这里就当是一些初级的了解吧。有什么问题欢迎讨论。 WTP的基础了解 PIC 基本配置 PIC 关于DEMO PIC 添加一个这样的服务器很简单。和WSAD差不多启动好的服务器运行JSP登陆页面登陆成功中文请求 演示ENDgoingmm 2006-01-02
异常处理 曾经专门花时间研究过JAVA中“异常处理”。一直想写一篇文章。也一直没有找到合适的方式。概念书上都有,在这里我再重提又觉得对不起大家。最后就不了了之。 无意间,看到CSDN上有一篇文章写得不错。转给大家看看吧。作者给出了很标准的做法,这里我加点建议。 仅供参考 注:所有建议都不会去怀疑和针对,作者想要讲解的异常处理知识点 ¢ Source code的每一个角落都这样100%标准的去处理异常。会一定程度的影响代码质量。不要相同的处理逻辑反复出现(比如用Template模式简化处理过程) ¢ 根据自己的实际情况选择异常使用,能不用异常处理的时候尽量不要用。有时候没有必要“强求”100% 转贴内容 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
反例之四:不说明异常的详细信息 代码:3行-18行。 仔细观察这段代码:如果循环内部出现了异常,会发生什么事情?我们可以得到足够的信息判断循环内部出错的原因吗?不能。我们只能知道当前正在处理的类发生了某种错误,但却不能获得任何信息判断导致当前错误的原因。 printStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程,但只提供了一些最基本的信息,未能说明实际导致错误的原因,同时也不易解读。 因此,在出现异常时,最好能够提供一些文字信息,例如当前正在执行的类、方法和其他状态信息,包括以一种更适合阅读的方式整理和组织printStackTrace提供的信息。 结论四:在异常处理模块中提供适量的错误原因信息,组织错误信息使其易于理解和阅读。 反例之五:过于庞大的try块 代码:3行-14行。 经常可以看到有人把大量的代码放入单个try块,实际上这不是好习惯。这种现象之所以常见,原因就在于有些人图省事,不愿花时间分析一大块代码中哪几行代码会抛出异常、异常的具体类型是什么。把大量的语句装入单个巨大的try块就象是出门旅游时把所有日常用品塞入一个大箱子,虽然东西是带上了,但要找出来可不容易。 一些新手常常把大量的代码放入单个try块,然后再在catch语句中声明Exception,而不是分离各个可能出现异常的段落并分别捕获其异常。这种做法为分析程序抛出异常的原因带来了困难,因为一大段代码中有太多的地方可能抛出Exception。 结论五:尽量减小try块的体积。 反例之六:输出数据不完整 代码:7行-11行。 不完整的数据是Java程序的隐形杀手。仔细观察这段代码,考虑一下如果循环的中间抛出了异常,会发生什么事情。循环的执行当然是要被打断的,其次,catch块会执行??就这些,再也没有其他动作了。已经输出的数据怎么办?使用这些数据的人或设备将收到一份不完整的(因而也是错误的)数据,却得不到任何有关这份数据是否完整的提示。对于有些系统来说,数据不完整可能比系统停止运行带来更大的损失。 较为理想的处置办法是向输出设备写一些信息,声明数据的不完整性;另一种可能有效的办法是,先缓冲要输出的数据,准备好全部数据之后再一次性输出。 结论六:全面考虑可能出现的异常以及这些异常对执行流程的影响。 改写后的代码
本文的结论不是放之四海皆准的教条,有时常识和经验才是最好的老师。如果你对自己的做法没有百分之百的信心,务必加上详细、全面的注释。 另一方面,不要笑话这些错误,不妨问问你自己是否真地彻底摆脱了这些坏习惯。即使最有经验的程序员偶尔也会误入歧途,原因很简单,因为它们确确实实带来了“方便”。所有这些反例都可以看作Java编程世界的恶魔,它们美丽动人,无孔不入,时刻诱惑着你。也许有人会认为这些都属于鸡皮蒜毛的小事,不足挂齿,但请记住:勿以恶小而为之,勿以善小而不为。2005-12-17Goingmm Subscription
几天没看新闻,Hibernate已经发布3.1版本http://sourceforge.net/project/showfiles.php?group_id=40712&package_id=127784&release_id=377721Down下来简单看了看。初看,没多大变化嘛。但是关注一下Change Log. 感觉这个版本主要是Fixed 3.0的一些BugChange Log 部分引用
在想Class.forName 和ClassLoader.loadClass 的区别的时候。找到的一篇好文章。给有兴趣的朋友推荐 引用: Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并不是什么丢脸的事情,相信没有一个Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯这样的错误而觉得不自然,但是在如果出现了ClassNotFoundException后异常后一脸的茫然,那我想你该了解一下java的类装载的体制了,同时为了进行下面的关于类装载器之间的隔离性的讨论,我们先简单介绍一下类装载的体系结构。 全文地址:http://gceclub.sun.com.cn/yuanchuang/week-9/classloader.html2005-12-09
外面天亮了,睁开朦胧的双眼。 到处找着“时间”,手机会到什么地方去了呢? 凌晨3:50 比赛闹铃一响。梦中惊醒过来后,不知道把手机丢什么地方去了。 The Brightest Star... 跑不赢是有点郁闷 群殴 从来都没有惧过 一手遮天 他娃可能黑手党的小混混 混混本色 跳起一耳SHI 跟他们玩累了 咋哥俩就在这小睡一会吧 2005-12-07
最近,用各种算是流行的方法写了些Hibernate的例子(基于测试)。上次打算写两篇文章。① Hibernate 常用工具的配置和使用。② Hibernate 比较简单的,基于单表操作的例子。写了80%吧。越想越感觉意义不大。现在网上很多这方面的文章。我自己也没有理由,自私的所谓备份。占用Blogjava的硬盘空间。就成了后来的 “冰 冻 闲 聊” 上个星期五,因为公司停电。所以休息了三天。一年前,这个数字可能会感觉太短。但是现在却是突然觉得连续三天不上班。不知道该干什么好。 难道是对这种“月光”族的生活上瘾拉?… 这样的话题,等以后想明白了再说吧!~ 接着说这个周末吧!因为无聊,翻翻,去年用过的一些散乱的笔记。越看越搞笑,字迹潦草,还好基本上是一些技术痕迹。找不到从前那些“少年不知愁滋味”的感觉。 因为我一直不是很喜欢看书。现在的书,写得好的不多,但是价钱蛮贵的。所以,有时候就会把一些疑惑的问题写在一张纸上。然后去网上先收集一些资料,再阅读总结。 这里,我发现了一条有趣的问题。2004年12月3日 Hibernate使用JDBC和JTA管理事务有什么区别?傻傻的问题。不如今天就聊聊这个话题吧!可能,现在也会有人对这个问题感觉疑惑的。
打开hibernate.cfg.xml看看具体的JDBCTransaction 和 JTATransaction 配置:
先说,他默认的事务处理机制[ JDBC Transaction ],这的确是最简单的处理方式,因为Hibernate只是对JDBC事物做了一层简单的封装。JDBC事务由Connection管理。事务周期局限于Connection的生命周期之内。在Hibernate中这种事务周期也就局限于一个Session之内。做个比较吧!
Connection conn = … ; <--- session = sf.openSession();// 初始化数据库连接,
和setAutoCommit= false;
conn.setAutoCommit(false); <--- tx = session.beginTransactioin(); 会再次确认setAutoCommit是否是false
调用业务方法 <--- 调用业务方法
conn.commit(); <--- tx.commit(); (对应左边的两句) 这里很关键,关掉自动commit。自己就必须做commit。否则数据是不会被持久到数据库
conn.setAutoCommit(true);
conn.close(); <--- session.close();
简单吧!如果你对JDBC有了解,看到这里可能会坏笑,NND就这么简单,我也会封装…有兴趣的话可以直接去看看具体的源代码。
看看第二种[JTA Transaction]有什么神奇的地方吧!
JTA 提供了跨Session的事务管理能力。JTA的事务是要容器支持的,即JTS,用来分布式的要求比较多一些,比如像银行这种大系统,处理多个事务源的这些的。 JTA事务管理则是由JTA容器实现。事务的生命周期完全由容器来维护。容器中可以有很多Connection。按照执行的顺序,因该是串联的一条JDBC Connection事务链。所以JTA的事务周期可以跨多个JDBC Connection的生命周期。在Hibernate中这种事务周期也就可以跨越多个Session。 所以。JTA事务的Connection不能对事务管理进行干涉。意思就是,假如使用了JTA就不应该再重复调用Hibernate的Transaction功能。这里涉及到一种事务模型(嵌套式事务模型)的问题。这里也不详细的介绍具体的几种事务模型了。在EJB2.0规范里面也不支持这种事务处理模型。 例如 :
那么下面这段代码
就不能在class A 和 class B 中出现。
原因:session.beginTransaction()也同样执行了InitialContext.lookup方法来获UserTransaction的实例,tx.commit()也同样调用了UserTransaction.commit().这样做就会形成嵌套式的事务。在Hibernate里面是不被允许的。会导致运行期错误。
谈到这里,不难看出,他们都有着自己鲜明的特点和基本的联系。回到开头的问题,在实际项目中该选用谁好呢?
这就需要分情况而定了。
1) 如果项目有用到Sessionbean.可能你会疑问?这时候由谁来管理事务呢?
答案:用SessionBean来管理。使用JTA会很方便。因为你完全没有必要去理会Transaction。直接在SessionBean的部署描述符里面声明事务就行了。
2) 自己实现一个Service类,来统一调用持久层的方法。这样也能做到前后台的松耦合。但是这时候你对session和Transaction的处理就需要小心了。如果系统考虑分布式就使用JTA否则就JDBC足夷。但还是有必要考虑系统的升级,变迁什么的。对session和Transaction的处理,最好不要放在DAO里面做。单独实现一个模板类来统一做。具体的原因和做法,以后有时间再写出来。
第三个问题
由于SessionFactory是线程安全的,他的创建过程非常复杂,代价极其昂贵。一个应用中最好只有一个SessionFactory。事务管理类型的选择是在SessionFactory的属性里面配置的。这里只能选择一种事务管理方式。
当然,你可以说还有特殊的情况,假如,这个应用需要连接到两台数据库服务器,就必须为他创建另一个SessionFactory。那么就可以选用另一种事务管理方式。表面上看这种情况是可以的。居于两种事务的性能考虑。混和用的意义不是很大。假设这样用+面对考虑不周全的DAO,也违背了设计原则,想想,这样的话,因为数据库的变动,还得回去修改DAO的代码吗?(可能会产生嵌套问题)所以关于这个问题的结论就是:
在一个SessionFactory中只能选用一种事务管理
面对多个SessionFactory的时候,可以混合用,但是不推荐2005-11-28 CTU OFFICE GOINGMM
遗憾昨天晚上的比赛没有看。补时4分钟?是不是裁判知道尤文又赢了,认为AC 必须得赢球啊!这种眼神很长时间没见着了 附上:舍甫琴科 上一场的4个进球,如果单纯的是为了酣畅淋漓。让你提前垫付了未来三场的运气, 有些不划算哦 2005-11-28 CTU OFFICE
很久没有回来了。大家好今年的成都可真够冷的。想..想...想.. 还没有发饷,想什么都虚幻闲来无聊,写些无聊的东西。本来想放Blog上,但是太杂乱,所以这篇Blog写了80%后我就停下了。结果,变成了几行无聊的文字
航班日期:2005年11月15日
航班号:CA422
起飞/到达时间:13:00/15:30
完成我的使命。该回家了。明天就要离开这个城市。离开一起战斗了26个日日夜夜的项目组。项目和团队全局意义的胜利,还需要一些时间去考验。祝福他们在剩下的日子里能做得更好。 北京,今年来了两次。工作原因,使我顶多算一个匆匆的看客。一直没有机会去真正了解这个Master城市。为什么叫他Master城市呢?因为我们平时看到的很多机构在这里就是总部。外表其实也就那样。但是权力却是Master的。背负着沉重的历史,注定这座城市不会给我们太多华丽和浮华的外表。想想儿时向往的天安门,其实就一座二层老房子。近看我还是觉得单薄了一点。没什么气势。尤其是两边的看台。比大学足球场的看台还简单。可能这只是鞭策中国人的一种象征物吧。 要让我拿北京和成都做个比较的话。可能要明天在路上边走边看,才会有些感觉。但是我不大可能在飞机上给大家发Blog吧。随便说一些生活上的感觉。这边上班时间比成都要早(8:30)。但是因为离得不是太远,而且每天上下班打车。这方面,的确方便了很多。累了一天后很容易恢复。这样早上会睡得好一点。北京很大,大得五环外也会经常塞车。据说今年北京是暖冬,带了很多衣服过来都还没机会穿。而且家里有暖气。想想在成都这几天不敢穿着短裤趴窗台上上网吧!~ 遗憾我还没有能看到北方的雪,和沙尘暴。只是每天回家灰尘挺吓人的。 干燥的气候,随时都会被静电袭击的危险。所以我的手基本还好,但是衣服的袖子就可怜了。刚开始,不理解的北京人,还以为我是怕他们的地方脏。幸好好奇的问了我,不然成天大的误会了。 这次过来基本没有出去玩。北京的朋友还有老同学些。真是对不住了,没有去看你们。有机会咱们成都见。那里才有正宗的水煮鱼,夫妻肺片…北京的饮食比较实在。贵但是量足。北京人自豪的烤鸭不好吃。说不出有什么特色。基本上我都不会吃偏甜的东西。还好这次找到一家,川菜做得不错。
停一下 刚才抓拍了几张照片。全当是这次生活的一个缩影送给大家 最后,我不得不感谢 “听涛小区长期稳定的无限网络” 虽然也不知道是谁家的,而且只发射到我的窗台上。但是这种共享精神充分体现了北方人,为人淳朴 豪爽 耿直 的特点。我会把你们的这种精神带回南方,不过,得等我有无限网络的那一天….2005-11-14夜 听涛 窗台
------------------------------------------------------------------------------------------------ Eclipse Platform Version: 3.1.0 Build id: I20050219-1500
Junit Version:3.8.1
------------------------------------------------------------------------------------------------Eclipse和Junit 大家应该都很熟悉了。这里我也不打算去讲为什么需要做这样的组合。为什么需要测试。为什么测试还有那么多讲究和学问。用一个最简单的例子,让还没有使用过的朋友,有一个简单的认识。主要是发图玩玩
1)看看完成后的效果图 2) 运行Eclipse。新建一个workplace项目,点击 file->new->project,选择Java项目,点击下一步。写一个项目名称,例如UseJUnit。点击Finish。这样就完成新项目的建立。再来配置一下Eclipse,在构建路径中添加JUnit类库。在工具条上点击项目->属性,选择Java Build Path,Libraries,选择 Add external JARs,浏览Junit被存储的目录,选择junit.jar,点击打开。你将会看见JUnit出现在库的列表中。点击确定,让Eclipse重建路径。
3)新建一个Class Person4) 新建一个Test Class TestCaseWithJunit代码如下:public void testSay() 方法是我自己加进去的5) Run Test case 6) 看看测试结果 7)修改一下测试代码 8)再看测试结果呵呵! 第一次发图。如果上面的过程描述有什么不清楚的地方。请与我联系2005-11-13 听涛 窗台
Powered by: BlogJava Copyright © Goingmm