博文

用struts框架尝试国际化程序实现 (2006-01-31 23:25:00)

摘要:   struts是一个MVC框架,据说struts可以轻松实现国际化;于是根据网上的资料,做了一个尝试,因为第一次做多语言程序,还是拐了很多弯路;但所幸,经过不断的尝试,终于成功的实现多语言版本的简单页面;

因为程序非常简单,所以在整个尝试过程中,全部使用手工编码,没有使用任何辅助工具;

1、 建立服务器

我使用Tomcat4作为测试环境,建立过程(略);

2、 下载struts

可以到http://jakarta.apache.org/struts/index.html下载,下载后解压,把其中的.war文件拷贝到Tomcat的webapps目录下,启动Tomcat,如果http://localhost:8080/struts-example/ 运行没有问题,说明环境建立成功;这些.war文件在Tomcat启动后会自动展开成文件,里面有源代码,可以作为源码研究;

3、 建立工程

在webapps目录下建立一个international文件夹,再在international目录下建立WEB-INF文件夹和WEB-INF/classes文件夹,这些都是一个JSP工程必须的;

4、 加了struts的类

在WEB-INF目录下建立一个lib子目录,把struts-example\WEB-INF\lib目录下将所有.jar文件拷贝到该目录下;这些文件是struts的控制类库和标签类库等;

commons-beanutils.jar commons-collections.jar commons-digester.jar commons-fileupload.jar commons-lang.jar commons-logging.jar commons-validator.jar jakarta-oro.jar struts.jar

5、 加入struts标签定义文件

从struts-example\WEB-INF目录下,把.TLD文件拷贝到international的WEB-INF目......

阅读全文(2500) | 评论:0

JDK1.4安装与环境配置完全图解(windows)(2006-01-31 23:05:00)

摘要:本机环境:
OS:WindowsXP+SP1


以下过程为JDK下载安装:

1.点击下面网址进入JDK1.4下载页面:

http://java.sun.com/j2se/1.4.2/download.html

2.点击“Download J2SE SDK”:


3.“Accept”,Continue:


4.下面列出了各个平台下的JDK版本,其中Windows版有两种安装方式,一种是完全下载后再安装,一种是在线安装,我们选择第一种:


5.下载完成后,双击图标进行安装,安装过程中可以自定义安装目录等信息,
例如我们选择安装目录为D:\jdk1.4

以下过程为配置JDK环境变量:

6.右击“我的电脑”,点击“属性”:


7.选择“高级”选项卡,点击“环境变量”:


8.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”:


9.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:\jdk1.4,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依靠此变量)
   Path使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
   CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)
   %JAVA_HOME%就是引用前面指定的JAVA_HOME。




10.“开始”->“运行”,键入“cmd”:


11.键入命令“java -version”,出现下图画面,说明环境变量配置成功:


1......

阅读全文(2507) | 评论:0

程序员的十种级别(2006-01-26 20:47:00)

摘要:第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,高瞻远瞩,技术过人,大器也。如丁磊,求伯君。 第二级:高人,有天赋,技术过人但没有过人的商业头脑,通常此类人不是顶尖黑客就是技术总监之流。 第三级:牛人,技术精湛,熟悉行业知识,敢于创新,有自己的公司和软件产品。 第四级:工头,技术精湛,有领导团队的能力,此类人大公司项目经理居多。 第五级:技术工人,技术精湛,熟悉行业知识但领导能力欠佳,此类人大多为系统分析员或资深程序员,基本上桀骜不逊,自视清高,不愿与一般技术人员为伍,在论坛上基本以高手面目出现。 第六级:熟练工人,技术有广度无深度,喜欢钻研但浅尝辄止。此类人大多为老程序员,其中一部分喜欢利用工具去查找网上有漏洞的服务器,干点坏事以获取成就感。如果心情好,在论坛上他们会回答菜鸟的大部分问题。此级别为软件业苦力的重要组成部分。 第七级:工人,某些技术较熟练但缺乏深度和广度,此类人大多为程序员级别,经常在论坛上提问偶尔也回答菜鸟的问题。为软件产业苦力的主要组成部分。 第八级:菜鸟,入门时间不长,在论坛上会反复提问很初级的问题,有一种唐僧的精神。虽然招人烦但基本很可爱。只要认真钻研,一两年后就能升级到上一层。 第九级:大忽悠,利用中国教育的弊病,顶着一顶高学历的帽子,在小公司里混个软件部经理,设计不行,代码不行,只会胡乱支配下属,拍领导马屁,在领导面前胡吹海侃,把自己打扮成技术高手的模样。把勾心斗角的办公室文化引入技术部门,实在龌龊! 第十级:驴或傻X,会写SELECT语句就说自己精通Oracle,连寄存器有几种都不知道就说自己懂汇编,建议全部送到日本当IT产业工人,挣了日本人的钱还严重打击日本的软件业!......

