2005年01月31日

个人认为我除了爱我老婆就是Java了,从上学开始就在间歇性的学习,但一直没有开发过java项目。

为了公司的发展需要,12月底决定开发一个用于内部的OA和产品管理平台,用于解决产品的版本管理、针对产品的纪要以及明确每个产品的各个需求和目标。

1月初,简单分析了需求便着手做事情。开发周期2周;开发人,我;

资源:

web server:笔记本-win2000en server ,tomcat4.1

dbserver: 台式机-rh linxu9 ,oracle9i

开发环境:eclipse2.1+lomboz2.1

教训:

1。需求分析不充分,很多地方没有考虑到,感觉用了很多多余的servlet;

应该做好整个构架的页面流设计,不能想到什么就作什么?那样在实际开发过程中会造成很大的混乱。

很多条转页面都不标准,日后维护有点麻烦。

2。对开发环境不熟悉;

用了几乎一半的时间在搭建和熟悉开发环境;

eclipse中每次更改了.java文件都要depay一下才可以在tomcat发布出来,这一点困扰了2天;

eclipse有专门的更换字符集编码的地方,单独在editplus里面改了编码放到eclipse里面去是行不通的;

如果你的某个文件有问题,eclipse会中止所有.java文件的自动编译,这个时候你的build to 文件夹里面就会没有内容了。

经验:

1。开发java项目需要更加谨慎和严密的需求分析和构架设计,这个跟asp或者php是两回事,因为javabean不能直接在ie浏览时可见,所以model就是model,不能乱用,不能偷奸取巧。

2。连接池用完了一定要关闭(以前认为用了连接池就不用.close了,错错!),这样会造成tomcat的假死现象,这个问题困扰了3天才解决!

3。java的字符串替换好像不太简单——php或者asp都是原文保存到数据库,之后在现实的地方把空格和回车替换成&nbsp:和<br>,但是这个在java中好像没行通,查了一下人家的代码,很多都是在写到数据库之前先转换的,这一点到现在还没有搞清楚。

4。需要更加熟练的掌握servlet,这一点很重要。servlet属于 控制层,很多控制sesseion、跳转还有httpservlet的变量操作需要更加进一步的了解和掌握。

一个好的开始差不多是成功的半拉子,通过这个项目基本掌握了java的web开发,希望这是个美妙的开始 ……

http://edu.qq.com/a/20050128/000064.htm

个人认为第十张最好,可能是在城市里呆时间长了,向往一种宁静安详的生活…

  第一名,薄霭中的风车。作者评议:这幅图是一次雪天拍摄的,地上蒙上了柔弱的白雾;凌晨的太阳是我最好的伙伴,而远景中的小黑马当我近他时总想要咬我。
  第二名,孤山。作者评议:Galapagos链岛最小的陆地之一,人们都叫它日落中被踢出的山岩。
  第三名,蝇头。观众评议:色彩、对比度、层次、色调,以及协调上都是无与伦比的,这些是最先抓住我眼光的因素,这些足以构成完美了。
  Q小编评论:尽管如此,俺还是觉得……它很丑!!!不过崇尚美好的MMGG们请放心,这一套图里,只有这一张是另类的,其他的都很赏心悦目~~~~我保证!
 第四名,白玫瑰。观众评议:简捷的美感,光线优雅、清晰,细节突出,美!
  第五名,归家的路。观众评议:真是不可思议,杰作!颜色、光线,以及细节都棒极了
  第六名,孤舟。观众评议:真可谓捕捉到“魔幻时刻”,景致中表现出作者的观察力以及想象力,棒哦!
第七名,Morgana。观众评议:光线色彩完美,模特的漂亮和作者的才华一起打造了这副作品。
  第八名,天使之光。作者评议:阳光从云隙中穿过,辉映出天使的轮廓,照片摄于曼谷皇宫。
  第九名,最后一滴。作者评议:除了剪切外没有用PS加工,我采用了日光、闪光以及+4的近距离透镜获得了这幅照片,其他的色彩是从盛水的碗中折射出的,这是有各种颜色的意大利面食碗……
第十名,日落中的孤寂。

页面最上面多了:

滚动| IT业界| 软件| 开发| 服务器| 网吧之家| 下载| DIY| 数码| 贴图| 电信| 互联网| 游戏| 传媒| 音乐| 电影| 读书| 精神生活| 体育| 日记

有什么用?谁会用?垃圾!

侧面多了很多用不着的东西:

最新回复

最新文章

想删也删不掉,不知道是方便大家还是烦扰了大家!

没完没了的广告,gooooole的,烦,犯得上挣那点小钱毁了“清郁”吗?

2005年01月22日

“昨天,我还采访过他,今天,他却已经死了”。

4月9日,三联生活周刊的一个记者在网上告诉我。

不能不吃惊,仅仅一个星期以前,在某一个场合,我们还曾经紧靠着位置坐了两个小时,可现在,他已经死了。


