天天范文

诺曼底号遇难记读书心得感悟(通用18篇)

诺曼底号遇难记读书心得感悟 篇1

这学期,我们学了一篇课文《诺曼底号遇难记》,文中主要讲了:1870年3月17日夜晚,一艘叫“诺曼底”号的大轮船由南安普敦行驶向格恩西岛,当轮船行驶到相距埃居伊山脉约十五海里处,遇到大雾弥漫,一片漆黑,与名叫“玛丽”号的大轮相撞。刹那间,轮船上的人惊恐万状,一片混乱,海水不停地往里灌,一切危在旦夕。在最终的二十分钟里,哈尔威船长应对惊恐的众人,镇定自若,指挥着救援工作,六十个人顺利脱险,而哈尔威船长却随着轮船一齐沉入了深渊。

诺曼底号遇难记读书心得感悟(通用18篇)

哈尔威船长真了不起,他把生的期望让给了别人,把死的危险久别留给自我。当我读到:“眼看就要撞船,已经没有任何办法避开它了。一瞬间,大雾中似乎耸起许许多多船只的幻影,人们还没有的`及一一看清,就要死到临头,葬身鱼腹了。”读到那里让我感受到当时的情景十分危急,很快“诺曼底”号大轮船就要和“玛丽”大轮船相撞了,所以在船上的人都在想自我都快要死了。

我读了《诺曼底号遇难记》后,十分敬佩哈尔威船长。我认为哈尔威船长是一个镇定自若,忠于职守,舍已救人的人,这种精神我们要像你学习!

诺曼底号遇难记读书心得感悟 篇2

这周,我们学习了《“诺曼底”号遇难记》一文,其中,我对老船长的印象最深。

这篇文章生动地描述了人物的动作,语言。写了老船长营救了船上所有的人,自我却与轮船一齐沉入深渊。是啊,事情总是这样,哪里有可悲的利己主义,哪里也会有悲壮的舍己救人。哈尔威船长就是这次海难中那位舍己救人的英雄。

……必须把六十人就出去!实际上一共有六十一人,可是他把自我给忘了。”从这儿看出,哈尔威船长想到的仅有别人,他是以别人为中心,不是自我。再苦再累,他都宁愿自我牺牲,也要把那些无辜的群众就出去。

哈尔威船长,虽然牺牲了,可是他的名字会永远铭刻在我们心中。他是一位伟大的船长,他是一位会名扬千古的英雄。

由此,我又想到了另外一个故事,是教师给我们讲的一个既感人又令人气愤的故事,《红海绝恋:新泰坦尼克号传奇》。其中那位船长在船失事后,不组织人们自救,竟然带着几名船员开着小艇逃走了。他的做法和老船长截然不一样,他是丢弃了那些无辜的人让一千多人葬身红海,而哈尔威船长舍生忘死拯救那些无辜的人。

我体会到,做人,要做哈尔威船长那样的人,首先应当想到别人,不要有什么可悲的利己主义。可千万不要像那个令人发指的红海船长,虽然名字也在人们口中传来传去,确实臭名远扬。这是我学习这篇文章最大的收获。

哈尔威船长,是我们做人的丰碑!

诺曼底号遇难记读书心得感悟 篇3

最近,老师教了我们一篇课文《“诺曼底”号遇难记》。自从学习了这篇课文,让我受益匪浅……

这篇课文主要讲了,在一次夜间里,一艘名叫“玛丽”号的的船撞到了一艘名叫“诺曼底”号的船。没想到,这一撞竟把“诺曼底”号给撞坏了。人们惊慌失措,后来经过哈尔威船长的指挥,让你们顺利逃生了,可是哈尔威船长却牺牲了。

这件事情告诉我们做什么事情都不能自私自利,要懂得为别人着想,不能处处只想到自己,因为这样会使别人非常的讨厌你,使你一个朋友也没有。

这篇课文对我的感触很太深了,不禁让我想到一件令我十分后悔的事……

有一次,我独自一人去买东西,偶然一瞬间,我在公路上看到一位盲老人正在过马路,我刚想跑过去扶他过马路,可是,脑子里出现了善、恶两位天使:善天使说:“快过去啊!这位老人现在需要你的帮助!”恶天使说:“你管他的,反正路上行人么多,也不差你一个。”

善天使连忙反驳:你别听恶天使乱说,如果你像恶天使说的说的那样做,你会后悔一辈子的!“恶天使又说:”你管他什么后悔,以后还不一定会发生什么呢!“说完后,他们便消失了。我仔细想了一番,最后我想:管他的,我不帮助他他又不会死!我管他的!说完,便买我的东西去了。

善天使说得不错,这件事真令我后悔一辈子,我常常为自己的自私懊悔着。

它,像灯一样,为我们指明前方的路,它,像警钟一样,时时提醒着我们,它,像一抹清泉,涌过我幼小的心田。

诺曼底号遇难记读书心得感悟 篇4

美国一家报纸在醒目的位置刊登了“9·11”灾难中一名美国公民的生命留言。:“妈妈,我爱您。”我读了这篇文章,十分感动和深受启发。

每个人都会得到母爱,我也不例外。但我就觉得母亲很烦。因为每一天放学回家,母亲都问我在学校吃饱了没有?,还有每一天早晨他都会说路上细心点……自从我学了这篇文章,我再也不觉得母亲烦了。

我的好朋友十分的孝顺。只要他母亲生病时,他就陪在她母亲身边一口一口的喂他吃饭。虽然看到她帮她母亲做这些事。我虽然十分的羡慕嫉妒恨,但我也全力以赴的也在做这些事情。

妈妈,我爱您。”这句话有人经常挂在嘴边,可是任何实际行动都没有。“妈妈我爱您。”不仅仅体此刻口头上,还要体此刻实际行动上。妈妈在什么时候都会挂念你。担心你:吃的好不好?睡得好不好?有时母亲只因为你的一小件事情而感动,也会因为你的一小句话而感动。,母亲不需要十分多的钱,只需要你陪一陪她

爱是伟大的,只要你明白母爱是我们需要的,只要你明白母爱是我们需要的,可是我明白母爱是每个孩子都需要有的,我听到《世上仅有妈妈好》这首歌,我的心境十分低落,如果母亲去世我怎样办?我们应当在母亲健在的光阴,赶快为你的父母尽一份孝心吧。

世间的财富并不重要,比这个重要的是母爱和亲情。

诺曼底号遇难记读书心得感悟 篇5

“滚滚长江东逝水,浪花淘尽英雄。是非成败转头空…….”这是《三国演义》的开篇词。在这个暑假,我看了《三国演义》,深有感触。《三国演义》写了黄巾起义、董卓之乱、群雄逐鹿、三足鼎立、三国归晋这五个部分。在其中涌现出了许多英雄人物,最让我印象深刻的就是诸葛亮了。

在书中,诸葛亮是智慧的化身。在《草船借箭》一章中,诸葛亮提前预算好了大雾,水流以及曹操、鲁肃的性格,从而三天内“造”了十万支箭,完成了都督周瑜的任务。要知道在那时,想要计算好大雾、长江的水流和“人心”可不简单!诸葛亮早就猜透周瑜想害他的用心;委托忠厚老实的鲁肃,得到了借箭的材料;通过观察天象、大雾和长江水流利“借”到东风;最精妙的算计曹操的心思,要知道,曹操也是三国时期的军事家,曾用几万兵在官渡打败了袁绍几十万大军呢!但是“聪明反被聪明误”,诸葛亮正是利用了曹操生性多疑这个特点,综合这些因素,诸葛亮才能成功“借”到了十万支箭,他是多么智慧的人啊!但是他的聪明才智来自哪里?来源于他的好学。诸葛亮8岁以前父母双亡,和弟弟一起在叔父家过日子。在失去双亲的日子里,诸葛亮十分好学,饱读诗书,最终为刘备立下了汗马功劳。

智慧来自于后天的努力。在我们的生活中,也不乏这样智慧之人。匡衡家中贫困,看书无灯,于是他想了一个办法----把墙打小孔,晚上借着邻居家的灯光看书,最后成为了名人。范仲淹亦是如此,通过少年时期的勤奋努力获得了不少成就,写下了“先天下之忧而优,后天下之乐而乐。”的千古名篇。

智慧,不是一个人天生拥有的,而是经过后天不懈努力换来的。我们应该像古代那些伟人一样,多学习,勤思考,成为有学问的人。

诺曼底号遇难记读书心得感悟 篇6

刚开始看《飘》的时候,总会觉得女主角斯嘉丽本人没有什么高尚的品格吸引我,只是觉得她单纯是个喜欢游玩,喜欢舞会的肤浅姑娘,并整天周旋于那些围着她转的崇拜者和她所欣赏的人。

当斯嘉丽向阿希礼建议与自己私奔被拒后,便任性的与自己不爱的查尔斯结婚,岂料南北战争却夺取了她丈夫的生命,自那斯嘉丽便成了个带着孩子的寡妇,这对生性活泼好动的斯嘉丽好说无疑是个难以忍受的结果。由于战争斯嘉丽家里变得一团糟,十口人的生活遇到前所没有的困难,这时斯嘉丽开始变得强韧起来,她靠着自己的力量撑起了家中的重担,展现了女性的毅力和魄力。

在爱情方面,虽然斯嘉丽历经了许多波折,并很久都搞不清自己的真实情感,但最后还是弄清了自己爱的其实是常在患难时给她勇气,让她踏实的瑞特,最终两人还是成就了一段美好良缘。

“还是留给明天去想吧……不管怎么说,明天又是新的一天……”这句是斯嘉丽的名句,其中透着美好的乐观情绪。当我们遇到困难无所适从的时候,我们不妨想想这句,它会给我们力量!

诺曼底号遇难记读书心得感悟 篇7

毋庸置疑,清官者,名垂千古、流芳百世,皆因人们拥戴清官、热爱清官。黑脸的包龙图,在中国人的心目中,始终是一片惩奷除恶的“大青天”。奷臣者,遭人唾骂,遗臭万年,皆因人们憎恨奷臣、厌恶奷臣。残害忠良的秦桧,在中国人的心目中,永远是跪在岳飞墓前的(前些时候,看到网上传言,秦桧在家乡已站起来了,此刻的社会价值取向真得让人迷惘和心寒)。

刘鹗的《老残游记》中写了二个清官,读后,却让人别有一番滋味在心头。

第一个“清官”是玉贤。该人是因为“办强盗办的好”而“补曹州府”(见第三回)。他办强盗究竟办得怎样样好呢?书中写道:“不到一年竟有路不拾遗的景象。”

玉贤大人对于“止盗”采用的方法却是“堵”。他在“衙门口有十二架站笼,天天不得空”(见第五回),“未到一年,站笼站死两千多人”(见第三回)。就曹州府这么一个小地方,一年不到的时间,就被玉贤拿住并站死的所谓强盗有两千多人。这么一个地方哪里来的这么多强盗,全都是由于“他(指玉贤大人)随便见着什么人,只要不顺他的眼,他就把他用站笼站死;或者说话说的不得法,犯到他手里,也是一个死。”玉贤虽然做到了“路不拾遗”,在上级眼中能干的,在百姓眼中却是残暴的。此人表面清廉,实则却是一个不折不扣的酷吏,为了让自我升官,竟然不顾百姓死活,不问青红皂白,用百姓之血染红自我官帽上的顶珠。老残在客店的墙上写下一首诗,对此进行了无情的批判:“得失沦肌髓,因之急事功。冤埋城阙暗,血染顶珠红。处处鸺鹠雨,山山虎豹风。杀民如杀贼,太守是元戎。”

第二个“清官”是刚弼。此人不一样于玉贤,玉贤是一心为升官,急于干出一番政绩来,以博取上级欢心,所以以残酷治民,是一个实足的“酷吏”。而刚弼却不为升官,以“清廉自命(见第

十六回)”。此人清廉确也真得清廉,然而,此人却是刚愎自用,却又昏庸无能之辈。对于刚弼这种所谓“清官”,白太尊有一段分析很是精辟,也很是一针见血:“清廉人是最令人佩服的,仅有一个脾气不好,他总觉得天下都是小人,仅有他一个人是君子。这个念头最害事的,把天下大事不知害了多少。”

对这些昏庸、残暴之辈,老残认为:“官愈大,害愈甚。守一府则一府伤,抚一省则一省伤,宰天下则天下死!(见第六回)”在那样的年代,能说出如此之话,实为不易,真可谓是震聋发馈之声也!

《老残游记》是中国四大讽刺小说之一,作者刘鹗学识渊博,在算学、医道、治河等方面均有出类拔萃的成就,所以,就小说资料而言,涉及各种自然科学范围颇广。尤其难能可贵的是,作者的文采也是相当不错,异常是对山东济南一带的风情描述,让人印象深刻,过目不忘,读后收获颇丰。当然,刘鹗对于所谓“清官”的讽刺,悠悠以为,多少有些过了。清官毕竟是人人诵之,人人赞之。纵观中华民族上下五千年之渊源历史,清官不是多了,而是少之又少,恰如当代社会中的珍稀动物。刘鹗所写的“清官”实非“清官”也,这些人充其量可是是沽名钓鱼之辈而已。

诺曼底号遇难记读书心得感悟 篇8

注:框架可以用word菜单中的 “视图/文档结构图” 看到

j2ee模式

value object(值对象) 用于把数据从某个对象/层传递到其他对象/层的任意java对象。

通常不包含任何业务方法。

也许设计有公共属性,或者提供可以获取属性值的get方法。

jsp

的基础知识

__

_____ | directive (指令)

| |-- scripting (脚本)

jsp -------| |__ action (动作)

|

|_____template data :除jsp语法外,jsp引擎不能解读的东西

1)在jsp中使用的directive(指令)主要有三个:

a) page指令

b) include指令

c) taglib指令

在jsp的任何地方,以任何顺序,一个页面可以包含任意数量的page指令

2)scripting(脚本)包括三种类型

a) ;

b) ;

c) ;

3)action(动作)

标准的动作类型有:

a) ;

b) ;

d) ;

e) ;

f) ;

g) ;

h) ; 日记日记300字

1. 注释: ;

;

2. ;

session可以不赋值,默认为true,如果session=”false”,则在jsp页面中,隐含的变量session就不能使用。

3. 请求控制器结构(request controller)

也被称之为jsp model 2 architecture

这种途径涉及到使用一个servlet或一个jsp作为一个应用程序或一组页面的入口点。

为创建可维护的jsp系统,request controller是最有用的方式之一。

不是jsp,而是java类才是放置控制逻辑的正确的地方。

请求控制器的命名模式为:

请求控制器类的命名模式为: requestcontroller

中的javabean

jsp三种bean的类型

1) 页面bean

2) 会话bean

3) 应用bean

大多数的系统会使用一个会话bean来保持状态,而对每一个页面使用一个页面bean 来对复杂的数据进行表示。

页面bean是一个模型,而jsp是一个视图。

om tag

bean是信息的携带者,

而tag更适用于处理信息。

标记库包含一个标记库描述符(tld)和用于实现custom tag的java类

在翻译阶段,jsp容器将使用tld来验证页面中的所有的tag是否都被正确的使用。

标记处理程序只是一个简单的适配器,而真正的逻辑是在另一个类中实现的,标记处理程序只是提供了一个供其他的可复用的类的jsp接口

servlet

letconfig

 一个servletconfig对象是servlet container在servlet initialization的时候传递给servlet的。

servletconfig包涵 servletcontext 和 一些 name/value pair (来自于deployment descriptor)

 servletcontext接口封装了web应用程序的上下文概念。

2.会话跟踪

1) session

 当一个client请求多个servlets时,一个session可以被多个servlet共享。

 通常情况下,如果server detect到browser支持cookie,那么url就不会重写。

2) cookie

 在java servlet中,如果你光 cookie cookie = new cookie(name,value)

那么当用户退出browser时,cookie会被删除掉,而不会被存储在客户端的硬盘上。

如果要存储 cookie,需加一句 axage(200)

 cookie是跟某一个server相关的,运行在同一个server上的servlet共享一个cookie.

3) url rewriting

在使用url rewriting来维护session id的时候,每一次http请求都需要encodeurl

典型的用在两个地方

1) t(“form action=” ”);

t(deurl(“sessionexample”));

t(“form action=” ”);

t(“method = get>;”);

2) t(“

;

t(deurl(“sessionexample?database=foo&datavalue=bar”));

tln(“” >;url encoded ;”);

lethreadmodel

默认的,每一个servlet definition in a container只有一个servlet class的实例。

只有实现了singlethreadmodel,container才会让servlet有多个实例。

servlet specification上建议,不要使用synchronized,而使用singlethreadmodel。

singlethreadmodel(没有方法)

保证servlet在同一时刻只处理一个客户的请求。

singlethreadmodel是耗费资源的,特别是当有大量的请求发送给servlet时,singlethreadmodel的作用是使包容器以同步时钟的方式调用service方法。

这等同于在servlet的service方法种使用synchronized.

single thread model一般使用在需要响应一个heavy request的时候,比如是一个需要和数据库打交道的连接。

2. 在重载servlet地init( )方法后,一定要记得调用( );

3. the client通过发送一个blank line表示它已经结束request

而the server通过关闭the socket来表示response已结束了。

4. 一个http servlet可以送三种东西给client

1) a single status code

2) any number of http headers

3) a response body

5. servlet之间信息共享的一个最简单的方法就是

(“key”,”value”);

6. post和get

post:将form内各字段名称和内容放置在html header内传送给server

get: ?之后的查询字符串要使用urlencode,经过urlencode后,这个字符串不再带有空格,以后将在server上恢复所带有的空格。

get是web上最经常使用的一种请求方法,每个超链接都使用这种方法。

7. 就是web applicatin 的deployment descriptor

作用有:组织各类元素

设置init param

设置安全性

8. request dispatcher用来把接收到的request forward processing到另一个servlet

要在一个response里包含另一个servlet的output时,也要用到request dispatcher.

9. servlet和jsp在同一个jvm中,可以通过serveltcontext的

setattribute( )

getattribute( )

removeattribute( )

来共享对象

10. 利用arameter( )得到的string存在字符集问题。

可以用 strtitle = arameter(“title”);

strtitle = new string(ytes(“8859-1”),”gb2312”);

如果你希望得到更大得兼容性

string encoding = haracterencoding;

//确定application server用什么编码来读取输入的。

strtitle = new string(ytes(encoding),”gb2312”);

xml

基础知识

1. 一个xml文档可以分成两个基本部分:

首部( header )

内容( content )

2. xml名字空间规范中指定:

xml文档中的每一个元素都处在一个名字空间中;如果没有指定的名字空间,缺省的名字空间就是和该元素相关联的名字空间。

3. a document that is well-formed obeys all of the rules of xml documents (nested tags, etc.)

" if a well-formed document uses a document type definition (more on these in a minute), and it follows all the rules of the dtd, then it is also a valid document

4. a tag is the text between the ;

" an element is the start tag, the end tag,and everything (including other elements) in between

5. 标签( tags ) 实际上包含了“元素”( elements ) 和 “属性”( attributes )两部分。

用元素( elements )来描述有规律的数据。

用属性( attributes ) 来描述系统数据。

如果你有一些数据要提供给某个应用程序,该数据就可能要用到一个元素。

如果该数据用于分类,或者用于告知应用程序如何处理某部分数据,或者该数据从来没有直接对客户程序公开,那么它就可能成为一种属性。

6. cdata (读作:c data ) c是character的缩写。

er

/|

eader

/|

arser

ervice

2.1 webservice的基本概念

webservice是一种可以接收从internet或者intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。

这种技术允许网络上的所有系统进行交互。随着技术的发展,一个web服务可以包含额外的指定功能并且可以在多个b2b应用中协作通讯。

web服务可以理解请求中上下文的关系,并且在每一个特定的情况下产生动态的结果。这些服务会根据用户的身份,地点以及产生请求的原因来改变不同的处理,用以产生一个唯一的,定制的方案。这种协作机制对那些只对最终结果有兴趣的用户来说,是完全透明的。

uddi

在用户能够调用web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件。所以,我们需要一种方法来发布我们的web服务。

uddi (universal description, discovery, and integration) 是一个主要针对web服务供应商和使用者的新项目。uddi 项目中的成员可以通过uddi business registry (ubr) 来操作web服务的调用,ubr是一个全球性的服务。

web服务供应商可以在ubr中描述并且注册他们的服务。

用户可以在ubr中查找并定位那些他们需要的服务。

uddi是一种根据描述文档来引导系统查找相应服务的机制。

uddi包含标准的“白皮书”类型的商业查询方式,

“黄皮书”类型的局部查找,以及

“绿皮书”类型的服务类型查找。

uddi利用soap消息机制(标准的xml/http)来发布,编辑,浏览以及查找注册信息。它采用xml格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

wsdl

对于商业用户来说,要找到一个自己需要使用的服务,他必须知道如何来调用。

wsdl (web services description language) 规范是一个描述接口,语义以及web服务为了响应请求需要经常处理的工作的xml文档。这将使简单地服务方便,快速地被描述和记录。

以下是一个wsdl的样例:

targetnamespace=""

xmlns:tns="" (5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)

xmlns:xsd1=""

xmlns:soap=";

xmlns=";>;

xmlns=";>;

type="tns:stockquoteporttype">;

transport=";/>;

soapaction=""/>;

;my first service;

它包含了以下的关键信息:

消息的描述和格式定义可以通过xml文档中的;和; 标记来传送。

; 标记中表示了消息传送机制。 (e.g. request-only, request-response, response-only) 。

; 标记指定了编码的规范 。

; 标记中表示服务所处的位置 (url)。

wsdl在uddi中总是作为一个接口描述文档。因为uddi是一个通用的用来注册wsdl规范的地方,uddi的规范并不限制任何类型或者格式描述文档。这些文档可能是一个wsdl文档,或者是一个正规的包含导向文档的web页面,也可能只是一个包含联系信息的电子邮件地址。

现在java提供了一个 java api for wsdl (jwsdl)规范。它提供了一套能快速处理wsdl文档的方法,并且不用直接对xml文档进行操作,它会比jaxp更方便,更快速。

soap

当商业用户通过uddi找到你的wsdl描述文档后,他通过可以simple object access protocol (soap) 调用你建立的web服务中的一个或多个操作。

soap是xml文档形式的调用商业方法的规范,它可以支持不同的底层接口,象http(s)或者smtp。

之所以使用xml是因为它的独立于编程语言,良好的可扩展性以及强大的工业支持。之所以使用http是因为几乎所有的网络系统都可以用这种协议来通信,由于它是一种简单协议,所以可以与任何系统结合,还有一个原因就是它可以利用80端口来穿越过防火墙。

soap的强大是因为它简单。soap是一种轻量级的,非常容易理解的技术,并且很容易实现。它有工业支持,可以从各主要的电子商务平台供应商那里获得。

从技术角度来看,soap详细指明了如何响应不同的请求以及如何对参数编码。一个soap封装了可选的头信息和正文,并且通常使用http post方法来传送到一个http 服务器,当然其他方法也是可以的,例如smtp。soap同时支持消息传送和远程过程调用。以下是一个soap请求。

post /stockquote http/1.1

host: kquoteserver

content-type: text/xml; charset="utf-8"

content-length: nnnn

soapaction: "some-uri"

xmlns:soap-env=";

〖5〗〖6〗〖7〗〖8〗〖9〗〖10〗〖11〗〖12〗〖13〗〖14〗〖15〗

soap-env:encodingstyle=";/>;

;sunw;

jaxr

为了支持uddi在java平台上的功能,java apis for xml registries (jaxr)允许开发者来访问注册中心。

值得注意的是,jaxr并不是建立web服务必需的,你可以利用其他常用的xml apis来直接集成这些协议。

jaxr是一个方便的api,它提供了java api来发布,查找以及编辑那些注册信息。它的重点在于基于xml的b2b应用,复杂的地址本查找以及对xml消息订阅的支持等web服务。

它也可以用来访问其他类型的注册中心,象ebxml注册中心。

这些对web服务的注册信息进行的操作,可以使用当前的一些web服务工具来完成(例如第三方的soap和ebxml消息工具)。另外,当jaxp提供了一致并具有针对性的api来完成这些操作,这将使开发变得更加容易。

jax/rpc

为了使开发人员专注于建立象soap那样的基于xml的请求,jcp正在开发基于rpc (jax/rpc) 的java api。jax/rpc是用来发送和接收方法调用请求的,它基于xml协议,象soap,或者其他的象xmlp (xml protocol,要了解更多可以参考)。jax/rpc使你不用再关注这些协议的规范,使应用的开发更快速。不久,开发人员就不用直接以xml表示方法调用了。

目前有很多第三方实现了soap,开发人员可以在不同的层次上调用soap,并选择使用哪一种。将来,jax/rpc会取代这些apis并提供一个统一的接口来构造以及处理soap rpc请求。

在接收一个从商业伙伴那里过来的soap请求的时候,一个java servlet用jax/rpc来接收这个基于xml的请求。一旦接收到请求后,servlet会调用商务方法,并且把结果回复给商业伙伴。

jaxm

当从商业合作伙伴那里接收一个web服务的请求时,我们需要java api实现一个servlet来处理ebxml消息,就象我们用jax/rpc来处理soap请求一样。

java api for xml messaging (jaxm) 是集成xml消息标准(象ebxml消息或者soap消息)的规范。

这个api是用来推动xml消息处理的,它检测那些预定单的消息格式以及约束。它控制了所有的消息封装机制,用一种直观的方式分割了消息中的信息,象路由信息,发货单。这样,开发人员只要关注消息的有效负载,而不用去担心那些消息的重复处理。

目前的开发人员用jaxp来实现jaxm将要提供的功能,jaxm将会提供一套非常具有针对性的api来处理基于xml的消息传送。这将大大简化开发人员的代码,并使它们具有统一的接口。

jaxm和jax/rpc的差别在于处理消息导向的中间件以及远程过程调用的不同。jaxm注重于消息导向,而jax/rpc是用来完成远程过程调用的。以下是图解。

请注意,在jaxm 和 jax/rpc技术成熟之前,开发人员还是依赖于第三方的soap apis,象apache soap, idooxoap, 以及 glue。当jaxm 和 jax/rpc正式发布后,它将为当前不同的soap和ebxml消息提供统一的接口。就象jdbc位多种不同的数据库提供统一的接口。

jaxb

xml绑定技术可以把xml文档和java对象进行自由转换。

用jaxb,你可以在后台的ejb层,把xml文档转换成java对象。同样你也可以把从ejb中取出的java对象转换成xml文档返回给用户。

jaxb接口提供了比sax和dom更高级的方法来处理xml文档。它提供的特性可以在xml数据和java类之间互相映射,提供了一个简单的方法来转换xml数据。它比逐个解析标记更简单。

2.2 建立weservice的步骤

在建立weservice的时候,有三个主要步骤:

1.建立客户端联接

为了允许applets,applications,商业合作伙伴,浏览器和pdas 使用web服务。

2.实现web服务

包括工作流,数据传送,商业逻辑以及数据访问。这些功能是隐藏在web服务后,并且为客户端工作的。

3.联接后台系统

这个系统可能包括一个或多个数据库,现存的企业信息系统,商业合作伙伴自己的系统或者web服务,以及在多个系统中共享的数据。

基于j2ee的web服务的核心构架:

rmi

1. rmi-iiop

2. rmi 是在java中使用remote method invocation的最初的方法,rmi使用包

rmi-iiop 是rmi的一个特殊版本,rmi-iiop可以和corba兼容,rmi-iiop使用包和

jaf(java活动构架)

开发者可以使用jaf来决定任意一块数据的类型、封装对数据的访问、寻找合适的操作、实例化相关的bean来执行这些操作等。

例如,javamail就是使用jaf根据mime类型来决定实例化那一个对象。

ejb

1. ejb组件实现代码的限制

ejb组件的约束

ejb的开发者并不需要在ejb的组件实现代码中编写系统级的服务,ejb提供商/开发

者需知道并且严格地遵守一些限制,这些限制与开发稳定的和可移植的ejb组件的利益有 <1><2><3><4><5><6><7><8><9><10><11><12><13><14><15>

关。

以下是你应该回避使用的一些java特色,并且在你的ejb组件的实现代码中要严格限

制它们的使用:

1.使用static,非final 字段。建议你在ejb组件中把所有的static字段都声明为final型的。这样可以保证前后一致的运行期语义,使得ejb容器有可以在多个java虚拟机之间分发组件实例的灵活性。

2.使用线程同步原语来同步多个组件实例的运行。避免这个问题,你就可以使ejb容器灵活的在多个java虚拟机之间分发组件实例。

3.使用awt函数完成键盘的输入和显示输出。约束它的原因是服务器方的商业组件意味着提供商业功能而不包括用户界面和键盘的i/o功能。

4.使用文件访问/ 操作。ejb商业组件意味着使用资源管理器如jdbc来存储和检索数据而不是使用文件系统api。同时,部署工具提供了在部署描述器(descriptor)中存储环境实体,以至于ejb组件可以通过环境命名上下文用一种标准的方法进行环境实体查询。所以,使用文件系统的需求基本上是被排除了。

5.监听和接收socket连接,或者用socket进行多路发送。ejb组件并不意味着提供网络socket服务器功能,但是,这个体系结构使得ejb组件可以作为socket客户或是rmi客户并且可以和容器所管理的环境外面的代码进行通讯。

6.使用映象api查询ejb组件由于安全规则所不能访问的类。这个约束加强了java平台的安全性。

7.欲创建或获得一个类的加载器,设置或创建一个新的安全管理器,停止java虚拟机,改变输入、输出和出错流。这个约束加强了安全性同时保留了ejb容器管理运行环境的能力。

8.设置socket工厂被url's serversocket,socket和stream handler使用。避免这个特点,可以加强安全性同时保留了ejb容器管理运行环境的能力。

9.使用任何方法启动、停止和管理线程。这个约束消除了与ejb容器管理死锁、线程

和并发问题的责任相冲突的可能性。

通过限制使用10-16几个特点,你的目标是堵上一个潜在的安全漏洞:

10.直接读写文件描述符。

11.为一段特定的代码获得安全策略信息。

12.加载原始的类库。

13.访问java一般角色所不能访问的包和类。

14.在包中定义一个类。

15.访问或修改安全配置对象(策略、安全、提供者、签名者和实体)。

16.使用java序列化特点中的细分类和对象替代。

17.传递this引用指针作为一个参数或者作为返回值返回this引用指针。你必须使用

sessioncontext或entitycontext中的getejbobject的结果。

java2平台的安全策略

以上所列的特点事实上正是java编程语言和java2标准版中的标准的、强有力的特色。ejb容器允许从j2se中使用一些或全部的受限制的特色,尽管对于ejb组件是不可用的,但需通过j2se的安全机制来使用而不是通过直接使用j2se的api。

java2平台为ejb1.1规范中的ejb容器所制定的安全策略定义了安全许可集,这些许可在ejb组件的编程限制中出现。通过这个策略,定义了一些许可诸如:permission,ermission,ectpermission,ritypermission,以便加强先前所列出的编程限制。

许多ejb容器没有加强这些限制,他们希望ejb组件开发者能遵守这些编程限制或者是带有冒险想法违背了这些限制。违背这些限制的ejb组件,比标准方法依赖过多或过少的安全许可,都将很少能在多个ejb容器间移植。另外,代码中都将隐藏着一些不确定的、难以预测的问题。所有这些都足以使ejb组件开发者应该知道这些编程限制,同时也应该认真地遵守它们。

任何违背了这些编程限制的ejb组件的实现代码在编译时都不能检查出来,因为这些特点都是java语言和j2se中不可缺少的部分。

对于ejb组件的这些限制同样适用于ejb组件所使用的帮助/访问(helper/access)类,j2ee应用程序使用java文档(jar)文件格式打包到一个带(代表enterprise archive)扩展名的文件中,这个ear文件对于发送给文件部署器来说是标准的格式。ear文件中包括在一个或多个ejb-jar文件中的ejb组件,还可能有ejb-jar所依赖的库文件。所有ear文件中的代码都是经过深思熟虑开发的应用程序并且都遵守编程限制和访问许可集。

未来版本的规范可能会指定通过部署工具来定制安全许可的能力,通过这种方法指定了一个合法的组件应授予的许可权限,也指定了一个标准方法的需求:如从文件系统中读文件应有哪些要求。一些ejb容器/服务器目前在它们的部署工具中都提供了比标准权限或多或少的许可权限,这些并不是ejb1.1规范中所需要的。

理解这些约束

ejb容器是ejb组件生存和执行的运行期环境,ejb容器为ejb组件实例提供了一些服务如:事务管理、安全持久化、资源访问、客户端连接。ejb容器也负责ejb组件实例整个生命期的管理、扩展问题以及并发处理。所以,ejb组件就这样寄居在一个被管理的执行环境中--即ejb容器。

因为ejb容器完全负责ejb组件的生命期、并发处理、资源访问、安全等等,所以与容器本身的锁定和并发管理相冲突的可能性就需要消除,许多限制都需要使用来填上潜在的安全漏洞。除了与ejb容器责任与安全冲突的问题,ejb组件还意味着仅仅聚焦于商务逻辑,它依赖于ejb容器所提供的服务而不是自己来直接解决底层的系统层的问题。 3 4 5 6 7 8 9 10 11 12 13 14 15

可能的问题

通常,ejb组件在容器之间的移植不可避免地与如下问题相关:

1.它需要依靠的受限制的特点在特定ejb容器中没有得到加强。

2.它需要依靠的非标准的服务从容器中可获得。

为了保证ejb组件的可移植性和一致的行为,你应该使用一个具有与java2平台安全

策略集相一致的策略集的容器来测试ejb组件,并且其加强了前述的编程限制。

总结

ejb组件开发者应该知道这些推荐的关于ejb组件的编程限制,明白它们的重要性,并且从组件的稳定性和可移植性利益方面考虑来遵循它们。因为这些编程限制能阻止你使用标准的java语言的特点,违背了这些编程限制在编译时不会知道,并且加强这些限制也不是ejb容器的责任。所有这些原因都使你应很小心地遵守这些编程限制,这些限制在组件的合同中已经成为了一个条款,并且它们对于建造可靠的、可移植的组件是非常重要的。

2. 优化ejb

entity bean为在应用程序和设计中描述持久化商业对象(persistent business objec ts)提供了一个清晰的模型。在java对象模型中,简单对象通常都是以一种简单的方式进行处理但是,很多商业对象所需要的事务化的持久性管理没有得到实现。entity bean将持久化机制封装在容器提供的服务里,并且隐藏了所有的复杂性。entity bean允许应用程序操纵他们就像处理一个一般的java对象应用。除了从调用代码中隐藏持久化的形式和机制外,entity bean还允许ejb容器对对象的持久化进行优化,保证数据存储具有开放性,灵活性,以及可部署性。在一些基于ejb技术的项目中,广泛的使用oo技术导致了对entity bean的大量使用,sun的工程师们已经积累了很多使用entity bean的经验,这篇文章就详细阐述的这些卡发经验:

*探索各种优化方法

*提供性能优化和提高适用性的法则和建议

*讨论如何避免一些教训。

法则1:只要可以,尽量使用cmp

cmp方式不仅减少了编码的工作量,而且在container中以及container产生的数据库访问代码中包括了许多优化的可能。container可以访问内存缓冲中的bean,这就允许它可以监视缓冲中的任何变化。这样的话就在事物没有提交之前,如果缓存的数据没有变化就不用写到数据库中。就可以避免许多不必要的数据库写操作。另外一个优化是在调用find方法的时候。通常情况下find方法需要进行以下数据库操作:

查找数据库中的纪录并且获得主键

将纪录数据装入缓存

cmp允许将这两步操作优化为一步就可以搞定。[具体怎么做我也没弄明白,原文没有具体阐述]

法则2:写代码时尽量保证对bmp和cmp都支持

许多情况下,ejb的开发者可能无法控制他们写的bean怎么样被部署,以及使用的container是不是支持cmp.

一个有效的解决方案是,将商业逻辑的编码完全和持久化机制分离。再cmp类中实现商业逻辑,然后再编写一个bmp类,用该类继承cmp类。这样的话,所有的商业逻辑都在cmp类中,而持久化机制在bmp中实现。[我觉得这种情况在实际工作中很少遇到,但是作者解决问题的思路值得学习]

法则3:把ejbstore中的数据库访问减小到最少。

如果使用bmp,设置一个缓存数据改变标志dirty非常有用。所有改变数据库中底层数据的操作,都要设置dirty,而在ejbstore中,首先检测dirty的值,如果dirty的值没有改变,表明目前数据库中的数据与缓存的一致,就不必进行数据库操作了,反之,就要把缓存数据写入数据库。

法则4:总是将从lookup和find中获得的引用进行缓存。(cache)

引用缓存对session bean和entity bean 都是适用的。

通过jndi lookup获得ejb资源。比如datasource,bean的引用等等都要付出相当大的代价。因此应该避免多余的lookup.可以这样做:

将这些引用定义为实例变量。

从setentitycontext(session bean使用setsessioncontext)方法查找他们。setentitycontext方法对于一个bean实例只执行一次,所有的相关引用都在这一次中进行查找,这样查找的代价就不是那么昂贵了。应该避免在其他方法中查找引用。尤其是访问数据库的方法:ejbload和ejbstore,如果在这些频繁调用的方法中进行datasource的查找,势必造成时间的浪费。

调用其他entity bean的finder方法也是一种重量级的调用。多次调用finder方法的代价非常高。如果这种引用不适合放在setentitycontext这样的初始化时执行的方法中执行,就应该在适当的时候缓存finder的执行结果。只是要注意的是,如果这个引用只对当前的entity有效,你就需要在bean从缓冲池中取出来代表另外一个实体时清除掉这些引用。,这些操作应该在ejbactivate中进行。

法则5:总是使用prepare statements

这条优化法则适用于所有访问关系数据库的操作。

数据库在处理每一个sql statement的时候,执行前都要对statement进行编译。一些数据库具有缓存statement和statement的编译后形式的功能。数据库可以把新的statement和缓存中的进行匹配。然而,如果要使用这一优化特性,新的statement要必须和缓存中的statement完全匹配。

对于non-prepared statement,数据和statement本身作为一个字符串传递,这样由于前后调用的数据不同而不能匹配,就导致无法使用这种优化。而对于prepared statement,数据和statement是分开传递给数据库的,这样statement就可以和cache中已编译的statement进行匹配。statement就不必每次都进行编译操作。从而使用该优化属性。

【5】【6】【7】【8】【9】【10】【11】【12】【13】【14】【15】

这项技术在一些小型的数据库访问中能够减少statement将近90%的执行时间。

法则6:完全关闭所有的statement

在编写bmp的数据库访问代码时,记住一定要在数据库访问调用之后关闭statement,因为每个打开的statement对应于数据库中的一个打开的游标。

security

1.加密

对称加密

(1)分组密码

(2)流密码

常用的对称加密算法:

des和tripledes

blowfish

rc4

aes

非对称加密

常用的非对称加密算法

rsa

elgamal

会话密钥加密(对称加密和非对称加密一起使用)

常用的会话密钥加密协议

s/mime

pgp

ssl和tls ssl是在application level protocal和transport protocal之间的。

比如:http和tcp/ip之间

ssl 提供了服务器端认证和可选的客户端认证,保密性和数据完整性。

提供基于ssl方式的传输加密和认证,确保以下三种安全防护:

数据的机密性和准确性、

服务器端认证

客户端认证。

客户端认证比服务器端认证不很普遍的原因是每一个要被认证的客户都必须有一张verisign这样的ca签发的证书。

通常,在进行身份认证的时候,应当只接受一个ca,这个ca的名字包含在客户证书中。

由于不可能随意创建一个由指定ca签发的证书,所以这可以有效的防御通过伪造证书来进行的攻击尝试。

2.认证(authentication)

认证就是确定一条消息或一个用户的可靠性的过程。

1.消息摘要

md5

sha和sha-1

2.消息认证码(message authientication codes,mac)

3.数字签名

用户可以用自己的密钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名

数字签名可以

1)保证数据的完整性

2)验证用户的身份

数字签名采用一个人的私钥计算出来,然后用公钥去检验。

hash算法 私钥加密

原报文 ――――――>;报文摘要( message digest ) ―――――>;数字签名

原报文和数字签名一起被发送到接受者那里,接受者用同样的hash算法得到报文摘要,然后用发送者的公钥解开数字签名。

比较是否相同,则可以确定报文确定来自发送者。

验证数字签名必须使用公钥,但是,除非你是通过安全的方式直接得到,否则不能保证公钥的正确性。(数字证书可以解决这个问题)

一个接受者在使用公钥(public key)检查数字签名(digital signature)的可信度时,通常先要检查收到的公钥(public key)是否可信的。

因此发送方不是单单地发送公钥(public key),而是发送一个包含公钥(public key)的数字证书(cetificate )。

4.数字证书

数字证书是一个经证书授权中心数字签名的包含公开密钥所有者信息以及公开密钥的文件。

数字证书cetificate中包括:

i. 用户的公钥(public key)

ii. 用户的一些信息,如姓名,email

iii. 发行机构的数字签名(digital signature), 用于保证证书的可信度

iv. 发行机构的一些信息

数字证书的格式遵循x.509国际标准。

注意:一个数字证书certificate并不适用于多种browser,甚至一种browser的多个版本。

数字标识由公用密钥、私人密钥和数字签名三部分组成。

当在邮件中添加数字签名时,您就把数字签名和公用密钥加入到邮件中。数字签名和公用密钥统称为证书。您可以使用 outlook express 来指定他人向您发送加密邮件时所需使用的证书。这个证书可以不同于您的签名证书。

收件人可以使用您的数字签名来验证您的身份,并可使用公用密钥给您发送加密邮件,这些邮件必须用您的私人密钥才能阅读。

要发送加密邮件,您的通讯簿必须包含收件人的数字标识。这样,您就可以使用他们的公用密钥来加密邮件了。当收件人收到加密邮件后,用他们的私人密钥来对邮件进行解密才能阅读。

在能够发送带有数字签名的邮件之前,您必须获得数字标识。如果您正在发送加密邮件,您的通讯簿中必须包含每位收件人的数字标识。

数字证书,可以是个人证书或 web 站点证书,用于将身份与"公开密钥"关联。只有证书的所有者才知道允许所有者"解密"或进行"数字签名"的相应"私人密钥"。当您将自己的证书发送给其他人时,实际上发给他们的是您的公开密钥,这样他们就可以向您发送只能由您使用私人密钥解密和读取的加密信息。

通过浏览器使用数字证书,必须先要设置浏览器软件 internet explorer 或 netscape使用此证书,才能开始发送加密或需要数字签名的信息。访问安全的 web 站点(以"https"打头的站点)时,该站点将自动向您发送他们的web站点证书。

(证书授证中心)

ca机构,又称为证书授证(certificate authority)中心,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。ca中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。ca机构的数字签名使得攻击者不能伪造和篡改证书。在set交易中,ca不仅对持卡人、商户发放证书,还要对获款的银行、网关发放证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。

〖5〗〖6〗〖7〗〖8〗〖9〗〖10〗〖11〗〖12〗〖13〗〖14〗〖15〗

对证书的信任基于对根证书的信任. 例如在申请sheca的个人数字证书前,需要先下载根证书,然后再进行各类证书的申请。

下载根证书的目的:

网络服务器验证(s);安全电子邮件(e)

申请个人数字证书可以为internet用户提供发送电子邮件的安全和访问需要安全连接(需要客户证书)的站点。

1)个人数字证书

a.个人身份证书

个人身份证书是用来表明和验证个人在网络上的身份的证书,它确保了网上交易和作业的安全性和可靠性。可应用于:网上炒股、网上理财、网上保险、网上缴费、网上购物、网上办公等等。个人身份证书可以存储在软盘或ic卡中。

b.个人安全电子邮件证书

个人安全电子邮件证书可以确保邮件的真实性和保密性。申请后一般是安装在用户的浏览器里。用户可以利用它来发送签名或加密的电子邮件。

用户在申请安装完安全安全电子邮件数字证书后,就可以对要发送的邮件进行数字签名。收信人收到该邮件后,就可以看到数字签名的标记,这样就可以证明邮件肯定来自发信者本人,而不是别人盗用该帐号伪造信件,同时也保证该邮件在传送过程中没被他人篡改过任何数据。

安全电子邮件中使用的数字证书可以实现:

保密性 通过使用收件人的数字证书对电子邮件加密。如此以来,只有收件人才能阅读加密的邮件,在internet上传递的电子邮件信息不会被人窃取,即使发错邮件,收件人也无法看到邮件内容。

认证身份 在internet上传递电子邮件的双方互相不能见面,所以必须有方法确定对方的身份。利用发件人数字证书在传送前对电子邮件进行数字签名即可确定发件人身份,而不是他人冒充的。

完整性 利用发件人数字证书在传送前对电子邮件进行数字签名不仅可确定发件人身份,而且传递的电子邮件信息也不能被人在传输过程中修改。

不可否认性 由于发件人的数字证书只有发件人唯一拥有,故发件人利用其数字证书在传送前对电子邮件进行数字签名,发件人就无法否认发过这个电子邮件。

outlook express中的个人安全电子邮件证书

签名邮件带有签名邮件图标。

签名邮件可能出现的任何问题都将在本信息之后可能出现的“安全警告”中得到描述。如果存在问题,您应该认为邮件已被篡改,或并非来自所谓的发件人。

当收到一封加密邮件时,您应该可以自信地认为邮件未被任何第三者读过。outlook express 会自动对电子邮件解密, 如果在您的计算机上装有正确的数字标识。

2)企业数字证书

a.企业身份证书

企业身份证书是用来表明和验证企业用户在网络上身份的证书,它确保了企业网上交易和作业的安全性和可靠性。可应用于:网上证券、网上办公、网上交税、网上采购、网上资金转帐、网上银行等。企业身份证书可以存储在软盘和ic卡中。

b.企业安全电子邮件证书

企业安全电子邮件证书可以确保邮件的真实性和保密性。申请后一般是安装在用户的浏览器里。企业可以利用它来发送签名或加密的电子邮件。

可使用 windows 中的证书服务来创建证书颁发机构 (ca),它负责接收证书申请、验证申请中的信息和申请者的身份、颁发证书、吊销证书以及发布证书吊销列表 (crl)。

通常,当用户发出证书申请时,在其计算机上的加密服务提供程序 (csp) 为用户生成公钥和私钥对。用户的公钥随同必要的识别信息发送至 ca。如果用户的识别信息符合批准申请的 ca 标准,那么 ca 将生成证书,该证书由客户应用程序检索并就地存储。

安全接口层协议——ssl(se cure socketslayer),并且已经几乎成为了目前www 世界的事实标准。这一标准使用公共密钥编码方案来对传输数据进行加密,在双方之间建立一个internet 上的加密通道,从而使第三方无法获得其中的信息,其思路与目前流行的方案大致相同,目的都是要保护数据不被未经授权的第三方所窃听,或即使窃听到也不知所云。但就象 一样,ssl 在认证方面没有任何作为,它们都需要通过另外的手段来确认身份和建立双方彼此间的信任,然后再通过ssl 进行交易。

正是由于ssl 标准在认证方面的缺憾,所以set 才有存在的必要。set(secure electronic transactions) 规范由masterc ard 和visa 公司于1996 年发布,专家们认为set 是保证用户与商家在电子商务与在线交易中免受欺骗的重要手段。传统的信用卡交易者总在担心不诚实的店员会将自己的信用卡号码透露给他人,而在线交易也是如此,持卡者总在担心服务器端的管理员会将信用卡号码泄露出去,或者担心黑客会在管理员不知情的情况下盗取信用卡号码。事实上这些担心都是必要的,而set 标准则可以保证用户的信用卡号码只传送给信用卡公司进行认证,不会被系统管理员看到,也不会留在交易服务器的硬盘上给黑客以可乘之机。

pki是一种易于管理的、集中化的网络安全方案。它可支持多种形式的数字认证: 数据加密、数字签字、不可否认、身份鉴别、密钥管理以及交叉认证等。pki可通过一个基于认证的框架处理所有的数据加密和数字签字工作。p ki标准与协议的开发迄今已有20xx年的历史,目前的pki已完全可以向企业网络提供有效的安全保障。 〖5〗〖6〗〖7〗〖8〗〖9〗〖10〗〖11〗〖12〗〖13〗〖14〗〖15〗

pki是一种遵循标准的密钥管理平台,它能够为所有网络应用透明地提供采用加密和数字签名等密码服务所必需的密钥和证书管理。pki必须具有

1)ca、

2)证书库、

3)密钥备份及恢复系统、

4)证书作废处理系统、

5)客户端证书处理系统

等基本成分,构建pki也将围绕着这五大系统来构建

一个pki由众多部件组成,这些部件共同完成两个主要功能:

1)为数据加密

2)创建数字认证。

服务器(即后端)产品是这一系统的核心,这些数据库管理着数字认证、公共密钥及专用密钥( 分别用于数据的加密和解密)。

ca数据库负责发布、废除和修改x.509数字认证信息,它装有用户的公共密钥、证书有效期以及认证功能(例如对数据的加密或对数字签字的验证) 。为了防止对数据签字的篡改,ca在把每一数字签字发送给发出请求的客户机之前,需对每一个数字签字进行认证。一旦数字认证得以创建, 它将会被自动存储于x.500目录中,x.500目录为树形结构。ldap(lightweight directory access protocol)协议将响应那些要求提交所存储的公共密钥认证的请求。ca为每一用户或服务器生成两对独立的公共和专用密钥。其中一对用于信息的加密和解密, 另一对由客户机应用程序使用,用于文档或信息传输中数字签字的创建。

大多数pki均支持证书分布,这是一个把已发布过的或续延生命期的证书加以存储的过程。这一过程使用了一个公共查询机制,x.500目录可自动完成这一存储过程。影响企业普遍接受p ki的一大障碍是不同ca之间的交叉认证。假设有两家公司,每一家企业分别使用来自不同供应商的ca,现在它们希望相互托管一段时间。如果其后援数据库支持交叉认证, 则这两家企业显然可以互相托管它们的ca,因而它们所托管的所有用户均可由两家企业的ca所托管。

* 认证机关

ca是证书的签发机构,它是pki的核心。众所周知,构建密码服务系统的核心内容是如何实现密钥管理,公钥体制涉及到一对密钥,即私钥和公钥, 私钥只由持有者秘密掌握,无须在网上传送,而公钥是公开的,需要在网上传送,故公钥体制的密钥管理主要是公钥的管理问题,目前较好的解决方案是引进证书(certificate)机制。

证书是公开密钥体制的一种密钥管理媒介。它是一种权威性的电子文档,形同网络计算环境中的一种身份证,用于证明某一主体(如人、服务器等)的身份以及其公开密钥的合法性。在使用公钥体制的网络环境中, 必须向公钥的使用者证明公钥的真实合法性。因此,在公钥体制环境中,必须有一个可信的机构来对任何一个主体的公钥进行公证,证明主体的身份以及他与公钥的匹配关系。c a正是这样的机构,它的职责归纳起来有:

1、验证并标识证书申请者的身份;

2、确保ca用于签名证书的非对称密钥的质量;

3、确保整个签证过程的安全性,确保签名私钥的安全性;

4、证书材料信息(包括公钥证书序列号、ca标识等)的管理;

5、确定并检查证书的有效期限;

6、确保证书主体标识的唯一性,防止重名;

7、发布并维护作废证书表;

8、对整个证书签发过程做日志记录;

9、向申请人发通知。

其中最为重要的是ca自己的一对密钥的管理,它必须确保其高度的机密性,防止他方伪造证书。ca的公钥在网上公开,整个网络系统必须保证完整性。

* 证书库

证书库是证书的集中存放地,它与网上"白页”类似,是网上的一种公共信息库,用户可以从此处获得其他用户的证书和公钥。

构造证书库的最佳方法是采用支持ldap协议的目录系统,用户或相关的应用通过ldap来访问证书库。系统必须确保证书库的完整性,防止伪造、篡改证书。

* 密钥备份及恢复系统

* 证书作废处理系统

* pki应用接口系统

pki的价值在于使用户能够方便地使用加密、数字签名等安全服务,因此一个完整的pki必须提供良好的应用接口系统,使得各种各样的应用能够以安全、一致、可信的方式与p ki交互,确保所建立起来的网络环境的可信性,同时降低管理维护成本。最后,pki应用接口系统应该是跨平台的。

许多权威的认证方案供应商(例如verisign、thawte以及gte)目前都在提供外包的pki。外包pki最大的问题是,用户必须把企业托管给某一服务提供商, 即让出对网络安全的控制权。如果不愿这样做,则可建造一个专用的pki。专用方案通常需把来自entrust、baltimore technologies以及xcert的多种服务器产品与来自主流应用程序供应商(如microsoft、netscape以及qualcomm)的产品组合在一起。专用pk i还要求企业在准备其基础设施的过程中投入大量的财力与物力。

扩展jaas实现类实例级授权

“java 认证和授权服务”(java authentication and authorization service,jaas)

在 jaas 下,可以给予用户或服务特定的许可权来执行 java 类中的代码。在本文中,软件工程师 carlos fonseca 向您展示如何为企业扩展 jaas 框架。向 jaas 框架添加类实例级授权和特定关系使您能够构建更动态、更灵活并且伸缩性更好的企业应用程序。

大多数 java 应用程序都需要某种类实例级的访问控制。例如,基于 web 的、自我服务的拍卖应用程序的规范可能有下列要求: 《5》《6》《7》《8》《9》《10》《11》《12》《13》《14》《15》

任何已注册(经过认证)的用户都可以创建一个拍卖,但只有创建拍卖的用户才可以修改这个拍卖。

这意味着任何用户都可以执行被编写用来创建 auction 类实例的代码,但只有拥有该实例的用户可以执行用来修改它的代码。通常情况下,创建 auction 实例的用户就是所有者。这被称为类实例所有者关系(class instance owner relationship)。

该应用程序的另一个要求可能是:

任何用户都可以为拍卖创建一个投标,拍卖的所有者可以接受或拒绝任何投标。

再一次,任何用户都可以执行被编写用来创建 bid 类实例的代码,但只有拥有该实例的用户会被授予修改该实例的许可权。而且,auction 类实例的所有者必须能够修改相关的 bid 类实例中的接受标志。这意味着在 auction 实例和相应的 bid 实例之间有一种被称为特定关系(special relationship)的关系。

不幸的是,“java 认证和授权服务”(jaas)— 它是 java 2 平台的一部分 — 没有考虑到类实例级访问控制或者特定关系。在本文中,我们将扩展 jaas 框架使其同时包含这两者。推动这种扩展的动力是允许我们将访问控制分离到一个通用的框架,该框架使用基于所有权和特定关系的策略。然后管理员可以在应用程序的生命周期内更改这些策略。

在深入到扩展 jaas 框架之前,我们将重温一下 java 2 平台的访问控制机制。我们将讨论策略文件和许可权的使用,并讨论 securitymanager 和 accesscontroller 之间的关系。

java 2 平台中的访问控制

在 java 2 平台中,所有的代码,不管它是本地代码还是远程代码,都可以由策略来控制。策略(policy)由不同位置上的代码的一组许可权定义,或者由不同的签发者定义、或者由这两者定义。许可权允许对资源进行访问;它通过名称来定义,并且可能与某些操作关联在一起。

抽象类 cy 被用于表示应用程序的安全性策略。缺省的实现由 cyfile 提供,在 cyfile 中,策略被定义在一个文件中。清单 1 是一个典型策略文件示例:

清单 1. 一个典型的策略文件

// grant these permissions to code loaded from a file

// in the c drive and if it is signed by xyz

grant codebase "file:/c:/", signedby "xyz" {

// allow socket actions to any host using port 8080

permission etpermission "*:8080", "accept, connect,

listen, resolve";

// allows file access (read, write, execute, delete) in

// the user's home directory.

permission permission "${}/-", "read, write,

execute, delete";

};

securitymanager 对 accesscontroller

在标准 jdk 分发版中,控制代码源访问的机制缺省情况下是关闭的。在 java 2 平台以前,对代码源的访问都是由 securitymanager 类管理的。securitymanager 是由 ger 系统属性启动的,如下所示:

java ger

在 java 2 平台中,可以将一个应用程序设置为使用 ritymanager 类或者 sscontroller 类管理敏感的操作。accesscontroller 在 java 2 平台中是新出现的。为便于向后兼容,securitymanager 类仍然存在,但把自己的决定提交 accesscontroller 类裁决。securitymanager 和 accesscontroller 都使用应用程序的策略文件确定是否允许一个被请求的操作。清单 2 显示了 accesscontroller 如何处理 socketpermission 请求:

清单 2. 保护敏感操作

public void somemethod {

permission permission =

new etpermission("localhost:8080", "connect");

kpermission(permission);

// sensitive code starts here

socket s = new socket("localhost", 8080);

}

在这个示例中,我们看到 accesscontroller 检查应用程序的当前策略实现。如果策略文件中定义的任何许可权暗示了被请求的许可权,该方法将只简单地返回;否则抛出一个 accesscontrolexception 异常。在这个示例中,检查实际上是多余的,因为缺省套接字实现的构造函数也执行相同的检查。

在下一部分,我们将更仔细地看一下 accesscontroller 如何与 cy 实现共同合作安全地处理应用程序请求。

运行中的 accesscontroller

accesscontroller 类典型的 checkpermission(permission p) 方法调用可能会导致下面的一系列操作:

accesscontroller 调用 cy 类实现的 getpermissions(codesource codesource) 方法。

getpermissions(codesource codesource) 方法返回一个 permissioncollection 类实例,这个类实例代表一个相同类型许可权的集合。

accesscontroller 调用 permissioncollection 类的 implies(permission p) 方法。

接下来,permissioncollection 调用集合中包含的单个 permission 对象的 implies(permission p) 方法。如果集合中的当前许可权对象暗示指定的许可权,则这些方法返回 true,否则返回 false。

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]

现在,让我们更详细地看一下这个访问控制序列中的重要元素。

permissioncollection 类

大多数许可权类类型都有一个相应的 permissioncollection 类。这样一个集合的实例可以通过调用 permission 子类实现定义的 newpermissioncollection 方法来创建。cy 类实现的 getpermissions 方法也可以返回 permissions 类实例 — permissioncollection 的一个子类。这个类代表由 permissioncollection 组织的不同类型许可权对象的一个集合。permissions 类的 implies(permission p) 方法可以调用单个 permissioncollection 类的 implies(permission p) 方法。

codesource 和 protectiondomain 类

许可权组合与 codesource(被用于验证签码(signed code)的代码位置和证书)被封装在 protectiondomain 类中。有相同许可权和相同 codesource 的类实例被放在相同的域中。带有相同许可权,但不同 codesource 的类被放在不同的域中。一个类只可属于一个 protectiondomain。要为对象获取 protectiondomain,请使用 s 类中定义的 getprotectiondomain 方法。

许可权

赋予 codesource 许可权并不一定意味着允许所暗示的操作。要使操作成功完成,调用栈中的每个类必须有必需的许可权。换句话说,如果您将 permission 赋给类 b,而类 b 是由类 a 来调用,那么类 a 必须也有相同的许可权或者暗示 permission 的许可权。

在另一方面,调用类可能需要临时许可权来完成另一个拥有那些许可权的类中的操作。例如,当从另一个位置加载的类访问本地文件系统时,我们可能不信任它。但是,本地加载的类被授予对某个目录的读许可权。这些类可以实现 privilegedaction 接口来给予调用类许可权以便完成指定的操作。调用栈的检查在遇到 privilegedaction 实例时停止,有效地将执行指定操作所必需的许可权授予所有的后继类调用。

使用 jaas

顾名思义,jaas 由两个主要组件组成:认证和授权。我们主要关注扩展 jaas 的授权组件,但开始我们先简要概述一下 jaas 认证,紧接着看一下一个简单的 jaas 授权操作。

jaas 中的用户认证

jaas 通过添加基于 subject 的策略加强了 java 2 中定义的访问控制安全性模型。许可权的授予不仅基于 codesource,还基于执行代码的用户。显然,要使这个模型生效,每个用户都必须经过认证。

jaas 的认证机制建立在一组可插登录模块的基础上。jaas 分发版包含几个 loginmodule 实现。loginmodules 可以用于提示用户输入用户标识和密码。logincontext 类使用一个配置文件来确定使用哪个 loginmodule 对用户进行认证。这个配置可以通过系统属性 ig 指定。一个示例配置是:

java ig=

下面是一个登录配置文件的样子:

example {

nmoduleexample required

debug=true userfile="" groupfile="";

};

认识您的主体

subject 类被用于封装一个被认证实体(比如用户)的凭证。一个 subject 可能拥有一个被称为主体(principal)的身份分组。例如,如果 subject 是一个用户,用户的名字和相关的社会保险号可能是 subject 的某些身份或主体。主体是与身份名关联在一起的。

principal 实现类及其名称都是在 jaas 策略文件中指定的。缺省的 jaas 实现使用的策略文件与 java 2 实现的策略文件相似 — 除了每个授权语句必须与至少一个主体关联在一起。cy 抽象类被用于表示 jaas 安全性策略。它的缺省实现由 cyfile 提供,在 cyfile 中策略定义在一个文件中。清单 3 是 jaas 策略文件的一个示例:

清单 3. 示例 jaas 策略文件

// example grant entry

grant codebase "file:/c:/", signedby "xyz",

principal cipalexample "admin" {

// allow socket actions to any host using port 8080

permission etpermission

"*:8080", "accept, connect, listen, resolve";

// allows file access (read, write, execute, delete) in

// the user's home directory.

permission permission

"${}/-", "read, write, execute, delete";

};

这个示例与清单 1 中所示的标准 java 2 策略文件相似。实际上,唯一的不同是主体语句,该语句声明只有拥有指定主体和主体名字的 subject(用户)被授予指定的许可权。

再一次,使用系统属性 cy 指出 jaas 策略文件驻留在何处,如下所示:

java cy=

subject 类包含几个方法来作为特殊 subject 执行工作;这些方法如下所示:

public static object

doas(subject subject, ilegedaction action) 3 4 5 6 7 8 9 10 11 12 13 14 15

public static object

doas(subject subject, ilegedaction action)

throws ilegedactionexception

注意,用来保护敏感代码的方法与“java 2 代码源访问控制”(java 2 codesource access control)概述中描述的方法相同。请参阅参考资料部分以了解更多关于 jaas 中代码源访问控制和认证的信息。

jaas 中的授权

清单 4 显示一个授权请求的结果,该请求使用清单 3 中显示的 jaas 策略文件。假设已经安装了 securitymanager,并且 logincontext 已经认证了一个带有名为“admin”的 cipalexample 主体的 subject。

清单 4. 一个简单的授权请求

public class jaasexample {

public static void main(string args) {

...

// where authenticateduser is a subject with

// a principalexample named admin.

(authenticateduser, new jaasexampleaction);

...

}

}

public class jaasexampleaction implements privilegedaction {

public object run {

filewriter fw = new filewriter("");

e("hello, world!");

e;

}

}

这里,敏感代码被封装在 jaasexampleaction 类中。还要注意,调用类不要求为 jaasexampleaction 类代码源授予许可权,因为它实现了一个 privilegedaction。

扩展 jaas

大多数应用程序都有定制逻辑,它授权用户不仅仅在类上执行操作,而且还在该类的实例上执行操作。这种授权通常建立在用户和实例之间的关系上。这是 jaas 的一个小缺点。然而,幸运的是,这样设计 jaas 使得 jaas 可以扩展。只要做一点工作,我们将可以扩展 jaas,使其包含一个通用的、类实例级的授权框架。

在文章开头处我已经说明了,抽象类 cy 被用于代表 jaas 安全性策略。它的缺省实现是由 cyfile 类提供。policyfile 类从 jaas 格式的文件(象清单 3 中显示的那个一样)中读取策略。

我们需要向这个文件添加一个东西为类实例级授权扩展策略定义:一个与许可权语句相关的可选关系参数。

缺省 jaas 许可权语句的格式如下:

permission ; [name], [actions];

我们在这个许可权语句的末尾添加一个可选的关系参数来完成策略定义。下面是新许可权语句的格式:

permission ;

[name], [actions], [relationship];

在为类实例级授权扩展 jaas 时要注意的最重要的一点是:许可权实现类必须有一个带三个参数的构造函数。第一个参数是名称参数,第二个是行为参数,最后一个是关系参数。

解析新文件格式

既然文件格式已经改变,就需要一个新的 cy 子类来解析文件。

为简单起见,我们的示例使用了一个新的 cy 子类 olicyfile,来从 xml 文件读取策略。在实际的企业应用程序中,关系数据库更适合执行这个任务。

使用 xmlpolicyfile 类代替缺省的 jaas 访问控制策略实现的最容易的方法是向 rity 属性文件添加 ider=olicyfile 条目。rity 属性文件位于 java 2 平台运行时的 lib/security 目录下。清单 5 是与 xmlpolicyfile 类一起使用的样本 xml 策略文件:

清单 5. 一个 xml 策略文件

;

;

;

"cipalexample" name="users">;

"urcepermission"

name="ion"

actions="create" />;

"urcepermission"

name="ion"

actions="read" />;

"urcepermission"

name="ion"

actions="write"

relationship="owner" />;

"urcepermission"

name=""

actions="create" />;

"urcepermission"

name=""

actions="read" />;

"urcepermission"

【5】【6】【7】【8】【9】【10】【11】【12】【13】【14】【15】

name=""

actions="write"

relationship="owner" />;

"urcepermission"

name=""

actions="accept"

relationship="actionowner" />;

;

;

;

在这个示例策略文件中,任何与名为 principalexample 的用户有关的用户(subject)都可以创建并读取一个 s 实例。但是,只有创建该实例的用户才可以更新(写)它。这是第三个 permission 元素定义的,该元素包含值为 owner 的 relationship 属性。s 实例也是一样,除了相应 s 实例的所有者可以更改投标接受标志。

resource 接口

要求类实例级访问控制的类必须实现 resource 接口。该接口的 getowner 方法返回类实例的所有者。fulfills(subject subject, string relationship) 方法被用于处理特定关系。另外,这些类使用 urcepermission 类保护敏感代码。例如,auction 类拥有下列构造函数:

public auction {

permission permission =

new resourcepermission("ion", "create");

kpermission(permission);

}

所有者关系

resourcepermission 类的 implies(permission p) 方法是这个框架的关键。implies 方法就等同性比较名称和行为属性。如果定义了一个关系,那么必须把受保护的类实例(resource)传递到 resourcepermission 构造函数中。resourcepermission 类理解所有者关系。它将类实例的所有者与执行代码的 subject(用户)进行比较。特定关系被委托给受保护类的 fulfills 方法。

例如,在清单 5 中所示的 xml 策略文件中,只有 auction 类实例的所有者可以更新(写)文件。该类的 setter 方法使用清单 6 中显示的保护代码:

清单 6. 运行中的 implies(permission) 方法

public void setname(string newname) {

permission permission =

new resourcepermission("ion", "write", this);

kpermission(permission);

// sensitive code

= newname;

}

被传递到 resourcepermission 构造函数中的 this 引用代表 auction 类实现的 resource 接口。由于策略文件中列出的关系是 owner,所以 resourcepermission 类使用这个引用检查当前 subject(用户)是否拥有与实例所有者相匹配的主体。如果指定了另一个关系,那么 resourcepermission 类调用 auction 类的 fulfills(subject subject, string relationship) 方法。由 resource 实现类提供 fulfills 方法中的逻辑。

xml 策略文件中列出的 bid 类拥有清单 7 中所示的方法(假设 bid 类实例有一个对相应 auction 类实例的引用 — auction)。

清单 7. 处理特定关系

public void setaccepted(boolean flag) {

permission permission =

new resourcepermission("ion", "accept", this);

kpermission(permission);

// sensitive code

pted = flag;

}

public boolean fulfills(subject user, string relationship) {

if( lsignorecase("auctionowner") ) {

string auctionowner = wner;

iterator principaliterator = ator;

while(ext) {

principal principal = (principal) ;

if( ls(auctionowner) )

return true;

}

}

return false;

}

传递到 fulfills 方法中的关系字符串是策略文件中列出的关系。在这个案例中,我们使用了“auctionowner”字符串。

缺省情况下,xmlpolicyfile 类在当前工作目录中查找名为 的文件。系统属性 cy 可以用于指定另一个不同的文件名和位置。

websphere application server 示例

除命令行示例之外,您可能还想运行这个简单的程序,该程序为了 ibm websphere application server,version 4.0.2 而被优化。

一个可运行的示例

综合这些信息,我们将运行一个简单的命令行示例。该示例程序包含三个 jar 文件:

文件包含允许实例级访问控制的 jaas 扩展框架。它还包含一个 loginmoduleexample 类,这个类从 xml 文件读取用户认证信息。用户标识和密码存储在 文件中。用户组存储在 文件中。关于 loginmoduleexample 的更多信息,请参阅参考资料部分。

该示例包含四个附加的文件:

policy

在试图运行这个示例程序之前,请确保更新了 、policy 和 文件中的路径。缺省情况下,所有的密码都是“passw0rd”。

示例如何工作

该示例程序提示输入用户标识和密码。它用 文件中的条目核对所提供的用户标识和密码。在认证了用户之后,程序设法创建一个 userprofile 类实例,修改它并从中读取。缺省情况下,userprofile 类的所有者是 jane(jane)。当 jane 登录时,三个操作全部成功。当 john(john)登录时,只有创建操作成功。当 jane 的经理 lou(lou)登录时,只有第一个和最后一个操作成功。当系统管理员(admin)登录时,操作全部成功。当然,只有当提供的 文件未被修改时,上述这些才都是真的。

示例安装

下面的安装指导假设您正在使用 jdk 1.3 并且已经把文件解压缩到 d:jaasexample 目录。通过将文件解压缩到这个目录,您可以省去一些工作;否则您就必须使用正确的路径名修改 policy 和 策略文件。

下面是运行该示例需要做的工作:

下载这个示例的源文件。

把 和 复制到 jdk jrelibext 目录(即 d:jdk1.3jrelibext)。

向位于 jdk 的 jrelibsecurity 目录(即 d:jdk1.3jrelibsecurity)中的 rity 文件的末尾添加下面的字符串:ider=olicyfile。

执行 文件。

结束语

类实例级授权把访问控制分离到一个通用框架(该框架使用基于所有权和特定关系的策略)中。然后管理员可以在应用程序的生命周期内更改这些策略。用这种方法扩展 jaas 减少了您或另一个程序员必须在应用程序生命周期内业务规则发生更改时重写代码的可能性。

通过将关系字符串抽象为类可以进一步扩展特定关系这个概念。不调用 resource 实现类的 fulfills(subject user, string relationship) 方法,而只要调用 relationship 实现类中定义的新 fulfills(subject user, resource resource) 方法。这样就会允许许多 resource 实现类使用相同的关系逻辑。

的安全性

1. the security manager是一个application-wide object ( ritymanager)

每个java application都可以有自己地security manager,但是默认地java application没有一个security manager

可以通过下面地代码得到一个security manager

try

{

ecuritymanager(new securitymanager(“--”));

}

catch( )

2.

jdbc

在 jdbc 2 开发的过程中,sql99 还处在一种变化不定的情况下。现在规范已经完成了,而且数据库厂商已经采用了部分标准。所以自然地,jdbc 规范就跟着将自己与 sql99 功能的一部分相统一。最新的 jdbc 规范已经采用了 sql99 标准中那些已经被广泛支持的功能,还有那些在五年内可能会获得支持的功能。

1. datasource

在jdbc2.0 optional package中,提供了透明的连接池(connection pooling)。

一旦配置了j2ee应用服务器后,只要用datasource获取连接(connection),连接池(connection pooling)就会自动的工作。

如果用户希望建立一个数据库连接,通过查询在jndi服务中的datasource,可以从datasource中获取相应的数据库连接。

datasource被认为是从jndi中获取的网络资源。

datasource在池中保存的对象都实现了pooledconnection接口。

当应用程序向datasource请求一个connection时,它会找到一个可用的pooledconnection对象。

如果连接池空了,它就向connectionpoolecdatasource请求一个新的pooledconnection对象

通过使用 datasource 接口 (jdbc 2.0) 或 drivermanager (jdbc 1.0) 接口,j2ee 组件可以获得物理数据库连接对象(connection)。要获得逻辑(合用的)连接,j2ee 组件必须使用以下这些 jdbc 2.0 合用管理器接口:

ectionpooldatasource 接口,该接口充当合用的 ection 对象的资源管理器连接 factory。每家数据库服务器供应商都提供该接口的实现

(例如,oracle 实现 leconnectionpooldatasource 类)。

edconnection 接口,该接口封装到数据库的物理连接。同样,数据库供应商提供其实现。

对于那些接口和 xa 连接的每一个,都存在一个 xa(x/open 规范)等价定义。

2. resultset

在jdbc2.0中,为了获得一个uptatable result,在query语句里必须包含primarykey,并且查询的内容里必须来自一个table

ltset接口中定义了三种类型的结果集

type_forward_only

type_scroll_insensitive 这种类型的结果集支持双向滚动

type_scroll_sensitive

如果要建立一个双向滚动的resultset,一定要在建立statement的时候使用如下参数

statement stmt = testatement(_scroll_insensitive,

ur_read_only);

3. jdbc驱动程序

连通oracle8.1.6的jdbc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

把oracle8.1.6/lib/jdbc/* copy 到 %java_home%/jre/lib/ext/*

如果光copy不ren为是没有用的。

4. 事务处理

本地事务

ection接口可以控制事务边界(即开始和结束)。

在事务开始的时候调用setautocommit( false ), 而在中止事务时调用rollback或commit方法。这类事务叫本地事务。

分布式事务

但是,在特定的情况下,可能有多个客户(例如两个不同的servlet或ejb组件)参与了同一个事务。

或者,客户在同一个事务中可能会执行跨越多个数据库的数据库操作。

jdbc2.0 optional package 同jta一起来实现分布式样事务。

5. 一些技巧

检索自动产生的关键字

为了解决对获取自动产生的或自动增加的关键字的值的需求,jdbc 3.0 api 现在将获取这种值变得很轻松。要确定任何所产生的关键字的值,只要简单地在语句的 execute 方法中指定一个可选的标记,表示您有兴趣获取产生的值。您感兴趣的程度可以是 rn_generated_keys,也可以是 _generated_keys。在执行这条语句后,所产生的关键字的值就会通过从 statement 的实例方法 getgeneratedkeys 来检索 resultset 而获得。resultset 包含了每个所产生的关键字的列。清单 1 中的示例创建一个新的作者并返回对应的自动产生的关键字。

清单 1. 检索自动产生的关键字

statement stmt = testatement;

// obtain the generated key that results from the query.

uteupdate("insert into authors " +

'(first_name, last_name) " +

"values ('george', 'orwell')",

rn_generated_keys);

resultset rs = eneratedkeys;

if ( ) {

// retrieve the auto generated key(s).

int key = nt;

}

jta/jts

基本知识

服务器实现jts是否对应用程序开发人员来说不是很重要的。

对你来说,应该把jta看作是可用的api。

jta是用来开发distributed tansaction的 api.

而jts定义了支持jta中实现transaction manager 的规范。

javatransaction service (jts) specifies the implementation of a transaction manager which supports the java transaction api (jta) 1.0 specification at the high-level and implements the java mapping of the omg object transaction service (ots) 1.1 specification at the low-level. jts uses the standard corba orb/ts interfaces and internet inter-orb protocol (iiop) for transaction context propagation between jts transaction managers.

a jts transaction manager provides transaction services to the parties involved in distributed transactions: the application server, the resource manager, the standalone transactional application, and the communication resource manager (crm).

1.1 事务处理的概念

jta实际上是由两部分组成的:一个高级的事务性客户接口和一个低级的 x/open xa接口。

我们关心的是高级客户接口,因为bean可以访问它,而且是推荐的客户应用程序的事务性接口。

低级的xa接口是由ejb服务器和容器使用来自动协调事务和资源(如数据库)的

1.1.1事务划分

a.程序划分

使用usertransaction启动jta事务

the usertransaction interface defines the methods that allow an application to explicitly manage transaction boundaries.(from j2ee api

document)

诺曼底号遇难记读书心得感悟 篇9

今天我读了《小鹿学长跑》。清早,太阳公公还没露出笑脸,小鹿就开始练习跑步了。很多小动物都还在睡懒觉,可是,小鹿已经呼吸着树木里的清新空气,越跑越快了。小鹿每天坚持 练习长跑,身体锻炼得非常强健,所以,小鹿一次次逃脱了凶猛老虎的追捕。这个故事告诉我们:做任何事情都不能偷懒,只有坚持,才能学到真本领。

诺曼底号遇难记读书心得感悟 篇10

一、洛克印象:

洛克的全名是约翰洛克,是有名的英国资产积极思想家和教育家。1632年出生于一个小地主家庭。父亲是一个严格的清教徒,内战中站在议会一边,他们父子关 系极好,父亲对他的政治态度和教育思想很有影响。1644年他入伟士敏士特学校受中学教育,那里的经院主义教育使他十分反感。他在《教育漫话》中反对机械 的学习、反对靠文法学语文,就出自他的切身体验。1659年入剑桥大学攻读哲学、自然科学,深受培根和笛卡儿著作的影响,一度爱好化学和气象学实验。他喜 神学,因无真正的职业性神职机会,转而习医,打算以医为业。1661年毕业后留校任教。

洛克的著作有《文官论》《论自然的法则》《论宽容》《政府论》《人类理解论》《教育漫话》《论基督教的合理性》《关于理解的指导》《自然哲学基础》。此外,他还为工业和殖民地事务委员会拟了一份《工作学校草案》。

洛克的治学观点有唯物和唯心两重性。他着重研究了认识论。他在他的《人类理解论》第一卷中探讨了观念起源问题。他认为,观念和原则同艺术和科学一样,不是 天赋的。心灵原像一块白板入一个暗室、一个空箱,或像一张白纸,其中没有任何字样、任何观念。他的装备和知识材料来自经验。人类的知识都建立在经验之上, 发源于经验。人类的观念来源首先是感觉,此外还有反省。人类理解首要的机能是心灵能接受所感受的印象,这是外在的对象通过感官所造成的。或他本身反省那些 印象时所造成的。他是一个唯物主义的感觉论者,又是一个感觉论的二元论者。

洛克的教育思想除散见于《人类理解论》和《工作学校草案》以外,集中在他的《教育漫话》一书中。《教育漫话》先后译为法、荷、瑞典、德、意等国文字,在这 部著作中,他详细审定了绅士教育的性质、目的、内容和方法。这部著作,反映了新兴的资产阶级的要求,批判了当时英国的传统教育,提倡较广泛的、切合实用的 教学内容和方法,并在体育、德育和智育方面,提出了一系列有价值的建议。他的教育思想主流是进步的,但也有反人民的因素,他提出的许多具体措施有很多正确 的成分。

二、健康的身体:健全的精神和知识的载体 (摘录)

有健康的身体方有健全的精神,这是对于人生的一个简短而充分的描绘。

身体和精神有一方面不健康的人,即使有了别的种种,也是徒然。不善于用心的人,决不能遵循正当的途径;身体孱弱的人,即使有了正当的途径也决不能获得进展。

我敢说我们日常所见的人,他们之所以或好或坏,或有用或无用,十分之九都是他们的教育所决定的。人类之所以有千差万别,便是由于教育之故。

我们幼小时所得的印象,哪怕极微极小,小到几乎觉察不出,都有极大极长久的影响;正如江河的源泉一样,水性很弱,一点点人力便可以把它导入他途,使河流的根本方向改变;从根源上引导一下,河流的终极流向途径,就会截然不同。

我们要工作,要有幸福,必须先有健康;我们能忍耐劳苦,要在世界上做个人物,也必须先有强健的体格。

第一件当心事,是儿童无论冬夏春秋,衣着都不可太暖。初生时,人的面孔同其他部位一样娇嫩,因为长期袒露,所以比其他部位更经受得起风寒了。

只有睡眠是儿童可以充分享受的,只有睡眠最能增进儿童的生长与健康。

早起顶有益于健康。

多吸新鲜空气,多运动,多睡眠;食物要清淡,酒类或烈性的饮料不可喝,药物要用得极少,最好是不用;衣服不可过暖过紧,尤其是头部和足部要凉爽,脚习惯冷水,应与水接触。

孩子年龄增长,自由便随之而来,无须永远受人监护。这时,学校家长最要紧的是给孩子良好的原则与牢固的好习惯,这是最要紧和最可靠的。一切告诫与规劝及原则的重申,无论如何反复叮咛,除非形成了习惯,全是不中用的。

孩子的饮食宜极清淡简单,两三岁前,应该禁止肉食。三四岁以前完全禁止肉食,一切疾病定可以大大避免,而健康与强壮的体制基础也一定可以确切地奠定下来。

孩子的卧床,应该是坚硬的,宁可用絮绒,不可用羽绒。硬床可以锻炼身体;至于每夜睡在羽绒被褥里,那是消融体魄的,是虚弱的原因,短命的先兆。这种不 经意的舒适,会潜移默化地削弱人的体质,引起许多疾病。况且习惯睡硬床的人,外出旅行等能够适应不好的睡眠条件。将身体习惯为随遇而安,是人的一种大幸, 也是成就事业的一个重要条件。

三、良好强健的心理素质:人生海洋中冲浪的坚船(摘录)

心理强健的主要标准:能克制自己的欲望,能不顾自己的好恶倾向而严格顺从正确的理性指导。能在理性航标的指引下,毅然与愿望背道而驰。

我们在教养子女中的一个重大错误,就是没有注意到这一点:精神在最孱弱,可塑性最强的时候,没有让他们习惯于约束,服从于理智,没有按应该形成的样子 去塑造。对子女本能的爱常常成为溺爱,没有规则的约束,形成了不良习惯,以后便成为一块变形砖,没法子派用场。幼儿要母亲的奶头,儿童要糖果,青年要爱 人……人的不同年龄段,有不同的欲望,这不是错处。错的是欲望脱开理智,产生不适当的欲望,或对正确的欲望产生不适当的度。如儿童就要爱人,便不适当;要 把所有的糖果都归自己,便不适度。不适当和不适度放纵下去,就成习惯,遗害无穷。

从摇篮中开始,就要培养孩子这样一种习惯:去争取自己该得到的东西,不是争取自己想 得到而不该得到的东西。不要因为孩子的哭闹而违原则屈从,他们就会学会得不到也能心理平衡,他们就不会有非分之想,以及为达到非分之想而哭闹,正象他们不会哭着要月亮一样。

管教儿童,要从极小时开始。你要在孩子长大后服从你,首先要他在儿童时服从你。随着孩子的长大,你就要以理服人,假以词色。如果再强力迫胁,则必然招 致失败。方法正确,小时孩子是你的“仆人”,大了成为你的朋友;方法不当,大了以后会成为你的“敌人”,会厌恶你,可能心里会暗暗划算:“爸爸,你什么时 候才死呢?”

另一方面,要警惕一种相反的倾向:儿童被管束太严,精神沮丧颓唐,失去活力和勤奋,那样更糟糕。放荡的青年,常生龙活虎一般,精神饱满。一但上了轨道,常常可以变成一些能干伟大的人物。

心情沮丧的儿童则不然,他们的态度是怯懦的,精神是抑郁的,很不易振作起来,作出什么事业。

要避免上述两方面的矛盾,需要一种重要的技巧。谁要找出这样一种方法:一方面使儿童的心情安逸、活泼、自由,同时又能使他们抑制非分的欲望,这就算懂得教育的真正秘诀了。

对儿童奖励与惩罚都要慎用。惩罚的目的是为了知错改错,这主要体现在心理的认知上,如果不能触及心理,这种惩罚便是无用的,如果使被惩罚者不但未感羞愧,而且产生反感,那就是一种彻底的失败。

四、知识和技能教育

读书、写字和学问,是必要的,但却不应该成为首要的事物。如果有人不把一个有德行的人或者有智慧的人看得远比一个大学者更为可贵,那么他是一个非常愚蠢的家伙。

学问当然得有,但应该放在第二位,只能作为辅助更重要的品质之用。

对本质良好的人来说,学问对于德行与智慧都是大有帮助的,然而我们也得承认,对本质不良的人来说,学问就只会促使他们变得更加愚蠢,或者变成更坏的人。

阅读……儿童到了能够说话的时候,就应当开始学习阅读。

一定要多加注意,决不可把读书当作他的一种工作,也不可让他把读书看成一项任务。

让他们自己向往学习,追求学习如同追求另一种游戏或娱乐。但决不可把学习当作他们的一项任务,也不可让学习成为他们的一种烦恼。

儿童的身上,是不应背负任何工作之类的严肃事情的,因为他们的心智和身体都承受不了。

不要强迫儿童学习,也不要因此斥责他;要尽可能地诱导他去学习阅读,不要把学习作为他的一种工作。宁可让他晚一年学会阅读,也不可让他因此对学习产生憎恶心理。

当这些温和的方法使得他逐渐能够阅读时,便应当为他选择一本浅显、有趣而又适合他的能力的书,让他在阅读中得到乐趣,从而吸引他,使他能够从读书的辛劳中得到回报,不过所选的书不应在他的头脑中充塞纯粹无用、华而不实的东西,或者打下邪恶与愚蠢的基础。

每一个儿童去阅读他完全不能理解的章节段落,其中能有什么乐趣、能受到什么鼓励呢?

教学方法

其实教师应该考虑到,自己的责任是让儿童养成习惯,而不是怒气冲冲地向儿童灌输规则,规则对人生的指导是没有多大用处的,至少对儿童没有用处,因为儿童根本记不住规则。

在儿童年纪还很小的时候,儿童所学习的东西本身都很困难,教师的重大作用和技巧就在于尽可能让一切事情变得容易,而尤其是在语言的学习上,最没有理由为难儿童。

儿童的心智是狭窄与脆弱的,通常一次只能容纳一种思想。一个儿童的头脑里一旦有了什么想法,马上就会被这种想法填满,尤其是在带有情绪的时候。

儿童的心智天生就是散漫不定的。只要是新奇的东西,都会吸引他们;无论看到什么新奇的东西,他们都急于要去尝试,过后却很快就腻了。

要想让儿童的心灵接受你的教导,增长知识,就应该食使之保持安以平静。你不可能在一个战栗的心灵上写上美观平整的文字,正如你不可能在一张震动的纸上写上美观平整的文字。

不在意、不经心、不稳定、易走神,那都是儿童本身固有的缺陷,因此,只要没有发现他们是故意所为,便应温和地予以提醒,假以时日逐渐地克服。

儿童对导师具有的敬畏心理,应该经常通过导师对儿童表现出来的慈爱与善意来得到缓和,这种关爱之情能够激发他们去尽自己的责任,使他们乐于服从导师的指令。这样,儿童与导师相处的时候才会感到轻松自在,而惟有这样的心态之下,心灵才能接收新的信息,接纳那些印象。

洛克在外语学习、写作、人文教育课程、语言表达能力、自然科学、出国学习等方面都进行了一定的探讨论述,阅读之后都会有一定的启发。

五、赏识教育读书

当今学生不缺沟通不乏激励少的是管教,我认为有一定的道理。如何管教好学生,把握不好尺度,则“宽严皆误”。这的确是一门学问。

中国青少年研究中心副主任孙云晓认为,在提倡表扬、奖励、赏识的同时,不应该忽视“惩罚”在教育中的积极作用。让孩子在成长的过程中,懂得为自己的过失负 责,感到一种责任。一个能承担责任的人,才是现代人。他认为,教育本就是十八般武艺,表扬批评奖励惩罚,什么都应该有。没有惩罚的教育是不完整的教育,没 有惩罚的教育是一种虚弱的教育、脆弱的教育、不负责任的教育。

此言甚善。这很容易令人想起家长和老师纷纷效仿的“赏识教育”。其实,赏识教育并不能包治百病。

现在,独生子女占很大比例,家长的注意力和爱自然都倾注在孩子身上,有的家庭对孩子的要求百依百顺,特别在物质上不断满足。结果过分的宠爱,无休止的满 足,渐渐使孩子养成了自私自利、任性乃至放荡不羁的性格。在孩子心中就会形成“没有什么是不可能的”的概念,因此,只要他渴望得到的,就会毫无顾忌地去 抓、去取。有的家庭过分保护孩子,一切事情父母都包办代替,甚至把做力所能及的家务都看成潜在的危险,因此孩子的全部探索都变成了在父母精心照管下的附属 活动,由于没有独立的实践机会,动手能力大大减弱。

另一方面由于独生子女没有兄弟姐妹共同生活的训练,他们虽然常听到父母教育他们要互相帮助,但这对于他们而言只是一个概念,并没有真正的行动。

试想,如果用“赏识教育”来教育这样的孩子,只会使他们更加不能正确地评价自己,更加狂妄、放任自流和孤僻。

即使孩子是各方面表现都优异的“好孩子”,过度地夸奖和赏识他们,可能会带来以下不良的影响:一是增加孩子的依赖性。越是夸奖,孩子就越依赖大人们的选择 来决定什么是对什么是错,而不是形成自己的判断;二是会剥夺孩子的自豪感。儿童教育专家玛莉琳•古特曼认为,那些小时候经常受到父母表扬的孩子,在他们步 入生活后很可能会遇到更多的失望。随着年龄的增长,孩子不再会很容易地接受父母那种表面上的夸奖。过分“赏识”你的孩子,必然滑向溺爱的沼泽,对孩子有百 害无一益,结果会害了孩子。

因此,教师和家长应该根据不同的性格特点,实施不同的教育方法,使孩子形成健康的人格。孩子犯了错误,在不伤害其自尊的前提下实施“惩罚”,严格管教,是 必要的。如果孩子性格孤僻,就应该鼓励他多参加集体活动;如果孩子动手能力不强,就应该鼓励他干一些力所能及的事情,等等。

实际上,“惩罚”教育也好,赏识教育也好,只是若干教育方法中的一种,还要与严格教育、挫折教育等并行,没有一种方法适用于所有孩子。

《教育漫话》读书心得相关文章:

1.《教育漫话》教师读书笔记

2.《审美教育书简》教师读书笔记

3.《迷恋人的成长》读书笔记

4.中学教师读书笔记摘抄

5.《审美教育书简》教师读书笔记(2)

诺曼底号遇难记读书心得感悟 篇11

《平凡的世界》对我的影响也许我现在还无法预测,有一点时肯定的,它给予我一种来自灵魂的震撼。它改变了青春时期的我。我的思想,我的行为,我的态度。真的事无法言语,只记得那段时间自己好像很麻木,就像回到了那个时代,内心充满着各种幻想。我开始变得多愁善感了,我感觉世界事多么的美好。

生活没有如果,他们的命运告诉了我们许多道理,在人生中,会遇到许多坎坷荆棘,但要坚定自己的理想信念,怀揣梦想,一直前行,无所畏惧的前行,它会将你带进一个崭新的人生,崭新的世界。

我们在现实生活中会遇到各种各样的事,但从中得到的是要拥有自己的思想,自己的态度,走属于自己想的路,不论旅途多么遥远,这就是人生。

平凡的世界平凡的人生,而在平凡的人生中享受着一个不平凡的自我,懂得生活中的不易,学会珍惜,在痛苦与欢乐中前行,让自己的人生充满色彩,是我的的收获。读过之后,觉得大学中我需要做的真的很多,需要学习的也很多,用自己的思想来装饰自己的梦才真正有意义,在大学中,做一个完整的自我,过理想的生活。

诺曼底号遇难记读书心得感悟 篇12

初次读《家》是在高二的时候,那时我的感受很深。《家》中有悲有喜,在当时他鼓舞了无数青年反抗封建制度的决心和勇气,使他们摆脱了封建家庭的束缚,走上了革命道路。在今天,他的火焰依旧在燃烧,我们还可以从中拾取自己的哀欢。

《家》是巴老的代表作,和《春》《秋》合称为激流三部曲。“激流”这两个字颇能表达五四运动前后中国社会剧烈和巨大的变革,封建宗法制度的崩溃。首先是个人的觉醒,之后是个人从休戚相关,祸福与共的大家族的束缚中解脱出来,面对国家和社会。《家》给予这一从旧到新的变革提供了典型的人物和典型的故事,深化了五四文学反封建的主题。这一变革到今天已临末期,但还没有完全过去。因此这部小说的火焰还没有熄灭,作为当代大学生读它还是很有必要的。

家吸引我的的魅力在于以下几点:

(一)作者抓住了那个时代变革的焦点,抓住了变革中旧和新的人物典型,同时用一连串的典型冲突事件,表达了变革激流的澎湃。家是那个激流年代的一首长歌,一首让人激情燃烧的进行曲。

(二)新文学诞生以来的小说,十部中有九部,在写作时都怀有一个文学以外的目标,巴金也未能免俗,但是《家》是为纪念他大哥写的,他必须放下自己的“目的”,尽量接近现实,因此成为一部人情味最纯,生活味最浓的小说。

(三)巴金一九一五年在《家》的后记最后一行中写道,我始终记住:青春是美丽的东西,而且这一直是鼓舞我的源泉。在他一切的作品中满溢着青春的气息。《家》尤其浓厚。这种气息反映一颗单纯的心灵,读他的小说,你毫不感到是在绞汁写出来的,是唱出来的,是呻吟出来的,是自然的天吁。这不是艺术,这是天赋。如他所说“永生在青春的原野。”

(四)在《家》里,我们觉得可爱的人十分可爱,可恨的人只感到可悯(含有同情的怜悯)。这里使人记起“哀而不伤,怨而有怒”这两句话。《家》有这种恰到好处之美。人物形象有血有肉,巴金不是靠客观冷静的描写取胜,而是靠澎湃的激情折服人。他的小说,人物众多,头绪纷繁,却写得有条不紊,起伏有道。

《家》中典型人物

1.以高老太爷及克明为首的封建统治势力,在封建大厦将倾的时期,他要挣扎,要维持那个所谓圆满的最有秩序的大家庭,但他又维持不了。高公馆内部出现极度的混乱,以克安,克定为首的子孙坐吃山空,腐朽淫荡,偷鸡摸狗,无恶不作。这批蛆虫般的寄生动物根本无法也无力接替他的封建家业,他们一方面勾心斗角争夺权力,另一方面压制迫害年轻人,他们剥夺年轻人恋爱的权利,使梅表姐抑郁而终,瑞钰悲痛身亡,鸣凤投湖自尽,婉儿被逼出嫁。所有的这一切都加深了家族内部的矛盾,也引起了觉民觉慧的反抗与离家出走。

2.以觉慧为代表的具有民主思想的觉醒者反抗者,觉慧是五四运动的积极参与者,他既编辑《黎明周报》进行反军阀宣传,又直接参与反对地方督军的请愿。一开始就把矛头指向封建军阀政权,他的“叛逆”引起大家庭的恐慌,遇到高老太爷的禁止,这一进步导致他反抗封建家族族权的斗争。他违背祖父禁止他参加学生运动的命令,我行我素,支持觉民逃婚,不顾自己三少年的身份,敢于爱一个下等的女佣人鸣凤。这不仅仅是对祖父的反抗,更是对整个封建礼教,等级观念的挑战,最后他毅然离家出走,与封建家庭彻底决裂,表现了他反抗封建的坚决性和彻底性。

3.以梅芬、瑞钰、鸣凤为代表的横遭摧残的几个可爱的女青年。梅芬是大家闺秀,从小与表兄生活在一起,他们情感相投,成了私恋的情人。但是,不自由的婚姻制度无情的摧毁了她的自由恋情。她承着母命,不情愿的远嫁外地,一年不到就守了寡。回母家后,忧愁发病,带着极端的痛苦死去。瑞钰在高家是个柔顺、温柔、贤惠的少奶奶,“血光之灾”的说法给她带来痛苦,以致难产而死,是封建迷信毒害了她年轻的生命。鸣凤是一个可爱的少女,他聪明美丽善良,但地位卑微,处在被打骂被奴役的丫头地位,这注定了她的全部悲剧命运。他和三少爷觉慧有着深厚的恋情,可是隔着她们的是封建等级那厚厚的墙,她有爱却得不到爱,无法和觉慧结合。相反,高老太爷却把她当成礼物送给了六十多岁的冯乐山做小老婆。鸣凤不堪忍受这种安排,投湖自尽。她们三人都深受封建势力的迫害和摧残。单因为她们的身世经历各不相同,各人的性格也各不相同。她们都具有女性的善良与温顺,但在鸣凤的纯洁柔顺中蕴含着反抗,对于封建势力对他的惨重打击,她绝不屈服,纵身投湖,殉与爱情;而在梅芬的温顺善良中,更多的是忍受痛苦,承受不幸,带有凄凉绝望的情感色彩;瑞钰的温顺善良,更多的表现在对待觉新和梅的爱情问题上,对待家庭内部矛盾中所具有的自我牺牲品格。

4.塑造最丰满最成功的形象——觉新。觉新的性格是复杂的,矛盾的。他处在长房长孙的特殊地位,从小耳濡目染的是光宗耀祖的教育这些使他有着振兴家业的精神重担,封建礼教的长期熏陶使他形成了懦弱顺从的性格特征,失去了自己的意志,失去了青年人应有的朝气和反抗性格,他奉行作揖主义和不反抗主义,想用自己的痛苦换的暂时的苟安,这种“无反抗”“作揖”的道路将他推向绝望的深渊。但是,觉新生活在中国社会新旧交替的时期,他看到了旧式家庭的腐败没落,分崩离心,及自己振兴家业的希望破灭的现状,同时受到了五四新思想的冲击和影响,在某些场合,他庇护反抗封建秩序的弟妹们,甚至资助他们逃出家庭。他没有泯灭是非憎爱的正义感和对新生活的追求,不甘于死心塌地的做垂死阶级的殉葬品。他只能在旧的人生道路上苦苦挣扎,走向绝望的深渊。总的来说,觉新具有双重人格和双重地位;他既是封建家族制度的牺牲品,又是不自觉的害人者,既是一个软弱者,又是一个在艰难痛苦中萌生着新的思想的觉醒者,这就是觉新性格的所在,他可恨,但更可悲可怜。他的悲剧表明了一个真理:如果不勇敢的反抗而妥协投降,只能导致自己和新一代的毁灭。

诺曼底号遇难记读书心得感悟 篇13

独守空船,相思闺情,最终的悲剧结尾,是那么的哀婉,但那么自然。

易挑锦妇机下字,难识闺房玉女心。爷爷,傩送,天保,或许都知道,或许都不。这宁静和煦的生活,并不能使他们心静如水,因为一个女孩,因为一份感情。

问世间情为何物,直教人生死相许,这种在现在恶俗一般的三角关系,却那么的天真,淳朴,自然。

只是他们不懂,这懵懂的少女心,这迷惘的前途,会使他们跌入深渊,但我相信,就算跌入,也带着笑容。

憩静的夜晚,洒下一滴月光,照亮了翠翠的如棉絮的心,她想,那段不长但却占据她心灵的对话,那俏皮似得回答,看不清的朦胧郎君,仿佛激起了她心中自然地少女情怀,不禁留意住他,那种清净纯澈的思念慢慢包裹住她,好似沐浴在春光中,她不懂,这种感觉就是喜欢,是一种道不明的体验。

怀念与他的第二次相遇,她看清了那个摸得到却好似摸不到的人,她呆住了,这个她认识却又不认识的人,给了他一种无形的威严和亲和力,她找到了梦里的另一个主角,她抢着渡船,无非是一种心思的表露,她爱上了他。

爱情的魔力,不在相见,而在相思。夜晚会不自觉的微抬额头,看看那似水的月亮,想念着两次不长的相遇,记挂着对方的一切,仿佛世界都消失了,两人面对面站在一起,执手相看泪眼,竟无语凝噎,就那样望着,就拥有了世界。

那无奈的变故,打乱了这种相思,天保的离去,深深触及了傩送的心,他对这种相思产生了厌情,内疚,不敢面对所有人,从此,他不敢再踏入那个空间,一个只属于两个人的空间,他选择了逃避,逃出这个不敢留恋的地方。

当离去的灰尘化作空中的雾霭,有个女孩,轻靠在船上,用脚有意无意的玩着水,望着远方,好似看到了如意情郎的背影,伟岸,坚实,却又带有一丝缥缈,她又露出了一丝笑容,还是如此淳透,微风一吹,吹落了一滴露水,打到了她的手背,她抬起手背,过了一会,多了一滴一样的“露水”。

诺曼底号遇难记读书心得感悟 篇14

清爽的早晨,作者带着满怀的好心情,独自一人来到了山中拜访自己的好朋友。

作者用特别的描写方法让我感受到了他与大自然的亲密无间:走进树林,作者把自己也当成了一棵树,可见他是多么喜爱这些生命。作者运用了一句反问,更突出了他与大自然的亲密:“这山中的一切,那个不是我的朋友?”他还运用了比喻、拟人、排比、设问、反问的修辞方法与许多好朋友打招呼。忽然,下起了雷阵雨,岩石给作者撑起了巨伞,给了作者一处看雨的好地方,更突出了作者与岩石的深厚情谊。

作者用生动活泼的文笔表达了他与大自然的各种生灵的美好友谊,并赋予了它们生命,还运用了亲切的第二人称来与大自然对话、交流。我们应学习这种写法,给自己的文章多添一丝生动。

诺曼底号遇难记读书心得感悟 篇15

我曾无数次期待过,可以背着行囊四处流浪……在夕阳笼罩的原野上,在茫茫无边的沙漠里,在潺潺流淌的小溪边,在百鸟齐飞的山林边,我希望在有生之年让这些地方都留下我的身影。

读《美洲纳粹文学》,我赫然发现几乎所有的作家都有四处流浪的习惯,他们喜欢把自己的足迹印遍地球的每一个角落。

然而,现实生活中,在无边的时间里,我选择看书。

我读了《百年孤独》,恍然发现,这世上有很多人比孤独的旅人还要孤独。

马尔克斯笔下的梅尔基亚德斯似乎更孤独。

你看,他来无影去无踪,在沙漠上得热死病后,还把孤独的灵魂留在人间,留在那间曾经居住的屋子。他孤独的灵魂乞求的不过是有人跟他对话,有人了解他的世界。他在不朽的羊皮卷上预知了布恩迪亚家族百年的历史:家族的第一个人被捆在树上,最后一个人正被蚂蚁吃掉。他使布恩迪亚家族的几个男人都跟他一样陷入“实验”的疯狂和探索未知的狂乱。在那无人理解的无边的科学的、带有无穷魔力的世界里,他和布恩迪亚家族的男人们交流的其实不是生活的科学,而是彼此抚慰无法安放的灵魂。

乌尔苏拉是布恩迪亚家族里活的最久的人,应当也是这个家族里最孤独的人。

她的孤独,在于有一个陷入无穷无尽探索世界境地的丈夫,这个丈夫时而有指点江山的魔力,时而又陷入梅尔基亚德斯设置的怪圈,只要梅尔基亚德斯一出现,他的生活之钟就停止了旋转。不仅如此,她的儿子、孙子、孙女以及孙子、孙女的孩子,以及孩子的孩子,无不纠缠在自我的世界里,以至于乌尔苏拉一说起家里的男人,常常恨恨地称家里生活着一群疯子。读书笔记.她死在圣星期四早上,死之前本已经失明的她彻底失去了理智,走进卧室,会遇见生命里经历过的无数人,她在与这些亡灵的对话里,迷失在自我的世界里,也彻底迷失在亡灵的迷宫里。她死得很凄惨,只被放进一口比当年装奥雷里亚诺的篮子略大的小棺材,也只有很少的人。

诺曼底号遇难记读书心得感悟 篇16

《谁动了我的奶酪》是一本非常畅销的书,虽然它只是一个寓言故事,却告诉我们,在如今的年代里,应该怎样去应对变化。

故事讲的是在一个遥远的地方,住着两只老鼠和两个小矮人,两只老鼠一只叫嗅嗅,一只叫匆匆;小矮人一个叫唧唧,一个叫哼哼,他们都爱吃奶酪。开始,他们都勇敢地进了迷宫,在C站寻找到了很多奶酪。可是,忽然有一天所有的奶酪都不见了,两只老鼠急匆匆地又去寻找新的奶酪了,两个小矮人却在那里喊:”谁动了我的奶酪?“当他们还在埋怨是,两只小老鼠已经克服困难在N站找到了自己喜欢的奶酪。这时唧唧劝哼哼一起离开,可哼哼不知该怎么办,唧唧只好一个人离开。路上他把想到的写在了墙上,给哼哼留下了标记,而自己克服了一切困难,恐惧、饥饿、劳累……终于和小老鼠重逢,正快乐地跳着、蹦着地时候,忽然听见从远到近传来熟悉的脚步声……

在这四个形象中,我更想哼哼,遇到一些问题或者面对突然发生的变化,就不知该怎么办,总是埋怨别人,不去及早想办法处理。比如我老是丢三落四的,为什么呢?妈妈和我一起分析,其实就是父母管得太多,结果不管什么事情,总是依赖他们,自理能力越来越差,遇过遇到一些突发事件,就不知道该怎么办了!

我想我应该学习匆匆、唧唧和嗅嗅,去适应变化,利用变化。这正像唧唧在墙上写过的一句话:”注意细小的变化,这有助于适应即将来临的更大的变化,一定要随着变化而变化,才能享受变化!!“读了这本书对我来说真是受益匪钱啊!!

诺曼底号遇难记读书心得感悟 篇17

当我第一次看到“复活”这个书名时,我心里就产生了疑问:谁,怎样就复活了?然而当我把这本沉甸甸的大书从书架上拿下来时,我知道了答案就在这一片片的白纸黑字里,只有用心去读,才能体会到作者叫它“复活”的用意。

看完了书,合上书页后,聂赫留朵夫成了一个思考的对象。这本书的主人公就是他。贵族青年聂赫留朵夫早年与家中的女仆卡秋莎产生了爱情,但没有过多的表露。当他做了几年的军官回来后,原本善良的他变成了一头野兽,他玷污了卡秋莎,给了她一笔钱后就抛弃了她。在一次法庭审理案件时,聂赫留朵夫作为陪审员,目睹了审理马斯洛娃(卡秋莎)毒死人命案的经过,当马斯洛娃的眼睛扫过他时,他心里极度恐慌,并产生了自己无法控制的悔恨情绪。随后的几天里经过思想的斗争,决定“救助”马斯洛娃,及其他一些受苦的人并与马斯洛娃一同流放到西伯利亚。

读罢这本《复活》,我的感觉就是聂赫留朵夫能洗心革面,便会他原来的自己实在是非常不容易。早先他只是一个善良的贵族青年,过着属于自己内心真实想法的生活,与卡秋莎也只是单纯的喜爱。但是周遭的人不但不认可他,反而觉得他很好笑,使他逐渐不信任自己的善良。经过三年的军旅生活,他更深刻的感受到了这一点,并决定做“跟大家一样的人”。

这使他成了一个“彻头彻尾的利益主义者”,迷恋酒色,享乐成癖。他把女人当作玩乐的工具,于是便在回来后诱_了那个曾经单纯可爱的卡秋莎。但是在法庭上的相遇为他敲响了警钟。他不敢直视马斯洛娃那双斜睨的眼睛。他感觉是自己曾经的举动迫使卡秋莎堕落成现在的马斯洛娃,一个妓女,囚犯。于是经过多日的思想斗争,他找回了自己的本色,他要去“救助”马斯洛娃,并要彻底拯救她,与她结婚。这就是聂赫留朵夫的第一次复活,这让他重新认识了这个世界。它有许多被污染的地方需要清理。

然而,我认为聂赫留朵夫能做到这一点的确是很不容易,这也是给我感触最深的一点。在周遭可以说是十分恶劣的环境中,他堕落了。可他能被与马斯洛娃的重逢所震撼,并决定重新做人,这说明了他的本质还是善良的。他重新开始记日记,“同自己谈话”,“同人人身上都存在的真正的圣洁的自己谈话”,这是他人生的转变。试想,在一个人人都享乐的贵族环境中,一个公爵,只因一个妓女、囚犯的一个眼神就改变了自己,这是多么不可思议。然而聂赫留朵夫却做到了,而且是在那个妓女、囚犯近乎于玩弄的态度下做到的。这不得不让人好好思考一下自身。

“知错能改,善莫大焉”。聂赫留朵夫的第一次复活不仅“救助”了马斯洛娃,让她明白世上不知是黑暗,还有善良的人,也“救助”了其它受着不公平待遇的人。他帮助被诬陷的囚犯,去找典狱长、副省长,那些它并不想见的人。复活的聂赫留朵夫成为了黑暗社会中的一个亮点。

至于他与马斯洛娃一起流放到西伯利亚,并不顾马斯洛娃已不再需要他,仍旧希望马斯洛娃能宽恕他,并想继续帮助马斯洛娃,这也就是聂赫留朵夫真正的复活了,他已经彻底从一个贵族公爵便回一个善良的人了。

想想聂赫留朵夫,再想想我们自己。他在一个不甚明朗的环境中复活,找回自己,而我们在一个十分光明的环境中就应该做得更好。但是即便如此,还是有很多让人无法接受的事实。在报纸上曾刊过有个见义勇为的人总是不遗余力对不正确的事做出纠正。有次他看见卡车司机乱吐槟榔汁,好心的劝他,却因而被打了几乎送了半条命!真是讽刺,报上这活生生的案例使的原本热心的人不由得犹豫起来,最后大家看到不公平的事情不再劝阻,变成一幅事不关己,高高挂起的样子。这是一个好人的“堕落”。

再举一个很常见的例子。如今有许多学生不好好学习,天天往游戏厅、网吧跑,家长、老师教育了半天,可惜学生不仅“坚决不改”,还“变本加厉”。学生不学习,也可以适当休息。但是根本不把学习当回事,只顾“休息”就是“自甘堕落”了。在一个很好的环境中不知道珍惜,倒显得不如到差的环境中体会一下再回来的好。可是又有谁会到差的环境中去体会呢?既然没有人想去,那么就是人们不知珍惜了。

《复活》使我懂得了人的善良又多么重要。珍惜现在良好的环境,真正去付出自己,把握生命的每一刻,不让一丝一毫的不良因素动摇自己,这才是生活的真谛。

诺曼底号遇难记读书心得感悟 篇18

在世界各大宗教中,只有犹太教、基督教及伊斯兰教是“经典宗教”,因 为这三种宗教都有一部被称为“神圣经典”的圣经。

《圣经》被称为“惟一的书”,又通常被描述为“最伟大的书”。它对历代人们的无尽的价值与影响,历史上没有一本书像《圣经》一样对人文有如此影响力。到目前为止,《圣经》已被译成20xx种语言,《圣经》每一年的销售量比任何一本书的年销售量都要多。

其实关于《圣经》这本书,从小就开始接触了,但也只是听大人说说而已,说得最多的是关于人们信奉耶稣的事情,在信徒的心中耶稣是神圣又慈爱的,他就救苦难的人们于各种灾难之中。总是觉得他是一种跟宗教信仰有关的很神秘的东西,觉得和自己没多大的关系,也只是喜欢听一些故事而已。随着在高中历史课上对历史的深入了解,慢慢的对西方历史文化有了更深刻的了解,并且历史课上老师多次解读《圣经》,他特别喜欢《圣经》,受老师的影响,因此对它充满了好奇,于是现在就找了机会看了。

我知道《圣经》是一本很厚的书,字密密麻麻的很小,如果不喜欢的话是很难坚持读完的。所以我先看了关于圣经的一些故事,然后才读的《圣经》。一些故事是我小时候就知道的,例如最常听到的就是“亚当与夏娃”,还有“诺亚方舟”的故事,那时听起来感觉是十分之有趣的。其实大部分是关于斗争的故事,虽然不是很感兴趣,但还是坚持读了。《圣经》故事的篇章真的多到令人不可思异,在这之中我也慢慢的去了解到,西方的文化,以及他们的经典书目《圣经》,去了解到西方的重要文化资产的书目。

通过读《圣经》的过程,让我深刻的体会到了读书要掌握一定的技巧,否则会受益很浅,学不到多少东西。还有就是要有兴趣,尤其像《圣经》这样深奥复杂的经典读本必须静下心来读。一开始读时还必须弄清它的基本框架。这样读起来会轻松一些。

《圣经》一般包括《旧约全书》、《新约全书》和《圣经后典》。《旧约》又包括律法书、历史书、智慧书和先知书四个部分;《新约》分为福音书、使徒行传、使徒书信、启示录四大部分;而《后典》则反映了《旧约》与《新约》过渡时期巴勒斯坦的情况。

通过读《圣经》,也让我对圣经对基督教有更进一步的认识。《旧约》的主线是耶和华拯救其子民以色列人的历史。我们可以先从圣经的故事目录中,了解到架构是从一开始的创世、犹太人遇到一些问题以致必须不断迁移,最后述说耶稣的诞生、早年生活以及最后如何的死亡,也因为有这一连串的事件发生。后来经由后人的统整之后,才会出现《圣经的故事》这本书。由七天创造世界来作为一开始的开端,这为之神话般的创世就此因而展开,接着开始出现了我们熟之的亚当与夏娃,偷尝禁果之后,进而开始衍伸了后代,也因为人们的生成,开始出现了,我们是如何来的,为什么是这样来的,后来慢慢的,衍生成了,上帝创造了世界,这种说法,有点带着神秘的色彩,而一开始就对于“神”之存在的,正是犹太人。而故事也因此开始慢慢的开始架构出来的。这就是《圣经》的大体框架,弄清了读起来也就容易了。