阅读全文(3642) | 评论:10

建国以来发行的人民币一览(2006-01-25 13:08:00)

摘要:

















































......

阅读全文(1811) | 评论:1

世界上最经典的20句话(2006-01-25 12:51:00)

摘要:1、记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
2、能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶。
3、怨言是上天得至人类最大的供物,也是人类祷告中最真诚的部分。
4、智慧的代价是矛盾。这是人生对人生观开的玩笑。
5、世上的姑娘总以为自己是骄傲的公主(除了少数极丑和少数极聪明的姑娘例外)。
6、 如果敌人让你生气,那说明你还没有胜他的把握。
7、如果朋友让你生气,那说明你仍然在意他的友情。 
8、 令狐冲说“有些事情本身我们无法控制,只好控制自己。”
9、我不知道我现在做的哪些是对的,那些是错的,而当我终于老死的时候我才知道这些。所以我现在所能做的就是尽力做好每一件事,然后等待着老死。
10、也许有些人很可恶,有些人很卑鄙。而当我设身为他想象的时候,我才知道:他比我还可怜。所以请原谅所有你见过的人,好人或者坏人。 
11、鱼对水说你看不到我的眼泪,因为我在水里.水说我能感觉到你的眼泪,因为你在我心里。
12、快乐要有悲伤作陪,雨过应该就有天晴。如果雨后还是雨,如果忧伤之后还是忧伤。请让我们从容面对这离别之后的离别。微笑地去寻找一个不可能出现的你!
13、死亡教会人一切,如同考试之后公布的结果——虽然恍然大悟,但为时晚矣~!  
14、你出生的时候,你哭着,周围的人笑着;你逝去的时候,你笑着,而周围的人在哭!一切都是轮回!!!! 我们都在轮回中!!!!
15、男人在结婚前觉得适合自己的女人很少,结婚后觉得适合自己的女人很多。  
16、于千万人之中,遇见你所遇见的人;于千万年之中,时间的无涯荒野里,没有早一步,也没有晚一步,刚巧赶上了。
17、每个人都有潜在的能量,只是很容易:被习惯所掩盖,被时间所迷离,被惰性所消磨。
18、人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时候就去爱,无谓压抑自己。
19、《和平年代》里的话:当幻想和现实面对时,总是很痛苦的。要么你被痛苦击倒,要么你把痛苦踩在脚下。
20、真正的爱情是不讲究热闹不讲究排场不讲究繁华更不讲究噱头的。......

阅读全文(2044) | 评论:1

Ajax简介【转】(2006-01-25 00:12:00)