错,我们说的是一个人,这位逝去的长者,是爱立信中国总裁杨迈(Jan
Malm)。4月8日,在上海出席厦新电子与爱立信移动平台公司的一项商务协议后,于傍晚回到北京的杨迈决定,利用当晚的闲暇时间去做健身。当杨迈在健身
房的跑步机上跑步时,连日超负荷的工作让他的心脏已不能承受如此剧烈的运动,倒了下去,终年54岁。

杨迈是怎么样一个人?媒体已有广泛报道,此处不再做评述,仅仅拿我和他两个小时的接触来说--他的眼神很和蔼,他对每个人都彬彬有礼,和他在一起,你不会感觉到面对一般财经巨头的压力。

好了,作为怀念,引述一段来自网络之上,一位爱立信底层员工的话语吧:

“早上知道这个坏消息, 就禁不住很难过。一个慈霭的老人,在异国他乡,身边没有一个亲人,头一天还好好的,开会,出差,突然就这么去了,真可怜。


实Yan是总裁,和我这么一个普通员工之间距离很远,但是他的笑容,他的平易和亲切却让人难忘。还记得上个周末开销售大会,Yan早上第一个发表了演讲,
从台上下来就坐在我前面的两排。会议服务不好,一个小时过去了, 面前的杯子空空的一直没到水,我忍不住抽会议间歇叫了服务生倒水。水终于来了,
Yan和几个前排的老外才赶忙请小姐给倒杯咖啡。 要知道这些北欧人大多嗜咖啡如命,一大早就开会,没喝上这杯咖啡肯定很难受吧. 但他就这么忍着,
没一点儿脾气, 对服务小姐也是那么的彬彬有理, 要知道周围都是他的下级, 但他谁都没有打搅一下.
我当时就很感慨,这如果是换了中国公司的领导肯定是前呼后拥被一大堆人伺候得无微不至吧. 这样的公司我待过, 领导和下级之间等级界限分明,
领导对员工不满,张口就骂“你是猪”。这种巨大的差异可能就是我在爱立信待得越久越依恋的原因吧。Yan去了,是爱立信的悲伤。不要说他是什么地位,也不
要说他是那国人,只是想想一个如此和善的老人就这么意外孤独地去了,又叫每一个认识他的善良的人怎能不为他难过。只是暗自猜想他走得那么快,应该没有什么
痛苦,这也许是对生者唯一的安慰了吧。”

死者长已矣,想多谈几句的,是关于生者的问题,看一则新闻(《光明日报》2004年4月2日):

“国家有关部门公布的一个专项调查结果表明,我国知识分子平均寿命为58岁,低于全国平均寿命10岁左右;北京中关村知识分子平均死亡年龄为53.34岁,比10年前缩短了5.18岁。”


据调查,我国中青年知识分子的死亡率大约超过老年知识分子的两倍之多。这种早亡、猝死的现象在一些脑力密集型的行业中显得更为严重。“2002年上海10
家主要新闻媒体联合调查结果,新闻工作人员死亡年龄集中在40至60岁年龄段的占78.6%,平均死亡年龄为45.7岁。”

过劳死,80年代,我们的媒体曾经以旁观者的姿态大量报道过日本白领阶层的白领现象,如瘟疫般,已经蔓延到你我的身边,开始威胁到每一个人--不管你愿不愿意,这是事实。

你要买车你要供房你要出国要读EMBA你要打败竞争对手你要消费你要事业成功的一切标志。


熬夜、你加班、你陪客户吃饭、你陪领导暴饮、还不到三十岁,你已经有了将军肚,你开始脱发、早秃你去洗手间的时间太频繁,你腰酸腿痛,没兴趣做爱你记忆力
减退你开始忘记熟人的名字你做事经常后悔,易怒、烦躁、悲观,难以控制自己的情绪你注意力不集中,集中精力的能力越来越差,你睡觉时间越来越短,醒来也不
解乏你经常头疼、耳鸣、目眩,检查也没有结果……

你知道其实这种状况很不好,可你一直想挺过去,想等事业有一个阶段,你天天幻想休假那天去世外桃源去丽江香格里拉西藏赛北赛班马尔代夫,你的房间里摆满了休闲度假旅游充电的书籍,彷佛随时都要撒手这一切,去好好修整一下,然而,那一天却不知何时能够到来……

然后……

2004年11月29日

Oracle 9i预定义的角色

表8.2 Oracle 9i预定义的角色





























角色名称 说明
CONNECT 数据库连接角色,用于连接数据库,具有创建簇、数据库链接、序列、同义词、表和视图,以及修改会话的权利
DBA 数据库管理员角色,具有所有使用ADMIN选项创建的系统权限,可以将系统权限授予其他用户或角色
DELETE_CATALOG_ROLE 删除目录角色,可以删除或重建数据字典
EXECUTE_CATALOG_ROLE 执行目录角色,能够执行所有系统包
EXP_FULL_DATABASE 能够使用导出程序执行数据库的完全和增量导出
IMP_FULL_DATABASE 能够使用导入程序执行数据库的完全导入
RESOURCE 可以创建簇、表、序列以及PL/SQL编程用方案对象,包括过程、程序包、触发器等
SELECT_CATALOG_ROLE 查询数据字典表或视图