摘要:作为J2EE开发人员,我们似乎经常关注“后端机制(backend mechanics)”。我们通常会忘记,J2EE的主要成功之处在Web应用程序方面;许多原因使得人们喜欢利用Web开发应用程序,但主要还是因为其易于部署的特点允许站点以尽可能低的成本拥有上百万的用户。遗憾的是,在过去几年中,我们在后端投入了太多的时间,而在使我们的Web用户界面对用户自然和响应灵敏方面却投入不足。   本文介绍一种方法,Ajax,使用它可以构建更为动态和响应更灵敏的Web应用程序。该方法的关键在于对浏览器端的JavaScript、DHTML和与服务器异步通信的组合。本文也演示了启用这种方法是多么简单:利用一个Ajax框架(指DWR)构造一个应用程序,它直接从浏览器与后端服务进行通信。如果使用得当,这种强大的力量可以使应用程序更加自然和响应灵敏,从而提升用户的浏览体验。   该应用程序中所使用的示例代码已打包为单独的WAR文件,可供下载。 简介   术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验。在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的“思考时间”同步。Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的。   虽然Ajax所需的基础架构已经出现了一段时间,但直到最近异步请求的真正威力才得到利用。能够拥有一个响应极其灵敏的Web站点确实激动人心,因为它最终允许开发人员和设计人员使用标准的HTML/CSS/JavaScript堆栈创建“桌面风格的(desktop-like)”可用性。   通常,在J2EE中,开发人员过于关注服务和持久性层的开发,以至于用户界面的可用性已经落后。在一个典型的J2EE开发周期中,常常会听到这样的话,“我们没有可投入UI的时间”或“不能用HTML实现”。但是,以下Web站点证明,这些理由再也站不住脚了: BackPack Google Suggest Google M......

阅读全文(2164) | 评论:0

JDBC连接写法(2006-01-24 23:46:00)

摘要:查了些资料,总结了些给需要的朋友:
8种数据库JDBC连接写法 
  
1. MySQL
Driver:org.gjt.mm.mysql.Driver
URL: jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName=data
2. PostgreSQL
org.postgresql.Driver
jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName=data
3. Oracle
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORC
4. Sybase
com.sybase.jdbc2.jdbc.SybDriver
jdbc:sybase:Tds:MyDbComputerNameOrIP:2638
5. Microsoft SQLServer(jtds)
net.sourceforge.jtds.jdbc.Driver
jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433;DatabaseName=myDb
6. Microsoft SQLServer
com.microsoft.jdbc.sqlserver.SQLServerDriver
jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master
7. ODBC
sun.jdbc.odbc.JdbcOdbcDriver
jdbc:odbc:dbsource
8.DB2(新添加)
com.ibm.db2.jdbc.net.DB2Driver
jdbc:db2://192.9.200.108:6789/SAMPLE
×××××××××××××××××××××××××××××××××
Webl......

阅读全文(2548) | 评论:0

哲理小故事搜集 (2006-01-24 00:01:00)

摘要:1、有一位表演大师上场前,他的弟子告诉他鞋带松了。大师点头致谢,蹲下来仔细系好。等到弟子转身后,又蹲下来将鞋带解松。有个旁观者不解地问:“大师,您为什么又要将鞋带解松呢?”大师回答道:“因为我饰演的是一位劳累的旅行者,长途跋涉让他的鞋带松开了。”“那你为什么不直接告诉你的弟子呢?”“他能细心地发现我的鞋带松了,并且热心地告诉我,我一定要保护他这种热情的积极性,及时地给他鼓励。至于为什么要将鞋带解开,将来会有更多的机会教他表演,可以下一次再说啊。”
  (说明:人一个时间只能做一件事,懂抓重点,才是真正的人才。)
  2、一个人去买鹦鹉,看到一只鹦鹉前标:此鹦鹉会两门语言,售价200元一只。另一只鹦鹉前标道:此鹦鹉会四门语言,售价400元。该买哪只呢?两只都毛色光鲜,非常灵活可爱。这人转啊转,拿不定主意。结果突然发现一只老掉了牙的鹦鹉,毛色暗淡散乱,标价800元。这人赶紧将老板叫来:这只鹦鹉是不是会说八门语言?店主说:不。这人奇怪了:那为什么又老又丑,又没有能力,会值这个数呢?店主回答:因为另外两只鹦鹉都叫这只鹦鹉老板。
  (说明:真正的领导人,不一定自己能力有多强,只要懂信任,懂得放权,懂得珍惜,就能团结比自己更强的力量,从而提升自己的身价。相反许多能力非常强的人却因为过于完美主义,事必躬亲,什么人都不如自己,最后只能做最好的业务员,销售代表,成不了优秀的领导人。)
  3、曾经有个人小国的人到中国来,进贡了三个一模一样的金人,把皇帝高兴坏了。可是这小国的人同时出了一个题目:这三个金人哪个最有价值?皇帝请来了珠宝匠检查,称重量,看做工,都是一模一样的。泱泱大国,不会被这点小问题难倒吧?最后,有位退休的老大臣说他有办法。皇帝将使者请到大殿,老臣拿着三根稻草,插入第一个金人的耳朵里,这稻草从另一个耳朵出来了。第二个金人的稻草从嘴里直接掉出来了,而第三个金人,稻草进去后掉进了肚子里,什么响动也没有了。老臣说:第三个金人最有价值!使者默默无语,答案正确。
  (说明:最有价值的人,不一定上最能说的人,老天给我们两只耳朵一个嘴巴,本来就是让我们多听少说的。善于倾听,才是成熟的人最基本的素质。)
  4、a对b说:“我要离开这个公司。我恨这个公司!”b建议道:“我举双手赞成你报复!破公司一定要给他点颜色看看。不过你现在离开,还不......

阅读全文(2454) | 评论:0

学编程的人不能不看的好文章?(2006-01-23 23:50:00)

摘要:看了下面的这篇文章,深有感触,枣子碰到的问题也是我们大多数程序员的通病,也许我们大多数人都只是在做一些比较小型的软件,对软件运行的效率不在乎,就算对速度和效率在乎的也可能是一些在数据库操作方面的。大家看完了,也许会有很多感想,但这只是我同意枣子的个人观点。
(枣子原创--www.vcroad.net wutao8@263.net) 
做为一名大四的学生,我面试过不少的单位,有成功的也有失败的,但是对我来说所有的失败在某种意义上都是一种成功,特别是我下面写的这些,写这篇文章的时候,我已经签了南京的一家软件公司,但是想起今年2月21日我面试苏州台湾的IT公司的经历联想到我们现在 
学习编程的一些情况我真的深有感触,这次面试使我深深的体会到了失败但也收获了很多。我要说的将分成三部分,1.是 
我面试的具体经过2.是由面试想到的3.现今我应该做的。当然这些话很大程度上是我个人的意见,不可能完全得到大家的赞同,所以 
在某些观点上如果哪位朋友觉得跟我的有很大出入,请不要介意,也不要对我攻击,就当我没有说过,欢迎和我联系共同探讨这些问题!我的EMAIL:wutao8@263.net 
1.面试经过 
大约在年前我接到了台湾瑞晟(Realtek)苏州公司的面试通知,通知我2月21日到苏州工业园区面试,接到面试后的几天我把一些专业 
课温习了一遍,特别是C++和数据结构,由于大学几年里,我一直专研这些方面,加上通过了高级程序员的考试,对于一些常用的算法 
我差不多也达到了烂熟于胸的地步,当时的感觉是如果问了我这些方面的问题我应该是没有问题的! 
21日那天我被安排在4:30面试,由一位技术人员单独给我面试,在问了一些简单的问题之后他给我出了一道编程题目,题目是这样的: 
(由于具体面试的题目比较烦琐,我将其核心思想提取出来分解成了两个独立的简单的问题,有可能问题分解的不当,请大家见谅,实际面试了一个的问题但比其复杂很多,而且涉及一些高等数学变换) 
1) 写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n 
哼,我的心里冷笑......

阅读全文(3188) | 评论:13

无废话-SQL Server 2005新功能(1) - TSQL (2006-01-23 23:47:00)

摘要: SQL Server 2005相对于SQL Server 2000改进很大,有些还是非常实用的。 举几个例子来简单说明 这些例子我引用了Northwind库。 1. TOP 表达式
SQL Server 2000的TOP是个固定值,是不是觉得不爽,现在改进了。  --前n名的订单
declare @n int 
set @n = 10 
select TOP(@n) * from Orders
2. 分页
不知各位过去用SQL Server 2000是怎么分页的,大多都用到了临时表。SQL Server 2005一句话就支持分页,性能据说也非常不错。 --按Freight从小到大排序,求20到30行的结果 
select * from( 
    select OrderId, Freight, ROW_NUMBER() OVER(order by Freight) as row from Orders 
) a 
where row between 20 and 30
3. 排名
select * from( 
    select OrderId, Freight, RANK() OVER(order by Freight) as rank from Orders 
) a 
where rank between 20 and 30
4. try ... catch
SQ......

阅读全文(2186) | 评论:0