在【企业管理器】中创建角色

    (1)如图8.16所示。

    (2)出现如图8.17所示的创建角色的【一般信息】选项卡。
    (3)图8.18所示为创建角色的【角色】选项卡。用于为多个角色分配子角色。

    (4)图8.19所示为创建角色的【系统权限】选项卡。
    (5)如图8.20所示为创建角色的【对象权限】选项卡。

    (6)图8.21所示为创建角色的【使用者组】选项卡。
    (7)成功创建角色后出现如图8.22所示界面。

    (8)上述过程创建角色的SQL代码如下。
    ―――――――――――――――――――――――――――――――――――――
    CREATE ROLE “TEMPROLE”
        IDENTIFIED BY “temprole”;
    GRANT ALTER ANY INDEX TO “TEMPROLE” WITH ADMIN OPTION;
    GRANT SELECT ANY TABLE TO “TEMPROLE” WITH ADMIN OPTION;
    GRANT “CONNECT” TO “TEMPROLE” WITH ADMIN OPTION;
    GRANT “DBA” TO “TEMPROLE” WITH ADMIN OPTION;
    BEGIN
        dbms_resource_manager_privs.grant_switch_consumer_group(
            grantee_name => ‘TEMPROLE’,
            consumer_group => ‘DEFAULT_CONSUMER_GROUP’,
            grant_option => FALSE
       );
    END;
    ―――――――――――――――――――――――――――――――――――――
    【参见光盘文件】:第8章\createrole.sql。

在【SQLPlus Worksheet】中创建角色

    (1)在【SQLPlus Worksheet】中直接执行createrole.sql文件将完成角色的创建,执行结果如图8.23所示。
    (2)表明已经成功创建角色TEMPROLE。


角色的修改

    (1)如图8.24所示。

    (2)在出现的各选项卡中可以修改角色的各种配置参数,对应角色的修改的SQL语句为“ALTER ROLE”或者“REVOKE”。
    实例1:将角色的验证方式更改为“外部”的SQL代码如下。
    ―――――――――――――――――――――――――――――――――――――
    ALTER ROLE “TEMPROLE” IDENTIFIED EXTERNALLY;
    ―――――――――――――――――――――――――――――――――――――
    【参见光盘文件】:第8章\alterrole.sql。
    实例2:将角色的系统权限“DBA”删除的SQL代码如下。
    ―――――――――――――――――――――――――――――――――――――
    REVOKE “DBA” FROM “TEMPROLE”;
    ―――――――――――――――――――――――――――――――――――――
    【参见光盘文件】:第8章\revokerole.sql。

角色的删除

    (1)如图8.25所示【角色删除确认】界面。

    (2)上述过程对应的SQL代码如下。
    ―――――――――――――――――――――――――――――――――――――
       DROP ROLE TEMPROLE;
    ―――――――――――――――――――――――――――――――――――――










Oracle9i之xmltype应用

孙庚(javagen@gmail.com)
 软件工程师
 2004-11-22

[文章摘要]介绍了oracle9i的xmltpy数据类类型的基本使用
包括:建立含有xmltype数据类型的表
      插入(insert)数据
      查询(select)数据
      更新(update)数据
      添加超过4k字节的xml文档到xmltype型字段
适合初学者。


关键词: oracle9i xmltype


    oracle从9i开始支持一种新的数据类型—- xmltype,用于存储和管理xml数据,并提供了很多的functions,用来直接读取xml文档和管理节点。下面将介绍xmltype的一些基本使用。

1.建立含有xmltype数据类型的表
    create table abc (id number,xmldoc sys.xmltype);
    声明xmltype型字段用:sys.xmltype

2.向带有xmltype类型的表插入带有数据
    insert into abc (id,xmldoc) value (abc.nextval , sys.xmlType.createXML(‘<name><a id=”1″ value=”some values”>abc</a></name>’) );
    插入用 sys.xmlType.createXML(’some xml doc’)

3.直接查询xmltype字段里面的内容
    得到id=1的value变脸的值
    select i.xmldoc.extract(‘//name/a[@id=1]/@value’).getStringVal() as ennames, id from abc i;
    得到a节点的值
    select id, i.xmldoc.extract(‘//name/a/text()’).getStringVal() as truename from abc i”;

4.更新xmltype里面的数据
    update abc set xmldoc=updateXML(xmldoc,’//name/a[@id=1]/@value’,’some new value’) where ……
    (注意:如果里面没有<a id=”1″>这个节点,将不能update)

 5.添加超过4k字节的xml文档到xmltype型字段
    可以通过使用临时表的办法实现:
    先建立一个临时的表,其中的一个字段是clob类型;
    再将要写入xmltype字段的xml doc写入这个临时的clob型的字段中;
    最后insert into abc (id,xmldoc) values (abc_q.nextval , sys.xmlType.createXML((select content from 临时表 where id=……)));

后记:
    oracle9i对xml提供了强大的支持,这篇文章旨在抛砖引玉,希望给大家一些借鉴。也希望感兴趣的朋友和我交流。


参考资料:
    oracle9i文档
    http://www.oracle.com/technology/documentation/oracle9i.html

    dBforums – Inserting into XmlType large docs
    http://archive.dbforums.com/4/2002/4/346213

2004.11.28第一次修改


作者信息


姓名: 孙庚
联系方式: javagen@gmail.com
简介: 软件工程师,熟悉linux oracle php ,J2EE研习者。
BLOG:www.donews.net/tssungeng/

(原创作品,转载请注明作者)

 

2004年10月28日

 

1、羊肉去膻味:将萝卜块和羊肉一起下锅,半小时后取出萝卜块;放几块桔子皮更佳;每公斤羊肉放绿豆5克,煮沸10分钟后,将水和绿豆一起倒出;放 半包山楂片;将带壳的核桃两三个洗净打孔放入;1公斤羊肉加咖喱粉10克;1公斤羊肉加剖开的甘蔗200克;1公斤水烧开,加羊肉1公斤、醋50克,煮沸 后捞出,再重新加水加调料。   

2、煮牛肉:为了使牛肉炖得快,炖得烂,加一小撮茶叶(约为泡一壶茶的量,用纱布包好)同煮,肉很快就烂且味道鲜美。   

3、煮骨头汤时加一小匙醋,可使骨头中的磷、钙溶解于汤中,并可保存汤中的维生素。   

4、煮牛肉和其他韧、硬肉类以及野味禽类时,加点醋可使其软化。   

5、煮肉汤或排骨汤时,放入几块新鲜桔皮,不仅味道鲜美,还可减少油腻感。   

6、煮咸肉:用十几个钻有许多小孔的核桃同煮,可消除臭味   

7、将绿豆在铁锅中炒10分钟再煮能很快煮烂,但注意不要炒焦   

8、煮蛋时水里加点醋可防蛋壳裂开,事先加点盐也可   

9、煮海带时加几滴醋易烂;放几棵波菜也行   

10、煮火腿之前,将火腿皮上涂些白糖,容易煮烂,味道更鲜美   

11、煮水饺时,在水里放一颗大葱或在水开后加点盐,再放饺子,饺子味道鲜美不粘连;在和面时,每500克面粉加拌一个鸡蛋,饺子皮挺刮不粘连   

12、煮水饺时,在锅中加少许食盐,锅开时水也不外溢   

13、煮面条时加一小汤匙食油,面条不会沾连,并可防止面汤起泡沫、溢出锅外   

14、煮面条时,在锅中加少许食盐,煮出的面条不易烂糊   

15、熬粥或煮豆时不要放碱,否则会破坏米、豆中的营养物质   

16、用开水煮新笋容易熟,且松脆可口;要使笋煮后不缩小,可加几片薄荷叶或盐   

17、猪肚煮熟后,切成长块,放在碗内加一些鲜汤再蒸一会儿,猪肚便会加厚一倍   

18、煮猪肚时,千万不能先放盐,等煮熟后吃时再放盐,否则猪肚会缩得象牛筋一样硬   

19、炖肉时,在锅里加上几块桔皮,可除异味和油腻并增加汤的鲜味   

20、炖鸡:洗净切块,倒入热油锅内翻炒,待水分炒干时,倒入适量香醋,再迅速翻炒,至鸡块发出劈劈啪啪的爆响声时,立即加热水(没过鸡 块),再用旺火烧十分钟,即可放入调料,移小火上再炖20分钟,淋上香油即可出锅;应在汤炖好后,温度降至80~90摄氏度时或食用前加盐。因为鸡肉中含 水分较高,炖鸡先加盐,鸡肉在盐水中浸泡,组织细胞内水分向外渗透,蛋白质产生凝固作用,使鸡肉明显收缩变紧,影响营养向汤内溶解,且煮熟后的鸡肉趋向 硬、老,口感粗糙。   

21、炖老鸡:在锅内加二三十颗黄豆同炖,熟得快且味道鲜;或在杀老鸡之前,先灌给鸡一汤匙食醋,然后再杀,用文火煮炖,就会煮得烂熟;或放3~4枚山楂,鸡肉易烂   

22、老鸡鸭用猛火煮,肉硬不好吃;如果先用凉水和少许食醋泡上2小时,再用微火炖,肉就会变得香嫩可口   

23、煮老鸭:在锅里放几个田螺容易烂熟   

24、烧鸭子时,把鸭子尾端两侧的臊豆去掉,味道更美   

25、烧豆腐时,加少许豆腐乳或汁,味道芳香   

26、红烧牛肉时,加少许雪里红,肉味鲜美   

27、做红烧肉前,先用少许硼砂把肉腌一下,烧出来的肉肥而不腻,甘香可口   

28、油炸食物时,锅里放少许食盐,油不会外溅   

29、在春卷的拌馅中适量加些面粉,能避免炸制过程中馅内菜汁流出糊锅底的现象   

30、炸土豆之前,先把切好的土豆片放在水里煮一会儿,使土豆皮的表面形成一层薄薄的胶质层,然后再用油炸   

31、炸猪排时,在有筋的地方割2~3个切口,炸出来的猪排就不会收缩   

32、将鸡肉先腌一会儿,封上护膜放入冰箱,待炸时再取出,炸出的鸡肉酥脆可口   

33、煎荷包蛋时,在蛋黄即将凝固之际浇一点冷开水,会使蛋又黄又嫩   

34、煎鸡蛋时,在平底锅放足油,油微热时蛋下锅,鸡蛋慢慢变熟,外观美,不粘锅   

35、煎鸡蛋时,在热油中撒点面粉,蛋会煎得黄亮好看,油也不易溅出锅外   

36、用羊油炒鸡蛋,味香无异味   

37、炒鸡蛋时加入少量的砂糖,会使蛋白质变性的凝固温度上升,从而延缓了加热时间,加上砂糖具有保水性,因而可使蛋制品变得膨松柔软   

38、炒鸡蛋时加入几滴醋,炒出的蛋松软味香   

39、炒茄子时,在锅里放点醋,炒出的茄子颜色不会变黑   

40、炒土豆时加醋,可避免烧焦,又可分解土豆中的毒素,并使色、味相宜   

41、炒豆芽时,先加点黄油,然后再放盐,能去掉豆腥味   

42、炒波菜时不宜加盖   

43、炒肉片:肉切成薄片加酱油、黄油、淀粉,打入一个鸡蛋,拌匀,炒散;等肉片变色后,再加佐料稍炒几下,肉片味美、鲜嫩   

44、炒牛肉丝:切好,用盐、糖、酒、生粉(或鸡蛋)拌一下,加上生油泡腌,30分钟后再炒,鲜嫩可口   

45、炒肉菜时放盐过早熟得慢,宜在将熟时加盐,在出锅前再加上几滴醋,鲜嫩可口   

46、肉丝切好后放在小苏打溶液里浸一下再炒,特别疏松可口   不论做什么糖醋菜肴,只要按2份糖1份醋的比例调配,便可做到甜酸适度   

47、炒糖醋鱼、糖醋菜帮等,应先放糖,后放盐,否则食盐的“脱水”作用会促进菜肴中蛋白质凝固而“吃”不进糖分,造成外甜里淡   

48、做肉饼和肉丸子时,一公斤肉馅放2小匙盐   

49、做丸子按50克肉10克淀粉的比例调制,成菜软嫩   

50、做滑炒肉片或辣子肉丁,按50克肉5克淀粉的比例上浆,成菜鲜嫩味美   

51、做馒头时,如果在发面里揉进一小块猪油,蒸出来的馒头不仅洁白、松软,而且味香   

52、蒸馒头时掺入少许桔皮丝,可使馒头增加清香   

53、蒸馒头碱放多了起黄,如在原蒸锅水里加醋2~3汤匙,再蒸10~15分钟可变白   

54、将少量明矾和食盐放入清水中,把切开的生红薯浸入十几分钟,洗净后蒸煮,可防止或减轻腹胀   

55、牛奶煮糊了,放点盐,冷却后味道更好   

56、放有辣椒的菜太辣时或炒辣椒时加点醋,辣味大减   

57、烹调时,放酱油若错倒了食醋,可撒放少许小苏打,醋味即可消除   

58、菜太酸,将一只松花蛋捣烂放入   

59、菜太辣,放一只鸡蛋同炒   

60、菜太辣,放些醋可减低辣味   

61、菜太苦,滴入少许白醋   

62、汤太咸又不宜兑水时,可放几块豆腐或土豆或几片蕃茄到汤中;也可将一把米或面粉用布包起来放入汤中   

63、汤太腻,将少量紫菜在火上烤一下,然后撒入汤中   

64、花生米用油炸熟,盛入盘中,趁热撒上少许白酒,稍凉后再撒上少许食盐,放置几天几夜都稣脆如初   

65、菜籽油有一股异味,可把油烧热后投入适量生姜、蒜、葱、丁香、陈皮同炸片刻,油即可变香   

66、用菜油炸一次花生米就没有怪味了,炒出的菜肴香味可口,并可做凉拌菜   

67、炸完食物后的油留下一些残渣并变得混浊,可将白萝卜切成厚圆片,用筷子把萝卜戳几个洞,放入剩油中炸,残渣会附着在萝卜片上,取出清除残渣,再反复放入锅中炸,混浊的油可变清澈   

68、炒菜时应先把锅烧热,再倒入食油,然后再放菜   

69、当锅内温度达到最高时加入料酒,易使酒蒸发而去除食物中的腥味   

70、熬猪油:在电饭褒内放一点水或植物油,然后放入猪板油或肥肉,接通电源后,能自动将油炼好,不溅油,不糊油渣,油质清纯   

71、泡菜坛中放十几粒花椒或少许麦芽糖,可防止产生白花










征服Tomcat —基础篇
孙庚(javagen@gmail.com)
 软件工程师
 2004-10-22

[文章摘要]详细介绍了tomcat在windows上的配置和基本使用,适合初学者。

关键词: tomcat 基础


1. 系统环境:windows2000。

2. 需要软件:
    Tomcat安装程序,这里我用的是jakarta-tomcat-4.1.30-LE-jdk14.exe
    JDK安装程序,这里我用的是j2sdk-1_4_2_04-windows-i586-p.exe

3. 先安装JDK:
    安装过程很简单,这个JDK版本很霸道,没有提示我安装到哪个路径,直接就装在C:\j2sdk1.4.2_04了,不过没有关系。

4.安装Tomcat:
    也很简单,刚开始让你确认JDK安装的目录,估计不会认错,点确认就可以了。选了安装路径就下一步安装,在装到98%的时候他会提示你输入Tomcat的超级管理员密码,输入,下一步。在此要保证你机器的8080端口和8005端口不被其他服务占用。

    到现在,你的Tomcat已经可以运行起来了,你可以去[开始]菜单的程序里面找到“Apache Tomcat 4.1“程序组。点里面的”Start Tomcat“,弹出一个cmd窗口,内容如下:
    Starting service Tomcat-StandaloneApache Tomcat/4.1.30-LE-jdk14
    2004-10-27 17:45:29 org.apache.struts.util.PropertyMessageResources <init>
    信息: Initializing, config=’org.apache.struts.util.LocalStrings’, returnNull=true
    2004-10-27 17:45:29 org.apache.struts.util.PropertyMessageResources <init>
    信息: Initializing, config=’org.apache.struts.action.ActionResources’, returnNull=true
    2004-10-27 17:45:30 org.apache.struts.util.PropertyMessageResources <init>
    信息: Initializing, config=’org.apache.webapp.admin.ApplicationResources’,     returnNull=true
    Starting service Tomcat-Apache
    Apache Tomcat/4.1.30-LE-jdk14

    关闭Tomcat用[开始]->程序->Apache tomcat->stop tomcat
    好了,基本配置结束。


    你可以去看看tomcat安装目录(我的tomcat的安装目录在c:\tomcat),目录结构和功能简要如下:
    bin 包含启动/关闭脚本和一下系统性的运行脚本
    common 包含tomcat的一些包文件,以后用到其他的包可以直接放进去,如连接oracle的jdbc驱动等。
    conf 包含不同的配置文件, 包括 server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件web.xmllogs 日至文件
    doc 包含各种Tomcat文档
    lib 包含Tomcat使用的jar文件.unix平台此目录下的任何文件都被加到Tomcat的classpath中
    server 放了tomcat 通过web方式管理系统的程序,可通过http://loaclhost:8080/admin访问
    shared (暂时还不知道)
    temp 用于jvm放临时文件
    webapps 包含tomcat的例程和欢迎页面,可通过http://loaclhost:8080/访问

5. 建立第一个项目
    如果你在安装Tomcat过程中在选择安装那些组建时选择默认安装,那么tomcat将自动给你放进去一些例程,加上tomcat用于web管理的两个项目,你到Tomcat的webapps目录,你会看到:

    C:\tomcat\webapps>dir
    Volume in drive C has no label.
    Volume Serial Number is 8C08-1B74
    Directory of C:\tomcat\webapps
    2004-10-27 10:22 <DIR> .
    2004-10-27 10:22 <DIR> ..
    2004-01-25 21:36 697 admin.xml
    2004-10-24 20:16 <DIR> examples
    2004-01-25 21:36 435 manager.xml
    2004-10-24 20:16 <DIR> ROOT
    2004-10-24 20:16 <DIR> tomcat-docs
    2004-10-24 20:16 <DIR> webdav
    2 File(s) 1,132 bytes
    6 Dir(s) 2,025,648,128 bytes free

    可以看到Tomcat已经建立了一些项目,如admin.xml,manager.xml,root目录等,怎么方式还不一样呀?又有xml文件,又有目录,下面我来介绍tomcat配置项目的几种方式。

    Tomcat默认的项目目录就是webapps,就相当于IIS的web根目录,配置项目有几种方式(记得配置好了要重新启动tomcat):

    方式一,在webapps下直接建立目录,如你想建立一个项目在http://localhost:8080/FristProject/上访问,你可以直接在这个目录下建立FristProject文件夹;

    方式二,在webapps下建立xml文档,如你想建立FristProject这个项目,可以在这个目录下建立FristProject.xml,然后编辑这个文档如下:

    <Context path=”/FristProject” docBase=”e:\javaweb” ebug=”0″ privileged=”true”></Context>

    Path=””放你想在http://localhost:8080上要访问这个项目的路径,这里写成/FristProject就是要在http://localhost:8080/FristProject上访问这个项目。
DocBase=””放你项目文档的本地路径,这里写成了e:\javaweb(这个目录在你重新启动tomcat之前应该是已经存在的);

    方式三,编辑tomcat的安装目录下的conf/server.xml,找到</host>标签,在</host>上面建立自己的项目,如下:

    <!– Tomcat Root Context –>
    <!– <Context path=”" docBase=”ROOT” debug=”0″/> –>
    ……
    <!– start my frist project –>
    <Context path=”/FristProject” docBase=”e:\javaweb” ebug=”0″ privileged=”true”></Context>
    <!– stop my frist project –>
    </Host>
    ……

    以上的配置工作很简单,很多的参数都没有写,建议大家看看tomcat的配置文档,如出现错误所指向的文件,默认首页等,这里就不介绍了。
    重新启动tomcat后你可以在你的本地路径(docBase所指向的目录)建立一个index.html文件,内容略,看看 http://localhost:8080/FristProject/index.html能否打开,如果可以正常浏览,说明没问题了。
自己的项目建立好了,很简单吧?


6. 跑跑Jsp:
    在你建立好的本地路径这里是e:\javaweb建立index.jsp,编辑它:

    <html>
    <body>
    <title>FristJsp</title>
    <%String aa = “my frist jsp”;%>
    <%=aa%>
    <br>
    <center> Now time is: <%=new java.util.Date()%> </center>
    </body>
    </html>

    保存后,在http://localhost:8080/FristProject/index.jsp ,看看能不能访问?正确的应该是:
    my frist jsp
    Now time is:(你的系统当前时间)

    看看你的tomcat安装目录下的work\Standalone\localhost\FristProject下,应该有两个文件:
    
index_jsp.class
     index_jsp.java
    因为tomcat会在第一次运行jsp的时候编译.jsp文件,放在work下。


7. 配配JavaBean:

    tomcat对jsp以外的java程序就不是自动编译了,如:javabean,servlet都不行,这里先介绍如何配置编译环境:

    右键点[我的电脑]->属性->高级->环境变量,系统变量一栏点[新建]变量名:CLASSPATH变量值:.\;C:\j2sdk1.4.2_04\lib\dt.jar;C:\j2sdk1.4.2_04\lib\tools.jar;C:\tomcat\common\lib\servlet.jar(其中C:\j2sdk1.4.2_04用你的jdk安装路径,c:\tomcat写你tomcat的安装路径)保存,再建立一个:变量名:Path变量值:.\;C:\j2sdk1.4.2_04\bin(其中C:\j2sdk1.4.2_04为你jdk安装路径)如果你path变量已经建立,就编辑他,加上;C:\j2sdk1.4.2_04\bin,保存。之后重新启动计算机使环境变量生效。

    在你FristProject的本地目录下建立WEB-INF\classes\com,我的是E:\javaweb\WEB-INF\classes\com,在com下建立TestBean.java,编辑内容如下:

    package com;
    public class TestBean
    {
    public String getName()
    {
    String aa;
    aa = “Javagen”;
    return aa;
    }
    }

    然后进入command状态:

    C:\Documents and Settings\Administrator>e:
    E:\>cd \javaweb\WEB-INF\classes\com
    E:\javaweb\WEB-INF\classes\com>javac TestBean.java
    E:\javaweb\WEB-INF\classes\com>

    好了编译结束,你可以看到在E:\javaweb\WEB-INF\classes\com下多了TestBean.calss这个文件。

    在E:\javaweb\下建立testbean.jsp文件,编辑如下:

    <jsp:useBean id=”TestBean” class=”com.TestBean” scope=”page” />
    <html>
    <body>
    <center> my name is: <%=TestBean.getName()%> </center>
    </body>
    </html>

    好了,访问你的http://localhost:8080/FristProject/testbean.jsp,看看?
    友情提示:在tomcat下使用javabean必须放在classes/包名/,包名可以是任何英文(tomcat对这个有规范的),不能在classes下直接放javabean文件!这个是我血的教训。



8. 玩玩Servlet:

    在E:\javaweb\WEB-INF\classes\com\下建立文件HelloWorld.java,编辑如下:

    package com;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class HelloWorld extends HttpServlet
    {
    public void doGet(HttpServletRequest request, HttpServletResponse response)     throws IOException, ServletException
    {
    response.setContentType(“text/html”);
    PrintWriter out = response.getWriter();
    out.println(“<html>”);
    out.println(“<head>”);
    out.println(“<title>Hello World!</title>”);
    out.println(“</head>”);
    out.println(“<body>”);
    out.println(“<h1>Hello World!</h1>”);
    out.println(“</body>”);
    out.println(“</html>”);
    }
    }

    进入cmd窗口:

    E:\javaweb\WEB-INF\classes\com>javac TestBean.java
    E:\javaweb\WEB-INF\classes\com>

    再建立E:\javaweb\WEB-INF\web/xml,编辑如下:

    <?xml version=”1.0″ encoding=”ISO-8859-1″?>
    <!DOCTYPE web-app PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application     2.3//EN” “http://java.sun.com/dtd/web-app_2_3.dtd”>
    <web-app>
    <display-name>Fristproject</display-name>
    <description>Fristproject </description>
    <!– servlet –>
    <servlet>
    <servlet-name>HelloWorld</servlet-name>
    <display-name>HelloWorld</display-name>
    <servlet-class>com.HelloWorld</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
    </web-app>

    其中:
    <servlet>声明一个servlet
      <servlet-name>HelloWorld</servlet-name> servlet的名字
      <display-name>HelloWorld</display-name> servlet的运行名
      <servlet-class>com.HelloWorld</servlet-class> servlet的路径
    </servlet>
    <servlet-mapping> 在应用上声名servlet的
      <servlet-name>HelloWorld</servlet-name> servlet的名字
      <url-pattern>/HelloWorld</url-pattern> servlet的运行路径 就是http://localhost:8080/FristProject/HelloWorld
    </servlet-mapping>

    重新启动tomcat

     在http://localhost:8080/FristProject/HelloWorld看看?


9. 总结:
    本文中有两条主线:
    jdk的配置和java环境变量的配置:
    在安装好jdk后,一些基于jdk的程序会自动寻找jdk路径,以便调用java的各个包,比方说:tomcat,eclipse等,另有些程序不能自己去找到jdk路径,所以就要在环境变量中配置,如:path中加入jdk\bin的路径,classpath中写入运行程序的包路径等,这些在我们编辑javabean和servlet时已经用到了(一些javaIDE会自动编译你的.java文件,如Jbuilder,eclipse,resion等)。
    tomcat的配置:
    关键是配置web.xml(用于对某个tomcat项目进行配置)和server.xml(对tomcat整体配置)两个文件。
对于每个具体实现,会有不同的节点加进.xml文件去(这些xml节点并不一定是tomcat本身的).

    要学习java就要不断和xml打交道,建议多了解一下xml的资料.


参考资料:
    Tomcat中文手册
    http://www.linuxdby.com/articlesdisplay.php?newsid=63

2004.11.19第三次修改

作者信息


姓名: 孙庚
联系方式: javagen@gmail.com
简介: 软件工程师,熟悉linux oracle php ,J2EE研习者。
BLOG:www.donews.net/tssungeng/

(原创作品,转载请注明作者)

 

2004年10月27日

    搞了好几年程序,一直想学java,tomcat、resion、weblogic装了数遍,一直没有学到什么,这一次下定决心,好好搞一下。

    这个栏目命名为“跟修斯学java”,记载的内容都是原创,字符间透着欢乐也或者血的教训,希望进一步鼓励自己,也希望能够都少给大家一些启事。

2004年10月24日
  经常熬夜的人容易产生阴虚内热的症状,如能注意夜宵进行饮食调养,有利于保持精力充沛。现介绍如下:
  (1)猪腰炖杜仲:杜仲25克、猪腰子1个(去筋膜),水适量。隔水炖1小时。每日或隔日服食1次。具有滋补肝肾、强筋壮骨之功效。适用于熬夜后腰酸背痛、四肢乏力者服用。

  (2)莲子百合煲瘦肉:莲子(去芯)20克、百合20克、猪瘦肉100克。加水适量同煲,肉熟烂后用盐调味食用。每日1次。具有清心润肺、益气安神之功效。适宜于熬夜后干咳、失眠、心烦、心悸等症者食用。

  (3)生地炖鸭蛋:生地20克、鸭蛋1-2个,加水适量隔水炖之。蛋熟后去壳,再放入汁中炖20分钟。加冰糖适量调味,食蛋饮汁。每日1次或每周2-3次。具有滋阴清热、生津止渴等功效。适宜于熬夜后口燥咽干、牙龈肿痛、手足心热者食用。

  (4)粉葛生鱼汤:粉葛(用葛根制成的粉皮)250克,洗净切块,生鱼(乌鱼)1条,加水适量共煲。鱼熟后放入生姜丝、油、盐调味,食鱼饮汤。每日或隔日1次,有舒筋活络、益气和血、解除肌痛等功效。适用于熬夜后肌肉酸痛、颈部胀痛者服用。

  (5)夏枯草煲瘦肉:夏枯草10克、猪瘦肉50-100克,水适量共煲,肉熟后加盐少许调味,吃肉喝汤。每日1次。具有清肝火、降血压的功效。适宜于熬夜后血压升高、头晕、头痛及眼红者服用。