世界因你而精彩  
日历
<2006年6月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
统计
  • 随笔 - 169
  • 文章 - 1
  • 评论 - 138
  • 引用 - 0

导航

常用链接

留言簿(9)

随笔分类(163)

随笔档案(154)

文章档案(1)

新闻档案(1)

相册

收藏夹(1)

个人杂杂

友情链接

自学考试

资料搜索

最新随笔

搜索

  •  

积分与排名

  • 积分 - 357298
  • 排名 - 152

最新评论

阅读排行榜

评论排行榜

 

2006年6月5日

     摘要: nginx的结束重启一般是通过下面命令来实现的:1kill -QUIT 26000其中26000是nginx的主进程号。每次都需要通过ps命令来查询nginx的主进程号,非常麻烦。 在《实战nginx:取代Apache的高性能Web服务器》一书中提到了使用pid文件的方法,不巧的是给的命令漏了些东西,这里给出完整的指令。什么是pid文件pid文件就是一个纯文本文件,里面记录的是...  阅读全文
posted @ 2014-11-19 17:22 张秀兰 阅读(6470) | 评论 (0)编辑 收藏
 
随想,一切都是随便想想
好烦,好烦,好烦
找不到属于我自己的空间了
也找不到我的位置了
更找不到你的想法了

烦,一个字。

或许我本不应该跟你计较,我本应该让你想干吗就干吗,比如你想玩游戏你就去吧,或许会很好
难得休息一天,我想着你应该是可以帮我带小孩,至少你早上睡了一个早上,中午我想睡会觉时,你应该帮忙看会,
可你是在忙在玩游戏。。。。我的心非常失落,非常非常

不知你是否是这样想,难得休息一天,你应该好好玩,好好在家休息???
真的是这样吗????

我不知道,我很想知道,很想很想。。。。

我的臭脾气也就这样,我觉得不爽我会绷着脸,不给你好脸色看,更不想跟你说话。。。。。

或许你也不爽吧,因为我没给你脸色看。
我们就这样越来越是这样了。

当然你也没像当初那样了,或许你也受不了了吧

不懂不懂,我也好累好累。。。。
带小孩应该觉得很快乐才对,或许我不应该跟你计较那么多吧
或许我要体谅你的辛苦吧
或许我不应该有这样的臭脾气。。。。

不懂不懂,真的不懂

posted @ 2010-10-10 20:06 张秀兰 阅读(505) | 评论 (1)编辑 收藏
 
求俺婆婆纯手工打的枕巾可值多少钱呢?
俺婆婆是个非常善良,勤劳的妇女,在家除了种些蔬菜,其余有空闲时间就在家里打些自己可用得上的手工毛线活。
这次过年回家她给我们打好了好几个枕巾,可看如下图片哦
这毛线的手工枕巾非常耐用,之前婆婆给我们打的枕巾都还非常新呢
现在想跟对纯手工品的枕巾有爱好的网友们一起分享,也想了解下婆婆这纯手工做的活可值多少钱?

婆婆花费的工时跟本钱:
1.毛线钱 10-15元
2.两天的工作量(几乎都花在“喜喜”这喜字)

想咨询下网友们这一条枕巾可值多少钱呢?
若你喜欢,你多少钱可接收呢?
非常感谢网友们的帮忙!

第一款:

http://www.blogjava.net/images/blogjava_net/etlan/43981/r_2-IMG_5321.jpg
posted @ 2010-02-20 14:20 张秀兰 阅读(475) | 评论 (0)编辑 收藏
 

你老妈有点懒,刚写了挺多的了,可你老妈在看B模式一个问题,不小心直接按刷新了,所有网页都刷新了,刚写的那么多没了,得重新写。。。
好吧,重新来写

那是10月18号,是国庆放假回来上班第一天休息天,是周日
这天你老妈跟你老爸想出去逛街,已经有一段时间没出去逛街了
原本还想去洗牙的,后面听陈红阿姨说医生说不用去洗牙,只要自己每天刷牙时多用点时间,至少10分钟,肯定可以洗白的,还好,要不然,妈妈会觉得
对不住宝宝你的。
今天购买东东的收获倒是没有,不过呢,我们俩总结了个经验:以后买鞋子,不买addidas,liling,安踏什么的,我们要去买进口品牌,价格差不多,
那个耐穿哦,跟你晓阳叔叔学的,哈哈

今天去逛街也没有说走得很累,还没逛多久时,在跑过马路时,你老妈就在喘大气,你爸都觉得奇怪,还说怎么那么喘。我还回答说可能是太久没运动了
后面在回家的路上,老妈觉得不对(刚写到这,又有事情要处理,而且还感觉宝宝你要吃东西啦,偷泡了杯黑籽麻糊喝了)
决定去药店买试纸测试下,回到家,休息几分钟后测试,结果出来了,中队长啦,有点点模糊就是,明早得再测试下吧。
当时你爸你妈啊我们真的是又兴奋又激动,其实我们应该还有份担心,因为来得太忽然了,感觉还没对宝宝的环境做最好的准备,怕委屈宝宝了哦
那晚你爸躺在床上,没过会就朝着你妈我笑笑,嘴巴还发出:嘻嘻。你爸真逗呀,估计他也是兴奋之中
第二天早上也就是19号早上一早测试,结果当然明显喽
昨天你爸说这几天他有点乱想,万一这两天你妈我的“老朋友”来了,那得完了,哈哈,原来你爸还在胡思乱想呢
这也是可以理解的,来的有点忽然哦,嘻嘻
希望宝宝不会责怪我们哦

今天你爸去灌口客户那处理问题了,他下午来电说今天在客户很生气,因为网络问题,后面他4点多时处理完事情就去天虹给妈妈买零食还有些日用品喽
因为你妈现在呀手脚会酸呀,怕明天周六去逛,逛不了那么多哦,就我们母子(女)累着了哦
你爸对老妈非常非常好的哦
你爸呀,其实挺辛苦的,白天上班,下班后还得赶着回家做饭,因为他呀,想你妈妈到家就有吃的啦,这样,宝宝就不会被饿着喽
晚上他还不喜欢早睡,喜欢玩电脑游戏什么的,还有偷菜哦,这会很多人玩的一个QQ游戏,不知,你懂事那会还有没有,呵呵
他一般都是12点多才睡的,早上有时7点就起床做早餐喽,起来煮豆浆,还得下去买个馒头,来配豆浆。
有时妈妈我会跟你爸讲说别那么晚睡呀,他会说早睡的话,睡不着,你妈我一般都是10点左右就去睡觉喽,这样我们俩都好:)

刚刚你爸打电话说已经买好东西了,买了很多好吃的哦,辛苦你爸啦,在此,给他个kiss吧,哈哈

好了,差不多可以下班回家喽
明天周末喽,真好!
明天再去超市买点东东,然后就准备回老家休息一周喽
原本是想去云南旅游呢,可宝宝想我们了,回家也不错哦
爷爷奶奶都对妈妈非常好哦
都很疼妈妈的,以后肯定也很疼宝宝哦
宝宝一定要健健康康地成长哦
这样,我们一家人就放心喽:)
posted @ 2009-10-23 17:50 张秀兰 阅读(398) | 评论 (0)编辑 收藏
 
最近上班实在是太忙了,好像有做不完的事,估计跟最近长工资也有关系,多拿了那点工资,就得多干很多的活,那工资算法实在没人性,呵。
7月份终于成了厦门户口的一员了。
当时拿到户口页时,第一想法就是20090909我们办证去,呵呵
拿到户口页没什么感觉兴奋,估计是被这长期的等待给冲淡了吧。

提前一个星期就打听结婚证还没拿到能不能请婚假,说可以,开心哦,准备请假周三(200090909),周四,周五共三天。
200090909起了个大早,6:30的闹钟,当时还想着若早上可以办完,下午就可以回家了,那天刚好还要去妇幼,
坐503到了妇幼站下车就先去挂了号,那早前面几个都是第一次挂号,虽然前面只有8-9个人,可等了快20分钟.
也就因这到名汇广场时已经8点了,哇,前面已经排了好长好久的排了,而且已经有三个队列了,真是个好日子呀。
估计大家也等这天等很我了:)
赶紧排好队了,LG去复印户口页了,要把两个人的户口页复印在同一张A4纸上。
那天刚好LYP夫妇也要一起去办,我跟她LG先在排队,YP还要去公司盖章呢
此时我们两个在聊天说到早知道就昨晚来看午夜电影了,看完直接下来排队,后面听说真有人3点就开始在那等了,
实在佩服了!这应该是他们人生一大美好回忆哦!
这来之不易的证,呵!

这了会看到有人拿着号码,原来还要取号呢,是在体检完后要去登记时按号叫的。让YP的LG去看看
他应该是个非常老实的人哦,取号那边写着体检完后取号,他空手回来跟我说现在取号没用,要体检完才取号,呵
等俺LG复印回来后,俺让LG再去看看,LG取了两个号,294,295.看到这号码可想早上是办不了的,估计要等下午了。
可没想到后面那个挤样,呵呵。

先在大门有工作人员把关,几对几对先进去,进去后继续排队体检,哇,里面人那个多呀,难怪刚那工作人员MM说进来
里面空气不好,呵呵。
没办法,哪会想到空气好不好呀,赶紧办完就可以回家啦。
因为里面走道小,人多,实在是人山人海,到后面真呼吸难受,呵
可排了半天,排列都没动过,不对呀,大家都意识到了这点,有些人开始挤啦,挤到前面去吧
此时觉得这不是来办证,比赶集还要赶集,呵呵
还好LG聪明,走旁边饶到前面去了,其实前面抽血空间挺多的,就是道路窄了,队伍感觉没动
说到抽血,更让俺记住,长这么大第一次抽血抽了两只手,因为本身血管就是看得非常清楚,之前从来没有找不到血管而
重新换另外一只手,今天那护士对我下了恨手,第一次左手插进去,没血出来,她自己在偷笑,然后说换只手,我晕!!
还真第一次看到此景,壮观呀!
又被抽了三支试管,而且还那个疼呀。。。。

接下去还要去妇室体检,一直想问医生自己能否不用再体检了,因为之前自己去妇幼计生科检查了。
还好在填写完资料时,那妇室里的医生说若之前有体检过的就签个名,写上在哪体检就可以了。哇,听到这,我那个开心呀。因为对这妇室的体检也有耳闻了点,手脚都很重的!
原来那医生被我们这群人山人海办证群众吓倒了,后面才提出若之前有体检的就不用再体检了,她们自己也轻松点。

因此我比他们三个早出来透透气了。
那时也差不多11:30分了,妇幼挂的号打的过去好了,到了之前那医生已经下班了,还有就是那个很讨厌的医生,没想到
是她,更是郁闷,又被她“训”了一顿,真受不了她!

上药出来LG他们也体检完了,回到名汇集合,才80多号,我们只好先去吃饭了。
按这速度要排了什么时候呀。。。。
后面在那水里店来了杯水里汁喝,我们在那边聊到快3点才进去大厅等。
回去大厅继续等,继续聊天喽,没办法
哇!真没想到会有这么多人等着这么一天!

终于快到我们了,290号开始我们就着急着等着,那时叫号也有点乱了,叫好了还在叫,我们几个在那边叫已经叫过了已经叫过了,294到我们啦!
当坐在登记那椅子上时,俺心里那个紧张呀,再加上那工作人员来了句:你们一个福州,一个诏安。。。
吓倒了,还以为要为难我们呢。原来是他看错了。

就这样紧张又重新填写填错表单的,唉,紧张呀。
终于拿到证了,18:25左右!
为了这证,我们足足等了一天,这将是我们美好一个回忆,也值得!嘻嘻!

其中为了作纪念我们还用手机拍下了当时那人山人海的场景,看看图片就知道了。

20090909美好难忘的一天!!!
祝愿所有天下夫妇生活幸福美满,天长地久,长长久久!!!
posted @ 2009-09-15 22:30 张秀兰 阅读(490) | 评论 (0)编辑 收藏
 
上一遍已经有写到手上长了很多小水泡,医学上叫汗疱疹,专家都说没事,数周后自然会好,可痒起来那可真要命呀!

我们从5月份开始就准备要小孩了,就开始有吃月酸了,可天公不作媒,在6月份去妇幼做孕前检查,查出宫颈有非正常细胞
周六也就是8.8号时去拿了报告说宫颈有中度糜烂,还有个高危型hpv68显示阳性,医生很严肃说建议做红外线治疗,治疗后再准备小孩的事

外面下着雨,犹如我心血在滴。。。
(其实当时外面没在下雨,可我的心血真的在滴,忽然整个人傻了!)

现在只能别想那么多了,凡事都会好起来的!!!
相信老天爷会一直照应着我的!!!

有时,人总是会在不恰当的时候想起不恰当的事,呵!
就在此时,我就想起了姐姐说的,她帮我算命说今年要生个小宝宝会比较好!
若真的今年生宝宝了,就可以在生完宝宝再做这些妇科问题了。
还听说有些妇科问题,在生完宝宝后会不治而愈

但愿我下个月的治疗一切顺利!!!
posted @ 2009-08-10 10:52 张秀兰 阅读(382) | 评论 (0)编辑 收藏
 
药方:金银花、白鲜皮、马齿苋、蒲公英各30g,煎了泡手,一天二至三次,一次15-20分钟。一付药可以泡3天。
  此方对症如下病情:手上起小水泡、一挤有透明的水、痒。这个方只是针对有渗出型的手部水泡,对其它的症状应该没得啥子用得。

原贴:http://cache.tianya.cn/techforum/content/100/696887.shtml

最近手上长了很多小水泡,实在是难受
为了这手,回家给小哥皮肤专家看了好多次,拿了好多涂的药,专家们都觉得这是小问题,没事的。
可手难受得不得了
前两天跟高中同学阿步,还有俺LG一起去参加高中同学的婚礼,其实当时不大想去的,因为我的手实在是太难看了,
我经常说已经不是手了,呵呵
那天阿步同学看到了我的手,他说他之前也有长过,还更严重100倍,虽然还没说到是什么药,怎么治,但当时就心里放松了下,
原来我还不是最严重的呀,有点安慰的感觉,呵!
他说去买蒲公英来泡手,也可以一起喝。
刚好接下去两天是周末,可以好好泡泡了。
周六早上去了妇幼回来下车就直接去药店买蒲公英了
蒲公英挺便宜的,买了120g才1.7元。
泡了觉得是有效的。
再后面也上网搜索下,就找到上面那帖子了。
谢谢那们好心发贴的。
准备晚上回去再买上面说的那三种,按上面的药方来泡泡
posted @ 2009-08-10 10:25 张秀兰 阅读(3275) | 评论 (2)编辑 收藏
 
     摘要: 童装尺码说明及尺码身高衣长对照表     由于儿童的年龄跨度大,从初生婴儿到15、16岁的少年,身材差异悬殊,因此儿童服装的尺码比成人服装要复杂的多。成人服装的尺码大小基本上都用XXS、XS、S、M、L、XL、XXL来表示,比较简单,而儿童服装的尺码表示方式就非常多,常见的有直接用年龄来表示,如:1Y、2Y、3Y、4Y……. ,有用身高来表示...  阅读全文
posted @ 2009-05-13 16:53 张秀兰 阅读(3270) | 评论 (1)编辑 收藏
 

IE收藏夹

1.备份收藏夹的方法:

方法1.依次打开 我的电脑->系统盘(c盘)->Documents and Settings->你的用户名->收藏夹(Favorites) 将这个文件夹复制备份

重装系统后按照上面的路径 覆盖 收藏夹 文件 就可

方法2.打开IE浏览器 点击 文件->导入与导出...->下一步->选者"导出收藏夹"->下一步->选者存放路径 完成备份 注意不要存在系统盘里否者重装系统后将被覆盖

备份好后->重装完系统后

打开IE浏览器->文件>导入与导出...>下一步>选者'导入收藏夹'>一直到完成就可

2.移动收藏夹的办法:

1.先用左键单击“C:"Documents and Settings"用户名”下的收藏夹文件夹,然后在窗口左边的任务栏点“移动这个文件夹”,选要移动到的位置。如:D盘。

2.从屏幕左下角依次点[开始]-[运行],出现对话框后,在“打开”中键入regedit,点[确定]进入注册表编辑器窗口;

依次打开文件夹

HKEY_CURRENT_USER"Software"Microsoft"Windows"CurrentVersion"Explorer"UserShellFolders;

HKEY_LOCAL_MACHINE"Software"Microsoft"Windows"CurrentVersion"Explorer"UserShellFolders

3.在最后打开的UserShellFolders文件夹内容(右侧窗口)中的Favorites项可以看到当前IE收藏夹的位置,双击Favorites左边的图标(标有红色的“ab”),在打开的对话框“数值数据(V)”栏,将“%USERPROFILE%”改成自己定的位置,例如,定在F盘根目录下,改完后“数值数据(V)”栏中的全部内容应为“F:"Favorites”,然后点[确定]完成修改;

说明:系统默认IE收藏夹的位置是%USERPROFILE%"Favorites,其中“%USERPROFILE%”是系统的特殊标记,实际上指C盘上系统默认位置,即C:"DocumentsandSettings"Owner(用资源管理器便可找到)。

4.关闭注册表编辑器窗口,点[开始]-[注销]重装入一下XP或重启一下电脑,使新的设置生效。

(注意:如果想要验证是否修改成功,可以在收藏菜单上点击整理收藏夹。)

我的文档

在Windows XP系统中默认的“我的文档”存放位置是在系统盘中,把“我的文档”存放到另外一个分区,那样就不用怕重装系统时会失去资料了。那如何移动呢?

在Windows桌面上右键点击“我的文档”->属性->在“目标文件夹”选项卡里点击“移动”->选择自己喜欢的文件夹即可。

首先在“开始”菜单或桌面的“我的文档”图标上点击右键,在弹出的菜单中选择“属性”。弹出如图1所示的对话框。

把桌面、我的文档、IE收藏夹设置到其他位置 - banny_z - 失忆の城图1 属性对话框

在图1所示页面中选择:“Find Target”为“我的文档”选择目标文件夹,即可完成把“我的文档”的存放位置放置到你自己选定的文件夹中。点击“Move”按钮即可完成“我的文档”文件夹中内容的移动。用这种方法不仅可以实现把“我的文档”移动到其他位置的目的,还可以作为网络备份“我的文档”的一种方法。

[高级]桌面,我的文档,IE收藏夹设置

用注册表编辑方法

首先要在“开始”——“运行”内输入“regedit”打开注册表编辑器,然后要在“文件”下拉菜单中的“导出”功能备份好注册表,以防万一,接着在左侧窗口依次打开:
HKEY_CURRENT_USER"Software"Microsoft"Windows"CurrentVersion"Explorer"Shell Folders
在右侧窗口里,你看到的“名称”就代表那些特殊的文件夹,“数据”就是它们所对应的默认存储路径。修改默认的路径就可以让你的桌面文件夹移动了,下面是所有的.


下面介绍一下各个“名称”所代表的文件夹
名称                        含义                          默认路径
AppData                 
应用程序数据目录    C:"Documents and Settings"User name"Application Data
Cookies Cookies    
路径                         C:"Documents and Settings"User name"Cookies
Desktop                  
桌面路径                  C:"Documents and Settings"User name"桌面
Favorites               
收藏夹                      C:"Documents and Settings"User name"Favorites
Personal                
我的文档                  C:"Documents and Settings"User name"My Documents
NetHood NetHood  
路径                         C:"Documents and Settings"User name"NetHood
PrintHood               
打印                         C:"Documents and Settings"User name"PrintHood
Recent                  
文档项路径               C:"Documents and Settings"User name"Recent
SendTo SendTo    
路径                         C:"Documents and Settings"User name"SendTo
Start Menu            
开始菜单路径            C:"Documents and Settings"User name"「开始」菜单
Templates            
建文件目录            C:"Documents and Settings"User name"Templates
Programs             
程序菜单路径             C:"Documents and Settings"User name"「开始」菜单"程序
Startup                 
启动路径                    C:"Documents and Settings"User name"「开始」菜单"程序"启动
History                  
网页历史记录             C:"Documents and Settings" User name "Local Settings"History
My Pictures          
图片收藏                    C:"Documents and Settings"User name"My Documents"My Pictures
My Music             
我的音乐                     C:"Documents and Settings"User name"My Documents"My Music
My Video            
我的视频                     C:"Documents and Settings"User name"My Documents"My Videos
Cache Internet   
临时文件夹                  C:" Documents and Settings"User name "Temporary Internet Files
这些文件夹称为Shell文件夹
其中“User name”为当前用户的名称
了解了对应的文件夹,就可以根据自己的需要去更改对应的路径了。(千万不要在这儿改啊,那样可就瞎忙乎了,系统重起后它会恢复成原来的路径)
在同一层中你可以看到一个“User Shell Folders”的子键,即在HKEY_CURRENT_USER"Software"Microsoft"Windows"CurrentVersion"Explorer" User Shell Folders
这里包括了用户定制的所有Shell文件夹的值项。只要通过修改“数据”,就可以改变它们的存储路径。双击需要修改的名称,在弹出的“编辑字符串”的“数值数据”里填上你要更改的完整路径,按下“确定”就完成了。如果没有你需要的,可以在右边窗口单击鼠标右键,选择“新建”菜单中的“字符串值”命令,对应上表,添加一个用于Shell文件夹的字符串值。
在上面的文件夹中,并没有outlook的通讯簿和邮件存放路径,它们分别在
通讯簿路径:
HKEY_CURRENT_USER"Software"Microsoft"WAB"WAB4"Wab File Name主键下,将“默认”键值改为你需要的路径。
邮件存放路径:
HKEY_CURRENT_USER"Identities"{8150FA22-A51C-4993-8A96-DC4B9A6B4C55}"Software"Microsoft"Outlook Express"5.0下,将 “Store Root”键值改为你需要的路径。

将修改好的这部分注册表导出保存,以便重装系统后可以直接导入而无须再次修改。

用文件重定向设置桌面、我的文档和IE收藏夹

建一个.inf文件,如MyWinData.inf   复制下列内容。然后,右键点击“安装”即可。
[Version]
Signature="$CHICAGO$"
[DefaultInstall]
AddReg=Shell Folders_AddReg
[Shell Folders_AddReg]
HKCU, "%User_Shell_Folders%","Cache",0x00020000, "D:"MyWinData"Temporary Internet Files"
HKCU, "%User_Shell_Folders%","Favorites",0x00020000, "D:"MyWinData"收藏夹"
HKCU, "%User_Shell_Folders%","Personal",0x00020000, "D:"MyWinData"我的文档"
HKCU, "%User_Shell_Folders%","Cookies",0x00020000, "D:"MyWinData"Cookies"
HKCU, "%User_Shell_Folders%","History",0x00020000, "D:"MyWinData"History"
HKCU, "%User_Shell_Folders%","Desktop",0x00020000, "D:"MyWinData"桌面"
HKCU, "%User_Shell_Folders%","Templates",0x00020000, "D:"MyWinData"Templates"
HKCU, "%User_Shell_Folders%","My Pictures",0x00020000, "D:"MyWinData"我的文档"图片收藏"
HKCU, "%User_Shell_Folders%","My Music",0x00020000, "D:"MyWinData"我的文档"我的音乐"
[Strings]
User_Shell_Folders="Software"Microsoft"Windows"CurrentVersion"Explorer"User Shell Folders"

Regsnap重定向设置桌面、我的文档和IE收藏夹

借用Regsnap(我的文档的更改路径-点击移动)摸索出设置在注册表中的真实路径。

下面以xp系统,ie浏览器为例,介绍将收藏夹、桌面和我的文档备份到E:"backup"的相应文件夹内,详细步骤如下:
        1.打开记事本,将以下内容复制进去,注意第二行一定要留一行空格。
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER"Software"Microsoft"Windows"CurrentVersion"Explorer"User Shell Folders]
"Desktop"=hex(2):65,00,3a,00,5c,00,62,00,61,00,63,00,6b,00,75,00,70,00,5c,00,"
4c,68,62,97,00,00
"Favorites"=hex(2):65,00,3a,00,5c,00,62,00,61,00,63,00,6b,00,75,00,70,00,5c,00,"
46,00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,00,00,00
"Personal"=hex(2):65,00,3a,00,5c,00,62,00,61,00,63,00,6b,00,75,00,70,00,5c,00,"
4d,00,79,00,20,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,74,00,73,00,00,"
00
         2.将其保存为.reg文件,然后双击合并进注册表。
         3.调出任务管理器将Explorer.exe结束掉,等桌面出来之后它的默认位置已经转移到E盘backup文件夹下了。
        4.重启ie,这时收藏夹也转移到 E盘backup文件夹下了。
        注意:源路径中的文件不会转移,需手动剪切过去。


顺便记下:
cuteftp保存session:C:\Documents and Settings\Administrator\Application Data\GlobalSCAPE\CuteFTP Pro\3.0\SM.dat
secureCTR保存log路径:D:\Documents and Settings\Administrator\Application Data\VanDyke\Config\Session

posted @ 2009-05-13 10:17 张秀兰 阅读(1676) | 评论 (1)编辑 收藏
 
 

最近天气变化频繁,气温来回波动,据天气预报称,本市受冷空气影响今天气温比昨天有所下降,
最高气温在22
左右。

离本市11月中旬集中供热还有1个多月,天气开始慢慢凉下来,但气温变化总是上上下下,起伏不定。

这样的天气受影响最大的就是抵抗力相对较弱的老人和儿童,因此老年人和儿童这些天的穿着要特别注意,
最好选择一件可脱可穿的外套,热的时候脱下,冷的时候再穿上,以适应目前较大的昼夜温差。



阿奇外贸童装欢迎您http://shop34736366.taobao.com
QQ:987967199 请备注:童装 谢谢:)

posted @ 2009-05-06 11:29 张秀兰 阅读(376) | 评论 (0)编辑 收藏
 
 

随着生活水平的提高,人们早已不满足有衣可穿。在倡导绿色消费的今天,人们开始关注服装的舒适性能。对于童装这一点显得尤为迫切。

    所谓服装的舒适性是指人体着装后,服装具有满足人体要求并排除任何不舒适因素的性能。儿童由于身体尚未发育完全,活泼好动,易出汗,皮肤敏感,抵抗力差,他们的服装不仅要遮体御寒,更要保护身体,免受外界伤害。笔者多年来在从事童装检测中发现,生产厂家对于款式设计、做工质量较为重视,而对童装的舒适性研究却很不够。本文从以下几方面阐述影响服装舒适性的因素。

    棉质针织织造、染色度牢的面料是童装首选

    纤维是面料的原材料,它的服用性能直接影响面料的性能,针对儿童的生理特点,宜选用吸湿性强、透气性好、对皮肤刺激小的天然纤维。这是因为,首先,化学纤维大多从石油、天然气中提炼出来,对皮肤的刺激性较大;其次合成纤维吸湿性小,透气性差,有碍于汗液蒸发,而且合成纤维静电吸尘较严重。天然纤维中又宜选用棉纤维,因为它不仅服用性好,且柔软结实,价格低廉,适合水洗。

    人体运动的多方向、多角度和大弯曲性,决定了服装必需要有一定延伸性,对于好动的儿童,延伸性能良好的针织物又优于梭织物,它的弹性保证了服装能自由地依顺人体运动,不会束缚身体,影响儿童的发育。

    儿童活动量大,易出汗,服装更要勤洗勤换,因此对于染料的色牢度为变色3-4级,沾色3-4级以上。面料的染色牢度包括耐洗、耐磨擦、耐汗渍、耐日晒。对于婴幼儿,服装面料还要考虑其唾液色牢度。


阿奇外贸童装欢迎您http://shop34736366.taobao.com
QQ:987967199 请备注:童装 谢谢:)
posted @ 2009-05-06 11:28 张秀兰 阅读(346) | 评论 (0)编辑 收藏
 
儿童生长发育非常快,活泼好动,并且幼稚无知,不懂得卫生知识,着衣可要靠妈妈们把关啦 .

儿童着装打扮六不宜:

   1、 不宜穿开裆裤

    穿开裆裤的孩子,很容不得易碰破或磨伤皮肤。地上的细菌及寄生虫卵很可能从孩子的肛门、尿道及伤口侵入体内,从而使孩子患上蛔虫病、钩虫病或蛲虫病等,危害孩子的健康。如果女孩子穿开裆裤,还很容易引起细菌直接感染现象,产生阴道炎、滴虫病等。所以,当孩子会说出有排便的要求的时候,最好不要再穿开裆的裤子。

   2、不宜穿喇叭型的裤子

    喇叭裤臀部很紧,股部太瘦会影响血液循环;而裤脚却又长又肥的,会影响行走、奔跑或跳跃等活动。而且绷得太紧的裤裆时常摩擦刺激幼儿的生殖器官,以致影响外生殖器生长发育,或感染引起炎症等。

   3、不宜穿皮鞋

    儿童的骨质松软,生长发育很快,太早给孩子穿皮鞋,会影响脚部的血液循环,影响脚趾与脚掌的生长发育,非常容易导致脚变畸形。

    4、不宜穿粗布和化纤内裤

    儿童皮肤又娇又嫩,粗糙与质地很硬的布料很容易擦伤皮肤,以至感染。化纤布料容易刺激幼儿皮肤,并发生过敏性皮炎,以至于感染。幼儿最适合穿白色棉纱的针织品内裤或柔软的棉布内裤。

     5.不宜穿紧身的衣裤

     牛仔裤与鸡腿裤等之类的紧身裤,影响儿童的生长发育和活动,对骨骼、肌肉及生殖系统都有十分严重的影响。

     6.不宜穿高跟鞋

     儿童中骨的生长发育非常迅速,穿高跟鞋会令趾骨、跖骨变形且变粗,妨碍关节的灵活性。并还容易引起趾外翻、平足等畸形的发生。此外穿高跟鞋时,上身向前倾,臀部向上突出,身体的重心落在脚趾上,正常的重力传递线就会移位,有碍于身体的正常生长发育。如果女孩子穿高跟鞋,还会引起骨盆的入口处变狭窄,必将会影响成年后的生育 



阿奇外贸童装欢迎您http://shop34736366.taobao.com
QQ:987967199 请备注:童装 谢谢:)
posted @ 2009-05-06 11:28 张秀兰 阅读(386) | 评论 (0)编辑 收藏
 
      要把孩子打扮得漂亮、大方,就要根据孩子的肤色来选择不同色彩的服装。如果你的孩子是个皮肤白净的姑娘,那就要挑选橙色上衣,再配上深色裤子;或是穿橙色裙子,再配上白上衣,这样会使她显得更漂亮。

    还有,嫩黄色服装会使孩子显得娇嫩、活泼可爱;青莲色、藕荷色或浅玫瑰色服装,会使孩子显得洁净、文雅。

皮肤较粗、较黑的孩子,最好穿土黄色或浅米黄色服装。长得胖的小孩不要穿白色衣服,因为白色会给人扩大和前倾的错觉,瘦弱的小孩,最好别穿黑色衣服,以免显得更加瘦小。




阿奇外贸童装欢迎您http://shop34736366.taobao.com
QQ:987967199 请备注:童装 谢谢:)
posted @ 2009-05-06 11:27 张秀兰 阅读(377) | 评论 (0)编辑 收藏
 
 

俗话说:欲要小儿安,常带三分饥和寒。怎样才能把握孩子穿衣适度呢?

小儿的汗腺分泌十分旺盛,而小儿又多喜欢活动。穿着过多,稍微活动就会出汗,脱衣后一段时间如不能及时添加衣服,又会引起感冒。另外,长期穿着过多还会降低小儿的耐寒能力。夏天捂着婴儿尤其有害。由于炎热,孩子的抵抗力大大减弱,再加上出汗,婴儿极易中暑和闹肚子。

小儿的衣服一般有三个特点,即暖和、轻柔和宽松。此外,也要注意不要妨碍汗气的蒸发。5个月以前婴儿的衣服是前罩衫、短内衣、暖和的夏天用的两种襁褓以及尿布;从5个月以后,就可以穿儿童短裤和编织的较软衣服和鞋子,但不要把脏的襁褓和衣襟烤干重复用,这样烤干了自然还是脏的,有尿臊味,呼吸尿臊气对身体有害,皮肤也容易因汗沤发红。所以说脏的衣裤要用肥皂洗净,并用开水浸泡,再用热熨斗熨干。

要根据天气情况来给孩子增减衣服,一天当中也要根据气温变化随时增减衣服。俗话说的春捂秋冻对小儿来说不恰当,因此小儿的衣着较成人稍多些就可以了。


阿奇外贸童装欢迎您http://shop34736366.taobao.com
QQ:987967199 请备注:童装 谢谢:)

posted @ 2009-05-06 11:26 张秀兰 阅读(335) | 评论 (0)编辑 收藏
 
衣服的质地与儿童健康有关吗?

 

服装有助于人体保持恒温,是维持健康的条件之一。气温低时,服装可以使体温热量不过多散失;气温高时又不妨碍身体的散热,并且能防止阳光的光线和热力对人体的不利影响。为了达到以上要求,对服装要求具有保温性、透气性。

这些特性是由制作服装的织品的质地所决定的。

  (1)保温性好的织品,以毛织品为最、棉织品其次、最后是丝绸品。织品多孔,能贮存较多的空气,所以厚而松的织品保温性好。同时织品的颜色也与保温性有关。深色织品反光力小、吸热力大,浅色织品反光力大、吸热力小。所以冬季宜用松、厚、深色的毛、棉织品做衣服,夏季宜用细、薄浅色的麻、丝织品做衣服。

  (2)透气性好的织品可以把皮肤排出的汗液和污气散发出去,使皮肤保持干燥,并调节体温。所以要选择透气性好的织品为儿童制作衣服,胶布、油布、塑料布等透气性差,不宜做儿童服装及小孩尿布,以免影响皮肤的新陈代谢。

  (3)吸湿性好坏,由织品的纤维性质决定。一般毛、绵纤维吸湿性好,并能较快散发,使织品保持干燥,有利于皮肤的清洁。织品的织法也与吸湿性有关,针织比平织吸湿性强。所以小孩宜穿毛绒针织的衣服,既具有柔软保温的特点,而其透气性吸湿性也好。但不能用粗羊毛,以免刺激皮肤,人造纤维的吸湿性差,不宜作内衣。小孩内衣以棉织品为佳。

儿童穿合成纤维做的内衣好不好?

  目前,各种合成纤维布料制品非常多,用这种布料做内衣,对某些人可能引起过敏反应。儿童皮肤幼嫩,则更容易出现不良反应。主要因为合成纤维吸水性差,汗水附着在皮肤上,导致微生物繁殖和产生腐败、发酵,从而诱发过敏和湿疹。另外合成纤维生产过程中混入的原料单体、氨、甲醇等微量化学成分,对儿童刺激性非常大。因此儿童忌穿合成纤维内衣,特别是刚出生的婴儿,一定不能用化纤布做毛毛衫,而要选用柔软的全棉纺枳的软布做内衣

儿童服装的款式与健康

孩子的衣服在款式上,也应从安全方面来考虑,和尚领的小衣服最适合新生儿穿,衣服胸前有两面大襟,可随孩子的胸部发育增大而随意放松,由于和尚服领子短,穿着方便,又便于在衣服外面围小毛巾和围嘴,防止颈部皮肤皱褶发炎感染。56个月的孩子穿后背系带的小圆领衫,再大些可穿宝宝衫,1岁以内孩子的衣服,最好不要钉金属扣,以免穿脱时划伤孩子的皮肤。孩子的裤子不要用带子或松紧带来系,最好穿背带裤;2岁以后不宜穿开裆裤,尤其是女孩,穿开裆裤容易引起尿路感染或蛲虫病;男孩的裤子前门襟不要用拉链,以防孩子小便着急时,动作过快将阴茎或龟头夹在拉链中间;小孩也不易穿牛仔裤、紧身裤,以影响生殖器的发育。



阿奇外贸童装欢迎您http://shop34736366.taobao.com
QQ:987967199 请备注:童装 谢谢:)
posted @ 2009-05-06 11:23 张秀兰 阅读(348) | 评论 (0)编辑 收藏
 
儿童着装需要注意哪些呢?

 

儿童着装对其成长也是起重要作用的
儿童生长发育非常快,活泼好动,并且幼稚无知,不懂得卫生知识,着衣可要靠妈妈们把关啦.
那儿童着装需要注意哪些呢?一起来学习喽

选购童装时应充分考虑儿童的生理特点,要体现柔软、透气、舒适、安全和健康,还应注意以下几点:
一、童装上的各种标识

      1.产品上有无商标和中文厂名厂址。这是消费者保护自身合法权益的重要证据之一。因为制造商只有明确地标注了商标和厂名厂址,即确立了其对该产品负责的义务。无商标和中文厂名厂址的产品,极有可能是非正规厂家生产的产品或假冒产品,价格一般较低,消费者很容易上当受骗,切忌在选购产品时选择这类产品。
      2.产品上有无服装号型标识。号型标志就是服装规格代号,与消费者自身的身高、肥瘦相匹配,只有选择合适的号型规格的服装,才可能穿着合适。号与型之间用斜线分开,如上衣145/68,表示适合高l45cm,胸围68cm左右的儿童穿着。儿童服装的选购,要根据儿童的生长发育特点和儿童生性活泼好动的特点,一般应选择稍微宽松一点的衣服,以利于儿童的成长。
      3.产品上有无成份标识,主要是指服装的面料、里料的成份标识,各种纤维含量百分比应清晰、正确。有填充料的服装还应标明其中填充料的成份和含量。
      4.产品上有无洗涤标识的图形符号及说明。并了解洗涤和保养的方法要求。一般制造商根据选用的面料,会相应地标注服装的洗涤要求和保养方法,消费者可依据厂方提供的洗涤和保养方法进行洗涤和保养,如出现质量问题,厂方应承担责任,反之,如消费者未按照制造商明示的方法进行洗涤而出现问题,消费者则应自负责任。
      5.产品上有无产品的合格证、产品执行标准编号、产品质量等级及其它标识。童装的永久性标识应选择柔软的材料制作,并缝制在适当的部位,应注意避免直接与儿童皮肤接触的地方,防止因摩擦而损伤儿童的皮肤。
      二、童装外观质量的鉴别
      1.童装的主要表面部位有无明显瑕疵。
      2.童装的主要缝接部位有无色差和纰裂。纰裂即通常所说织物滑移或织物排丝,纰裂程度达不到标准规定的指标,反映该件服装接缝强力不够,容易引起肩缝、袖窿缝、侧缝等处的缝口脱开而无法穿着。选购服装时可在侧缝处拉一下,看一下缝口是否有滑移现象,并留意一下里料滑移情况。
      3.注意童装上各种辅料、装饰物的质地,如拉链是否滑爽、钮扣子是否牢固、四合扣是否松紧适宜等。要特别注意各种钮扣或装饰件的牢度,以免儿童轻易扯掉误服口中,造成气管异物,造成不必要的伤害。
      4.有粘合衬的表面部位如领子、驳头、袋盖、门襟处有无脱胶、起泡或渗胶等现象。
      三、童装的缝制质量鉴别
      1.目测童装各主要部位的缝制线路是否顺直,拼缝是否平服。
      2.查看童装的各对称部位是否一致。童装上的对称部位很多,可将左右两部份合拢检查各对称部位是否准确。如:左右两袖长短和袖口大小,袋盖长短宽狭,袋位高低进出及省道长短等逐项进行对比。
      四、童装面料成份的鉴别
      由于童装一般采用棉织物,用燃烧法鉴别棉织物的方法是:在童装的缝边处抽下一缕纱线(应包括经纱和纬纱),用火将其点燃,观察燃烧火焰的状态,棉的燃烧较快,火焰高,能自动蔓延,留下少量柔软的白色或灰色灰烬,不结焦。
      另外,如果产品上标有甲醛含量,0-24个月的婴幼儿类服装应<20mg/kg,大于24个月的儿童穿着服装接触皮肤类75mg/kg,非接触皮肤类300mg/kg。建议消费者在购买童装之后,最好先行洗涤,并进行足够的漂洗。这样,可以使残留在服装上的甲醛得以充分的释放,提高产品的安全性。


阿奇外贸童装欢迎您http://shop34736366.taobao.com
QQ:987967199 请备注:童装 谢谢:)

posted @ 2009-05-06 11:17 张秀兰 阅读(596) | 评论 (0)编辑 收藏
 

选购童装的技巧

在琳琅满目的童装世界里,选购童装是有技巧可言的,鄙人总结了以下几条仅供参考:

1.面料的选择:化纤织物穿着轻便、清洗方便,但透气性较弱;纯棉织物穿着舒适、柔软透气,儿童首选。

2.颜色的选择:深色织品反光力小、吸热力大,浅色织品反光力大、吸热力小。所以选购童装应按夏浅冬深的原则。

3.款式的选择:安全方面是首先要考虑的。1岁以内孩子的衣服,最好不要钉金属扣,以免穿脱时划伤孩子的皮肤。

4.产品标识的识别:

a)       商标及中文厂名、厂址,它是出现质量问题后消费者投诉的途径;

b)  产品名称,表明产品的真实属性;

c)  产品号型和规格,依据号型和规格可以选择到合适尺寸的服装;

d)  产品选用原料的成分和含量,消费者可据以了解购买服装的材质、性能及价值;

e) 洗涤方法,包括水洗、氯漂、熨烫、干洗和水洗后干燥方法等内容,消费者每次洗涤都要按照洗涤标识的图形符号及说明正确洗涤和保养服装;

f) 产品中要有合格证、产品执行标准编号、产品质量等级等标识内容。

祝亲友们选购愉快,谢谢



阿奇外贸童装欢迎您http://shop34736366.taobao.com
QQ:987967199 请备注:童装 谢谢:)

posted @ 2009-05-06 11:15 张秀兰 阅读(349) | 评论 (0)编辑 收藏
 
时间过得飞快,2009.03.21在厦门举办婚宴了,完成了人生一大事,呵呵
非常感谢所有亲朋好友的光临,那天大伙玩得挺high哦
(有点点可惜的是高中同学就阿步一个人来,雅花之前还梦见高中全班同学都来参加俺的婚礼呢,嘻嘻:)
生活需要用心去感受,一切都很美好的!
祝大家天天开心!
posted @ 2009-04-07 12:04 张秀兰 阅读(389) | 评论 (1)编辑 收藏
 
3.15是个特殊的日子
是的,很是特殊
可是我们昨晚又闹得不开心了
我很是伤心,难过。。。。。。
或许是我做得太过份了吧
不知道
不懂
不明白
真的不懂
posted @ 2009-03-16 12:47 张秀兰 阅读(336) | 评论 (0)编辑 收藏
 

 

在学校里,自己的成绩好,也只是与同班同学相比。
 
出了社会,自己的工作的成绩,是与不同国家、不同年纪、不同背景的人比。
可能一下子会有很大的落差。
 
你可能说,人生不是比来比去的。
 
但是好朋友一定要跟你说,你可以不比,不过你不能不知道:你究竟输在那里?
 
找到一群可以帮助你成长的好朋友和聪明的竞争者,你就赢了别人好几步。
  
有一位很有智慧的长者说过:「今天每一个家长都会说,『孩子,我要你赢!』但是,却很少有家长教导说,『孩子,你该怎么输!输的原因怎么检讨出来!怎么原地爬起来!怎样渡过人生的各种难关!』
 
    
 
『工作态度』
每天上班最好有正面的心情。用快乐的心情面对每个人,你会有很多朋友,老板也会想教你东西,乐于与你沟通。如果与老板无法沟通,你觉得你会有加薪机会吗﹖
就算你不缺那份薪水,你也得不到新增的工作机会,来帮助你日后的发展。
 
   
 
『静静的吃三碗饭』
 
绝对没错,不要一出社会,就一天到晚与人计较或说谁谁谁没做他的工作。
 
真正的赢家是不出声的。
 
    
 
『把掌声留给别人』
 
把掌声留给别人,投资在别人的身上。
 
把掌声留给自己,你的荷包不会变多一点,但你的朋友会少一个。
 
而把掌声留给自己的伙伴,你会多一个朋友,你的荷包不会变少一点。
 
   
 
『永远不要说---我已经尽力了!』
 
我们可以安慰受挫折的朋友:『你已经尽力了!』
 
但当我们说出『我已经尽力了!』时,任何人都可以质疑你。
 
人们会问:『喔!真的吗?如果你是这么尽力,为什么成果是如此不堪!!』
 
如果你真的已经尽力了,那万一下一次不能再加力,那成果岂不更糟?!
 
通常,只有失败者、逃避者,才会大言不惭地说:『我已经尽力了!』
 
社会上的人,很务实地,从来就不会谅解一个一味地说『我已经尽力了!』的人!
 
你要不相信,换个说法,说『对不起!我应该可以做的更好的!如果能再有机会,我一定尽力做好!』
 
你将发现,机会将源源而至。
 
再提醒一句,说『我已经够认真了!』、『我真的很不错!』,跟说『我已经尽力了!』,有异曲同工之「坏」结果。
 
   
 
『薪水』
 
薪水与能力是相关的,但不是绝对的。
 
我有一个女性朋友,硕士毕业后领3万2仟的薪水;10年后,增加不到25%。
 
最后她的工作是被另一个刚刚硕士毕业的女生换掉。
 
她的问题很简单,毕业后就停止进修,她的履历表多了很多年资,但并没有很多经验。
 
聪明的你,一定要好好的做一张履历表。
 
而且你一定要知道自己那一张履历表值多少钱,说句不中听的话,至少遇到结婚或丧事,别人才知道要怎么介绍你嘛!
 
很多东西不能规划,但是自己的履历表,一定要好好的规划。
 
    
 
『跟对人』
 
虽然〖跟对人〗很重要,但我要跟你说如果没跟对人,也要在他身上挤出东西来学。
 
我以前有一个老板,日本作风,不但吹毛求疵,还蔽护他自己的人。前一两年,我好气他喔。
 
但是我发现,虽然他不是我的贵人,可是我在他身上学到他的扎实和彻底执行的工作能力。

对那老板而言,因为我很年轻,还有很多机会。
       
但是有些人没被裁培,他们一辈子都起不来,他们将来都会面临被裁员的可能。
   
所以老板并没有错。有时候,看事情要设身处地,换成老板的眼光还看自己,往大方向看。
 
   
 
『读书』
 
读书是增加知识,但也不要太相信书里面的人。
 
有些人读了太多书,但是不知变通,不能拿出来适应瞬息万变的社会,结果是变成读死书了。
 
但是不能不读书,因为这社会,有时候很复杂,你会需要些书当精神食粮。
 
   
 
『婚姻』
 
家庭结构是脆弱的,禁不起任何人的刻意攻击。
 
婚姻是可以经营的,放弃自我主见、偶而多迁就对方一些,有时候是解决问题的好办法。
 
感情是没有绝对的!不如意时,至少谢谢他/她陪你走过往日的春夏秋冬。
 
但女人不能没钱,婚姻或感情出了问题,还可以有尊严地走出家门晒晒和煦的冬阳。
 
如果又没钱,又不会经营感情,这种问题,只能在家看韩剧哭死你。
 
    
 
『金钱观』
 
金钱是重要工具,但不是生命的全部。
 
人人要设法让家人丰衣足食,更要知道你钱花去那,要会管理你的收支表。
 
百分之90的人赚的都是计算式的财富Calculated Wealth (相信我,英文跟计算机一样,都只是沟通的工具)。
 
计算式的财富就是你今年赚24万,明年你的目标应该是多少?
 
稳健收入的前提,是不乱换工作,而且你与你的上司 / 工作伙伴合作愉快。
 
一定要有投资观念,投资不一定是股票那些,而是如投资外文能力,计算机能力,投资自己的presentation skills,或沟通能力。
 
投资未来,不要投资过去。
 
 
    
『人格』
 
人格比薪水或什么都还重要。成功的人大部份都具有好的人格特质。
 
许多年薪好几百万和千万的人,虽然不是每个人都是白手起家,但是只有好的人格特质才会在业界长长久久。
 
只有好的人格,才能在社会上备受尊重。
 
   
 
『好习惯』
 
好的人格又是如何培养的呢?简单说,就是多多培养一些好习惯。以下列举21种可以改变人生的好习惯。
 
 
1 当一个人生活枯燥的时候,他忘了用心体会是一种习惯。
 
2 当一个人觉得人生乏味的时候,他忘了培养幽默是一种习惯。
 
3 当一个人体力日差的时候,他忘了运动建身是一种习惯。
 
4 当一个人工作疲惫的时候,他忘了认真休息是一种习惯。
 
5 当一个人孤傲狂放的时候,他忘了感恩惜福是一种习惯。
 
6 当一个人志得意满的时候,他忘了谦冲为怀是一种习惯。
 
7 当一个人钱不够用的时候,他忘了投资理财是一种习惯。
 
8 当一个人觉得工作低迷的时候,他忘了激励自己是一种习惯。
 
9 当一个人怀疑自己的时候,他忘了建立自信是一种习惯。
 
10  当一个人忽略家人的时候,他忘了爱与关怀是一种习惯。
 
11  当一个人浑噩度日的时候,他忘了阅读好书是一种习惯。
 
12  当一个人忙于工作的时候,他忘了安排休闲是一种习惯。
 
13  当一个人目中无人的时候,他忘了不断学习是一种习惯。
 
14  当一个人服务不佳的时候,他忘了让顾客满意是一种习惯。
 
15  当
一个人慌张失措的时候,他忘了万全准备是一种习惯。
 
16  当一个人推诿责任的时候,他忘了勇于承担是一种习惯。
 
17  当一个人肠枯思竭的时候,他忘了转型思考是一种习惯。
 
18  当一个人沮丧失意的时候,他忘了检讨改进是一种习惯。
 
19  当一个人畏惧调职的时候,他忘了提升自己是一种习惯。
 
20  当一个人沟通障碍的时候,他忘了真诚倾听是一种习惯。
 
21  当一个人业绩消退的时候,他忘了积极行动是一种习惯。

posted @ 2009-02-20 15:26 张秀兰 阅读(340) | 评论 (0)编辑 收藏
 
http://www.tz86.com/
http://www.waimaotongzhuangpifa.com/
运费
时间
质量问题要怎么个调换
付款方式
衣服的包装情况

www.cnzz.com
http://new.cnzz.com/v1/main.php?s=site_list

http://tool.admin5.com/

http://photoshopps.cn/Article/base/
posted @ 2009-02-18 22:09 张秀兰 阅读(258) | 评论 (0)编辑 收藏
 
什么是妻子?就是你愿意把积蓄交给她保管的女人。什么是情人?就是你偷偷摸摸地去和她约会又怕妻子撞见的女人。什么是红颜知己?就是你能把有些秘密说给她听却不能说给妻子听的女人。  


  妻子是一种约束,约束你不能随便和别的女人交往;情人是一种补偿,补偿你想从妻子那得到却又无法得到的激情;红颜知己就是一种点拨,点拨你心中的迷津。  

  妻子陪你过日子,情人陪你花钞票,红颜知己陪你聊聊天。妻子不能替代情人,因为她没有情人有情调;情人不能代替妻子,因为她没有妻子的亲情;妻子和情人都代替不了红颜知己,那是心灵的需要。  

  妻子是一个和你没有一点血缘关系的女人,却为你深夜不回家而牵肠挂肚;情人是一个和你没有一点家庭关系的女人,却让你尝尽做男人滋味尽情消魂;红颜知己是一个还没和你扯上关系的女人,却能分担你的快乐和忧愁。  

  妻子是一个家,是一个能给你浮躁的心带来安抚的港湾;情人是家的累赘,只是不到万不得已你不想甩掉;红颜知己是家的点缀,没有她你不会觉得寂寞,但你会觉得生活没意思。  

  妻子的关心像一杯白开水,有时会成为一种唠叨,只是在生病时才成为一种温馨;情人的关心就像在白开水里加了一勺糖,慢慢地品上一个晚上还不满足;红颜知己的关心就像工作到午夜喝一杯咖啡,越喝越提神。  

  妻子怀上你的孩子会深情地问你想要个男孩还是要个女孩,情人怀上你的孩子会哭着来问你该怎么办怎么办啊?对于红颜知己,你会把你的情人怀孕的消息告诉她,并问她你该怎么办。至于妻子,你会在她发现你的情人肚子大了的秘密后才告诉她:“其实,我早就想告诉你了。”然后拼命地向她解释,并作可怜状。  

  妻子回了娘家一个星期不回来你也不想,情人三天不见你就给她打电话:上哪去了?今晚我们到老地方喝杯咖啡好吗?心中有了苦闷,你最想找个红颜知己倾诉,告诉她你在妻子和情人之间疲于奔命,实在受不了了。  

  最让男人受不了的是妻子的唠叨,情人的眼泪,红颜知己的误解。妻子的唠叨使男人的心乱上加乱,情人的眼泪让男人已硬的心变得酥软,红颜知己的误解把男人的心由悬崖推进深谷。  

  最好的妻子,就是男人能从她身上找到情人和红颜知己两种相互交织的感觉,只是这种感觉男人很难找到。最好的情人是在你和她的关系被妻子发现而主动退出又不提任何要求,只是情人很难做到这点。最好的红颜知己是有一天她能成为情人,甚至妻子,只是这种想法很难实现。  

  如果有可能,男人都在想把红颜知己变成情人,如果再有可能,再把她变成妻子。只是变成妻子的红颜知己就不再是知己了,因为很少有男人把自己的妻子当成知己的。男人心中有好多秘密不能随便说给妻子听。要不,那还叫男人么?  

  娶一个妻子是为了怕别人说闲话,找一个情人是为了给单调的生活加点味精,交一个红颜知己是想给空虚的心灵浇点鸡汤。男人一生都在寻找的不是一个妻子,也不是一个情人,而是一个甚至更多的红颜知己。  

  有些失去是注定的,有些缘分是永远不会有结果的,爱一个人不一定要拥有,但拥有了一个人就一定要珍惜,不要等到伤害的时候才去乞求原谅,不要等到失去的时候再去挽回。如果我不小心流下一滴泪水,那是因为我不愿意忘记你是谁。

以上纯属转载,从LG同学狗狗QQ空间日志转载。
总结:写得非常现实!
想起那天LG说的:“两个人不可能是完全透明的,这是我的性格”
现在我除了接受现实,我还能怎样,呵呵!!!
笑看人生,笑看婚姻,更是笑看自己!!!

以前我一直都认为我的LG一定是我的情人,也一定是我的红颜知己,现在也是这么做的!
而且我也一定是我LG的情人,红颜知己!希望是这样的!
原来那是我在奢望,呵呵!!!!!
posted @ 2009-02-18 10:28 张秀兰 阅读(243) | 评论 (0)编辑 收藏
 
上周日也就是2009.02.15中午在步阶同学家吃完饭,我们开始奔向新中林酒店,那天穿着高跟鞋逛了一天,真强,不过,回来时脚那个痛。。。
呵呵!还好,最后在春宵等同学帮忙下,有享受优惠加一单间房订下了明发大酒店!
也就是2009.03.21号我们将在明发大酒店办我们的婚事了,老家已办完
喜帖也拿回来了,感觉现在还早,还没准备去写
接下去有时间再写吧,反正也还早
还有糖果,礼卷还没买,下周末再去逛,呵呵
posted @ 2009-02-16 23:06 张秀兰 阅读(253) | 评论 (1)编辑 收藏
 

很多事情就是在刚好,恰好的发生的!就像我有个致命的毛病就是深沉的醋坛子,而我老公是个“多情”(不知这样形容对不对,他的感情史
相当长,到现在他们还一直友好往来着,偶尔还说些“肉 嘛”的话)的男子,每次看到后都让我相当难受!
现在唯一的方法就是接受这个现实!
好好生活,好好工作,努力工作!
充分发挥自己的能力,好好加油吧!
唉,每次碰到这事,连最开心的事我都会打从心里难受起来,累呀累呀,累的还是自己!
我也跟老公说这是我们两个人唯一最大的差别,我们很多不开心的事都是发生在此上!
好了,来发个唠叨,没别的意思!
希望我们夫妻两好好生活,幸福到永远!
(有时很想去看心理医生,呵呵!)
(总觉得自己心理有问题,醋坛子醋得连自己都受不了了!!!)
相信那句话:明天会更好!好好生活,好好加油!
再回应下雪蓉说的:做个贤妻
在此答应雪蓉,我会做个贤妻的,不会像你说的是个高傲的女强人

posted @ 2009-02-16 23:02 张秀兰 阅读(216) | 评论 (0)编辑 收藏
 
待嫁日记还没全部写完,2009年1月24号也就是农历大年29时已经出嫁了
前阶段一直沉浸在幸福快乐当中,都没时间写日记,现补充来了。
大年28那天三哥开车送我去化妆了,那时找化妆店多谢小坚夫妻的帮忙了,在此感谢他们了。
那晚化完妆回到家8点多了,原准备不睡觉的,后面在小鬼们的鼓吹下还是去睡觉了,感觉没睡着,
总觉得快睡觉时,就忽然醒来,头脑竟想着发型别乱了
那晚一直看手机,哦,1点了,哦,1:50了,哦,2:15了,哦,3点了,快了快了。。。
3:45了赶紧给LG发信息,问他起床没
(那晚的其中几条短信,俺保存起来了)
(特别让人激动的:宝贝,明天就去接你回家! 我当时那个激动。。。。)
LG跟他大哥还有表姐夫(当司机)当我家时5点半左右,我刚好在几个小鬼的帮忙下,打扮成漂亮的新娘子,哈哈:)
LG送着一束11朵rose,一路上辛苦他了!
老爸,哥哥,嫂嫂们开始忙着做饭,炒菜,(按我们那边风俗,要吃饱才出门的)小鬼们也忙着打扮自己,
都把新年的衣服穿上了,看他们给乐着,哈哈
原本是说有回家的全家人都一起去,后面考虑到几方面就:大哥,大嫂,三哥,三嫂,济培
(当伴郎,跟我同一车),姗姗,萍萍,他们6个人一车,三哥还特意借了辆宝马车,呵呵
一路上的心情是复杂的,一会想着出嫁了,以后住一家公公婆婆都疼我的新家,又多了很多人疼了,很兴奋;
一会想着我出嫁了,以后回家时间是不是少了呀,想流泪。。。
一会想着我一会就可以回来了呀(我们是当天回娘家的),心情又平静了
一会又想着很开心,终于跟LG结为夫妻了,又是激动兴奋
快到LG家时有个地公公说还要放鞭炮,大哥在车上放,呵呵
婶婶出来接我们了,挑着大哥表姐送的礼物担子回家
到LG家还不到8点,进门时要跨火炉,济培拿着DV倒着走,不小心脚还碰了火炉了,呵呵
到了新娘房,我的任务是有亲戚来了,要给她们喜糖还要帮她们带上一支纸花
家长带着小孩来的,还要给小孩子红包,看那些小孩子乐的,呵呵
在早上就有好几个同学打来电话祝福,谢谢他们了,在他们回家的路上也没忘记给我们祝福,谢谢
姗姗济培一有时间就跟新娘抢拍,不过,那天天气特冷,出门时还带有蒙蒙细雨,新娘子只好穿上那件羽绒
服,还好在回家前买了那件羽绒服(今天穿来公司了),不过,穿上羽绒服,俺的礼服看没显它的漂亮了,
没办法也只好这样子了,只能说天公不作美呀
可能天公听到了,中午开始天气就转好了,12点多我们要回娘家时,挺热的
我们是吃了午饭才回娘家的,按我们那边的风俗,中午饭叫:吃大顿,大舅最大。当时我哥们挺逗的,说要吃
到下午2点,吓倒我们两个了,因为我们回娘家还要回来接客人,LG家请客是晚上,那到时不是来不急呀,
呵呵:) 三哥特别逗,大舅没动,我们不准动,只有大舅动了哪道菜后我们才可以跟着吃
应该说那顿不是在吃饭,而是在说笑,呵呵
那时发现其实大哥也是个挺逗的,不像我之前想像的那么严肃,呵呵
后面上车准备回娘家,也快1点了
回到我家,又是准备吃饭,这是我们那边的风俗,非吃不可,呵呵
感觉那天不停的吃,呵呵
吃完了(应该说意思下吃完了),三嫂一直说要多吃点,一会回去可能没时间吃东西就得准备去敬酒了
(还好那天我只喝了一点点酒,可LG那是毫无疑问必醉无疑了,呵呵)
准备回家了,回婆家了,她们在家门前送我们上车,哇,那一该我控制不住情绪了,眼泪HLHL的流。。。
想回头看她们,那个更是难受,眼泪流个不停,当时LG心疼呀
那一该才真的感觉到自己要嫁出去了,不知为啥很是舍不得,明明知道可随时回家的呀
可是还是眼泪流个不停,很是舍不得。。。。
车子走完下官,我的眼泪还在流。。。呵呵
LG一直在旁边说过两天我们就可以回来了,不哭不哭,过两天就可以回来了
到家已经4点多了,在新娘房坐了会,那双红色鞋子太硬了,穿得脚那个痛,一家房间我就换成棉拖,
是在老妈的允许下,呵呵
准备去敬酒了,那天LG状态不好,才喝三杯就全吐了,可怜的LG,真让俺心疼!

posted @ 2009-02-16 14:33 张秀兰 阅读(195) | 评论 (0)编辑 收藏
 
(2009年1月13号是个好日子,有人“出售”了)
N久没来写待嫁了,因为最近太忙了
除了工作忙,还忙着期末考试,所以只好写上标题:待嫁之N了,等有空再把它一一补上吧
今天是个好日子,老猪的叔叔跟他老爸的一个好朋友也叫叔叔喽,他们两个早上8点左右出发去俺家了
刚刚给老爸,老姐打电话了,提醒下他们,亲家们快要到了,呵呵
(电话中还知道大哥早上挺早到家了,还说要送给俺的那个挂壁电视差点被人偷走了,原本放在大哥身边的,到后面发现不见,原来被人拿到很后面座位去了,看来现在大家都要小心呀)
现在心情很是激动呀,老爸今天要把俺给“卖了”,按我们老家的习俗,今天后俺就算是老猪家的人了
唉,怎么这么快就成了老猪家的人了呀,很是激动!
感谢老爸老妈,哥哥姐姐们对我的养育和培养成,非常感谢,谢谢!
相信老妈也可以看到,听到!
老妈,女儿想您了!
(老妈,谢谢您!)

也感谢所有一直照顾我关心我的亲朋好友!谢谢!

最后给老猪送上我的一颗心:不管以后道路坎坷与平坦,我愿意与你携手共进,共同创造一个美好的家!
老婆永远信任你,支持你,协助你!爱你到永远!
(写到此,我的眼睛已湿润,那是激动幸福的泪水!)
谢谢老公!

posted @ 2009-01-13 10:11 张秀兰 阅读(208) | 评论 (0)编辑 收藏
 
北京师范大学心理学院教授 刘翔

  美国著名心理学家赛利格曼提出了一个幸福的公式:

  总幸福指数=先天的遗传素质+后天的环境+你能主动控制的心理力量(H=S+C+V)。

  当代的人们更加开放地生活,我们坦言幸福,我们追求幸福。幸福在哪里?当代心理学告诉我们,幸福也是有指数的,总幸福指数是指你的较为稳定的幸福感,而不是暂时的快乐和幸福。看了一个喜剧电影,或者吃了一顿美食,这是暂时的快感;而幸福感是令你感到持续幸福的、稳定的幸福感觉,包括对现实生活的总体满意度和对自己的生命的质量的评价,是对自己生存状态的全面肯定。这个总体幸福取决于三个因素:一是一个人先天的遗传素质,二是环境事件,三是你能控制的心理力量。

  对双胞胎的研究证明,一个人的心情可能受到父母的遗传影响,如天生具有抑郁倾向,整日闷闷不乐,其实没有什么坏事情来烦他们,可他们就是不快乐,对生活中消极性和阴暗面却十分敏感,易被不好的事情所感染,甚至遇到好事也不能使他们快乐。

  根据美国对于3.5万人的调查,结婚的人中有42%的人认为生活非常幸福,而没结婚的、离异的和配偶去世的人中,认为生活非常幸福的比率只有24%。但是要注意的是,如果你的婚姻并不幸福,那么你的幸福感就会低于没有结婚的人或者已经离婚的人。总体上可以说,在婚的人比非在婚的人更加幸福

  社交生活方面,赛利格曼的研究表明,10%最幸福的人的一个共同特点是具有丰富的社交生活,他们区别于一般人和不幸福的人的一个标志是愿意与他人分享生活,而不是一个人独处。这一点与婚姻有点关联。

  威尔逊30多年前研究发现,年龄是影响幸福的重要因素,如今可能有所变化。年轻不像过去那样重要了,一项权威的研究考查了不同国家的6万多人,将满意分为生活满意、愉快心情和消极心情三个方面,研究发现,生活满意度随着年龄的增加而增加但愉快的心情随着年龄的增长而稍微有点下降,消极的心情不随着年龄的变化而变化。

  没有证据发现受教育程度、气候、种族和性别对幸福有任何影响。学历高的受教育者并不比没有受教育的人更加幸福,智力水平也是如此。无论是阳光还是阴天潮湿的气候,对于人的幸福感都没有什么影响。种族也不影响幸福,各种族的人都有幸福和不幸福的人,而性别也对于幸福没有影响,女性快乐和悲伤的程度方面都超过男性,所以总体水平上他们与男性的幸福是一样的。

  财富,尤其是财富的增加,与幸福只有低相关。富有的人报告说只比普通人感觉更幸福一点。最近的半个世纪,发达国家的人均收入增加很多,但幸福感只增加了一点。最近的一次收入增加可以增加幸福感,一般意义上的收入增加,不会增加人的幸福。

  外表的吸引力也不会影响人的幸福感。

  如果你希望自己更加幸福,你不妨选择如下环境:生活富有一些;拥有美满婚姻;丰富你的社交生活,多与朋友在一起;具有信仰。

  关于幸福公式中最后一个部分,也是最为重要的是你能掌握的力量,即如何控制自己的心理力量。

posted @ 2009-01-09 09:04 张秀兰 阅读(309) | 评论 (0)编辑 收藏
 
尽力做到就行了
posted @ 2008-12-26 16:52 张秀兰 阅读(190) | 评论 (0)编辑 收藏
 
又是一阶段没有来写日记了
真不应该叫待婚日记,呵呵
离上次写待婚日记已经有一个半月了,总结下好了
11.16早上我们7:30的闹钟,整理完坐车到影楼刚好9点,不过,那天给俺化妆的老师
要化三个新娘的妆,俺是第二个,到的时候第一个新娘还没化好妆,
我们先找好第一套衣服,就是头上有个花片那套,换完衣服我们在旁边休息等候化妆老师
新郎较简单,等我在化妆了,化妆师才叫小妹帮俺老公拿衣服,穿好衣服
在化妆时,老公就只拍了一张花絮,有点郁闷,忙着跟小弟夫妻聊天呢,呵呵
化妆完已经是快11点了,摄影师建议先在影楼吃些午餐再出拍,我们随便吃了份刀削面
吃完当然还得补妆,虽然我已经采取很淑女的动作了,呵呵
先去鼓浪屿拍,我们一切听摄影师安排,呵呵
站在等上船地盘,貌似有很多人盯着俺看,俺哪敢四处看呀,一直脸带微笑,呵呵
站在俺前面有几个老外,其他有两个貌似在说俺,后面还示意要拿相机拍,我微笑的回笑了,
他摆了个大姆指很棒的手式,真开心,哦耶!
走在鼓浪屿小巷上,没多远就可以看到一对新娘,新郎,都挺漂亮的呀,俺个人感觉也不错,哈哈!
先去鼓浪屿海边拍,那时海水已经有点涨了,所以我们都是站在岩石上拍(后面摄影师说晚点就更涨潮了,的确是的),
没有拍我喜欢拍的那个感觉---提着裙子,光着脚丫,我们在海边上奔跑,追逐着。。。。
(因为当时海水的原因也没办法,以后再拍个人写真好了,嘻嘻)
第二套是换俺最喜欢的那款-绿色礼服,特别那个整体感,大方又带点高贵,阿宝还说像董卿,真的很开心,哈哈!
还特意跟摄影师说这套要多拍几张,呵呵
不过,这套摄影师大部分是拍上半身,就只有两张有拍全身,达到我喜欢的效果,小弟他们拍的花絮不错,
在此感谢下小弟夫妻,那天辛苦他们了,谢谢!
第三套是他们推荐的,前面有很多珍珠,穿起来也挺高贵的感觉。
这套还真的拍得相当不错,后面在选相片时,这套衣服的相片选得最多了,而且我们也配合较好,拍得很自然。
摄影师抓拍挺厉害的,我们的眼睛感觉被太阳照得一直想闭眼了,不过呢,拍出来还不错,就只有几张,
俺的眼睛小了点,没有拍出雪蓉说的大眼睛。
鼓浪屿就拍了这三套,走到WC,换了情侣装(顺便释放了内存,呵呵),准备向中山路出发
中山路一直是我们想挑战的地方,不过,还好啦,因为只是拍情侣装,不是穿婚纱或礼服
在拍的时候有些人还不知道我们在拍照,一直走到我们前面,旁边跟我们挤呢,呵呵
(老公对中山路的挑战性更大,在16号之前,经常会提到还拍中山路什么的,人太多了,呵呵)
这套情侣装拍的效果相当好,每个朋友看过后都说好看
情侣装是自家在卖的,BOSS那款,当然会选了,哈哈!(当时还带了两套去呢,就只拍一套)
中山路拍得很快,好像一会就拍完了,小弟他们回去了,我们坐车回影楼拍内景了,就是主题
回去后我的任务是继续化妆,老公忙着买主题里的那串rose,可辛苦他了,后面还是让影楼的人去买,
一串88元,20支,那个贵,第一次收到老公的rose哦,哈哈!后面拍完带回家,插了快两周,呵呵
真佩服在室内拍上三四套的,在室内拍那个累呀,空气又不好,空间又小,东西又多,杂。从相片也可以看到
状态没外景好,可能一天下来人也累了
。。。。。。
(先写这了,工作任务来了,要忙去了)
posted @ 2008-12-19 11:55 张秀兰 阅读(206) | 评论 (1)编辑 收藏
 
默认情况下,RH的sendmail只允许外发email而允许接收外部来信(localhost当然可以了)。

要想能接收外来email,
首先更改sendmail.mc,找到:DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl更改为:DAEMON_OPTIONS(`Port=smtp,Addr=本机ip, Name=MTA')dnl然后,make -C /etc/mail重新编译sendmail。
/etc/mail/access文件是允许转发的网络地址,可将局域网的网络ip加进去,这样,局域网内的任何其他的主机都可以通过本机sendmail来中转,relay。修改完后makemap hash access.db < access即可。

Sendmail好像非常需要FQDN,类似aaa.bbb.com一类的完整域名。/etc/mail/local-host-name是sendmail需要的本地FQDN,必须的。另外,若没有DNS,/etc/hosts和/etc/sysconfig/network两个文件必须修改,添加正确的主机名称,FQDN,别名等。hosts文件内的127那行,最好不要改动。那是localhost的初始定义。

这样子修改好以后,可以防止日志中出现什么553,554的错误信息--那是因为A机和B机的sendmail拥有相同的localhost主机名称。所以,FQDN,一定要设好。哪怕不用。这一切完了之后,重启sendmail。小测一下:telnet localhost 25开头如果出现aaa.bbb.com一类的FQDN,那就可以了。

Sendmail: localhost.localdomain 的問題

如果你也是用 Linux + Sendmail 架 mail server, 當你 telnet your.host.name 25 時,
若出現 localhost.localdomain, 表示 Linux Server 的 hostname 設定有誤. 這個問題並不大,
因為它還是可以正常的收 / 發 e-mail. 但是, 若寄給同樣是 localhost.localdomain 的 mail server
時, 問題就來了.

症狀:

   1. 收到退回的信件, 內容是:
      553 5.3.5 對方的hostname. config error: mail loops back to me (MX problem?)
      554 5.3.5 Local configuration error    

   2. 本機 /var/log/maillog 記錄出現:
      SYSERR(root): 對方的hostname. config error: mail loops back to me (MX problem?)       

   3. 對方的 /var/log/maillog 記錄出現:

      本機IP did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA

原因:

    由於本機主機名稱是 localhost.localdomain, 信件發出後, 若對方 Sendmail 主機名稱也是 localhost.localdomain 時, 信件會回到本機郵件伺服器上, 無法寄到對方郵箱中.


解決方法:

   1. 知道自己正確的 hostname 為何 (通常是: 主機名稱.網域名稱, 如: myserver.abc.idv.tw, 其中 myserver 是主機名稱; abc.idv.tw 是網域名稱)

   2. 執行 hostname 指令, 查看 hostname 是否正確

   3. cat /etc/sysconfig/network, 查看 hostname 是否設定正確, 若不正確請修改後, 執行:

      hostname 正確的hostname

       
  4. cat /etc/hosts 檢查 127.0.0.1 那一行是否只有 localhost 與
localhost.localdomain 這兩種敘述. 若否, 請清除不相干的敘述, 並確定是否有如: 192.168.1.1
myserver.abc.idv 描述正確 hostname 的文字列. 若無, 請新增空白行加入該敘述.

   5. /etc/rc.d/init.d/sendmail restart 重新啟動 Sendmail

   6. telnet localhost 25 檢查是否出現正確的 hostname

posted @ 2008-12-11 12:48 张秀兰 阅读(6416) | 评论 (0)编辑 收藏
 
先来个婚纱照花絮:


等影楼成品了,再来秀秀
posted @ 2008-12-11 09:12 张秀兰 阅读(219) | 评论 (0)编辑 收藏
 
相册制作:
QQ: http://photo.qq.com/vphoto/index.htm
大头贴:http://pic.sdodo.com/tool/hphoto/
56:http://www.56.com/h28/home/index.php
posted @ 2008-12-10 17:21 张秀兰 阅读(420) | 评论 (6)编辑 收藏
 
这周下来几乎天天加班,12.03号晚上算较早回去了,回去吃完饭,跟老猪下去小区走走
(这段时间够冷落老猪了)
回到家看到有两条信息,第一条看到就是MM的短信,看完短信,很是激动,在那边使命叫,呵呵
老猪被我的叫声吓了,他不知出了什么事
我们和好了
我们和好了
我们和好了

当时心里唯一一个想法就是这周六早上就去她家,看望她妈妈
可第二天早上睡觉醒来,不知怎么了,还是有点怕,有点担心

算了,还是下周吧

posted @ 2008-12-05 13:01 张秀兰 阅读(212) | 评论 (0)编辑 收藏
 
昨天是偶的生日,老猪特意留在家里上班,他前晚在吃晚饭时跟偶说明天不去公司上班,
待在家里,我还无意识什么,原来他真已有准备了

昨天下班时,老猪让偶先回家
到家了,敲门,老猪说要等分钟,还说我怎么走那么快就到家了,因为他还在忙碌准备着浪费的迎接场面,呵呵
那会感觉时间过得很慢,偶一起在门口喊,呵呵
终于听到:好了好了
老猪开了门,哇!好漂亮,好漂亮的蜡烛
旁边还有两杯葡萄酒耶,好浪费
我一时冲向老猪,紧紧抱住他,老猪被抢KISS了好几次,哈哈!
说完谢谢,我继续紧紧抱着老猪不放
后面还特意要求再抱一次,呵呵
还有rose哦,真的好开心,好开心呀!!!
老猪给偶唱生日歌,好感动,好幸福呀!!!
许完愿,我们把那杯甜美的葡萄酒干了,哈哈!
真的很是感动呀,很是开心,在去吃饭的车上,自己觉得脸一直在发烫,呵呵
真的很感谢老猪!也谢谢老天给偶这么好的一个老公!

下面秀下偶收到的rose(用手机拍的,效果不是很好呀)
 
posted @ 2008-11-26 16:29 张秀兰 阅读(216) | 评论 (0)编辑 收藏
 
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为http://www.xxx.com/ 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问http://www.xxx.com/index.jsp/ 时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问http://192.168.1.110:2046/index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
  if (request.getHeader("x-forwarded-for") == null) {
   return request.getRemoteAddr();
  }
  return request.getHeader("x-forwarded-for");

 }

可是当我访问http://www.xxx.com/index.jsp/ 时,返回的IP地址始终是unknown,也并不是如上所示的127.0.0.1 或 192.168.1.110了,而我访问http://192.168.1.110:2046/index.jsp 时,则能返回客户端的真实IP地址,写了个方法去验证。原因出在了Squid上。squid.conf 的配制文件 forwarded_for 项默认是为on,如果 forwarded_for 设成了 off  则:X-Forwarded-For: unknown

于是可得出获得客户端真实IP地址的方法二:

 1    public String getIpAddr(HttpServletRequest request) {
 2        String ip = request.getHeader("x-forwarded-for");
 3        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
 4            ip = request.getHeader("Proxy-Client-IP");
 5        }

 6        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
 7            ip = request.getHeader("WL-Proxy-Client-IP");
 8        }

 9        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
10            ip = request.getRemoteAddr();
11        }

12        return ip;
13    }

  可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串Ip值,究竟哪个才是真正的用户端的真实IP呢?

  答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。

  如:
  X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
  用户真实IP为: 192.168.1.110


说明:按这种方法不一定100%准,网上很多人提到要准确的话必须做一个客户端空间,如applet。
posted @ 2008-11-26 16:07 张秀兰 阅读(4122) | 评论 (1)编辑 收藏
 

Love paradise-陈慧琳
As long as you love me
My love
No matter what
Sweet dream-张娜拉
I know love you

Pretty Boy - M2M
水晶 -任贤齐 徐怀钰  
moonlightshadow


http://www.bxgz.com.cn/forum/viewthread.php?tid=551&extra=page%3D1
posted @ 2008-11-19 15:50 张秀兰 阅读(10814) | 评论 (2)编辑 收藏
 

最近发生太多不开心的事了,真的觉得很累
几乎每天都把心抓得紧紧的感觉,真的很难受
真的得吸取教训,为什么处理事情会变成这样呀
昨晚那个字眼“仇视”时刻出现在我脑海里,我们真的就这样成了结束了吗???
我真的没有勇气再去面对!
好难受好难受!
这几天感觉人快要跨了
解玲还需系玲人,可我真的不知道该怎么办了!

。。。。。。

posted @ 2008-11-06 14:41 张秀兰 阅读(255) | 评论 (0)编辑 收藏
 
此刻的心情我只能说:
Endures for a while uneventfully, draws back a step of boundlessness

让心好好休息会吧
别想了,想了,更是累!
好好过日子吧!
(生活是一首歌,需要我们用心去唱,用心去听)
posted @ 2008-11-06 09:18 张秀兰 阅读(473) | 评论 (0)编辑 收藏
 
Keytool 是安全钥匙与证书的管理工具。它管理一个存储了私有钥匙和验证相应公共钥匙的与它们相关联的X.509 证书链的keystore(相当一个数据库)。
Keytool 是一个有效的安全钥匙和证书的管理工具。它能够使用户使用数字签名来管理他们自己的私有/公共钥匙对,管理用来作自我鉴定的相关的证书,管理数据完整性和鉴定服务。它还能使用户在通信时缓存它们的公共钥匙.
一个证书是某一实体(个人,公司等)的数字签名,指出其他实体的公共钥匙(或其他信息)的详细的值.当数据被签名后,这个签名信息被用来检验数据的完整性和真实性.完整性指数据没有被修改和篡改,真实性指数据从任何产生和签名的一方真正的传输到达。
Keytool 把钥匙和证书储存到一个keystore.默任的实现keystore的是一个文件。它用一个密码保护钥匙。而另外的一个工具jarsigner用keystore中的信息产生或检验Java aRchive(jar文件)中的数字签名。
Keystore有两个不同的入口:
1.       钥匙入口:保存了非常敏感的加密的钥匙信息,并且是用一个保护的格式存储以防止未被授权的访问.以这种形式存储的钥匙是秘密钥匙,或是一个对应证书链中公有钥匙的私有钥匙.
2.    信任证书入口:包含一个属于其他部分的单一公共钥匙证书.它之所以被称为"信任证书",是因为keystore信任的证书中的公共钥匙真正属于证书所有者的身份识别.
 
Keystore的别名:
所有的keystore入口(钥匙和信任证书入口)是通过唯一的别名访问.别名是不区分大小写的。如别名Hugo和hugo指向同一个keystore入口.
可以在加一个入口到keystore的时候使用-genkey参数来产生一个钥匙对(公共钥匙和私有钥匙)时指定别名.也可以用-import参数加一个证书或证书链到信任证书。
 
如:keytool -genkey -alias duke -keypass dukekeypasswd
 
其中duke为别名,dukekeypasswd为duke别名的密码。这行命令的作用是产生一个新的公共/私有钥匙对. 其中duke为别名,dukekeypasswd为duke别名的密码.这行命令的作用是产生一个新的公共/私有钥匙对.
假如你想修改密码,可以用:
keytool -keypasswd -alias duke -keypass dukekeypasswd -new newpass
将旧密码dukekeypasswd改为newpass.
 
Keystore的产生:
1.       当使用-genkey 或-import或-identitydb命令添加数据到一个keystore,而当这个keystore不存在时,产生一个keystore.默认名是.keystore,存放到user-home目录.
2.    当用-keystore指定时,将产生指定的keystore.
 
Keystore的实现:
Keytool 类位于java.security包下,提供一个非常好的接口去取得和修改一个keystore中的信息. 目前有两个命令行:keytool和jarsinger,一个GUI工具Policy 可以实现keystore.由于keystore是公开的,用户可以用它写一些额外的安全应用程序。
Keystore还有一个sun公司提供的內在实现.它把keystore作为一个文件来实现.利用了一个keystore类型(格式)"JKS".它用单独的密码保护每一个私有钥匙.也用可能不同的密码保护整个keystore的完整性.
 
支持的算法和钥匙大小:
keytool允许用户指定钥匙对和注册密码服务供应者所提供的签名算法.缺省的钥匙对产生算法是"DSA"。假如私有钥匙是"DSA"类型,缺省签名算法是"SHA1withDSA",假如私有钥匙是"RSA"类型,缺省算法是"MD5withRSA".
当产生一个DSA钥匙对,钥匙必须在512-1024位之间.对任何算法的缺省钥匙大小是1024位.
 
1.       证书:一个证书是一个实体的数字签名,指出其他实体的公共钥匙有明确的值。
2.       公共钥匙:是同一个详细的实体的数字关联,并有意让所有想同这个实体发生信任关系的其他实体知道,公共钥匙用来检验签名;
3.    数字签名:假如数据已被签名,并用身份存储在一个实体中,一个签名能够证明这个实体知道这个数据.这个数据用实体私有钥匙签名并递交;
4.    身份:知道实体的方法.在一些系统中身份是公共钥匙,其他系统中可以是从一个X.509名字的邮件地址的Unix UID来的任何东西;
5.    签名:一个签名用实体私有钥匙来计算某些加密数据;
6.    私有钥匙:是一些数字,每一个私有钥匙只能被特定的拥有该私有钥匙的实体知道.私有和公共钥匙存在所有用公共钥匙加密的系统的钥匙对中.一个公共钥匙加密(如DSA),一个私有钥匙与一个正确的公共钥匙通信.私有钥匙用来计算签名。
7.    实体:一个实体可以是一个人,一个组织,一个程序,一台计算机,一个商业,一个银行,或其他你想信任的东西.
 
Keytool应用实例:
 
1.产生一个keystore:
 
keytool -genkey -alias User(keystore的别名) -keyalg RSA -validity 7 -keystore keystore(指定keystore).
 
运行这个命令,系统提示:
Enter keystore password:yourpassword(输入密码)
 
What is your first and last name?
[Unknown]: your name(输入你的名字)
 
What is the name of your organizational unit?
[Unknown]:your organizational(输入你所在组织单位的名字)
 
What is the name of your organization?
[Unknown]:your organization name (输入你所在组织的名字)
 
What is the name of your City or Locality?
[Unknown]:your city name(输入所在城市的名字)
 
What is the name of your State or Province?
[Unknown]:your provice name(输入所在省份名字)
 
What is the two-letter country code for this unit?
[Unknown]:cn(输入国家名字)
Is CN=your name, OU=your organizaion, O="your organization name",L=your city name, ST=your province name, C=cn correct?
[no]: yes
 
3.    检查一个keystore:
keytool -list -v -keystore keystore
Enter keystore password:your password(输入密码)
 
将显示keystore內容如:
Keystore type: jks
Keystore provider: SUN
 
Your keystore contains 1 entry
Alias name: yourname
Creation date: Dec 20, 2001
Entry type: keyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=yourname, OU=your organization, O="your organization name",
L=your city name, ST=your province name, C=CN
Issuer: CN=Duke, OU=Java Software, O="Sun Microsystems, Inc.", L=Palo Alto, ST=CA, C=US
Serial number: 3c22adc1
Valid from: Thu Dec 20 19:34:25 PST 2001 until: Thu Dec 27 19:34:25 PST 2001
Certificate fingerprints:
MD5: F1:5B:9B:A1:F7:16:CF:25:CF:F4:FF:35:3F:4C:9C:F0
SHA1: B2:00:50:DD:B6:CC:35:66:21:45:0F:96:AA:AF:6A:3D:E4:03:7C:74
 
3.输出keystore到一个文件:testkey:
keytool -export -alias duke -keystore keystore -rfc -file testkey
系统输出:Enter keystore password:your password(输入密码)
Certificate stored in file < td>
 
4.输入证书到一个新的truststore:
keytool -import -alias dukecert -file testkey -keystore truststore
Enter keystore password:your new password.(输入truststore新密码)
 
 
5.检查truststore:
keytool -list -v -keystore truststore
系统将显示truststore的信息.
 
现在可以用适当的keystore运行你的应用程序.如:
java -Djavax.net.ssl.keyStore = keystore
-Djavax.net.ssl.keyStorePassword=password Server
 
和:
 java -Djavax.net.ssl.trustStore=truststore
-Djavax.net.ssl.trustStorePassword=trustword Client
posted @ 2008-11-05 15:11 张秀兰 阅读(452) | 评论 (0)编辑 收藏
 

关于拍婚纱照的事,终于在11.1号周六那天搞定了
10.31周五晚上,早早准备好明天几点起床,调好8:30闹钟了
闹钟响了,按掉后还是偷懒了会,后面等PP到家,到大城小爱已经快11点了
可怜的老猪,早上没吃东西。。。。
想到跟她们讨价还价就觉得辛苦呀
到最后我也实在不想说了,感觉一个都没谈下来,后面都是补钱的
32XX(基本套餐) + 15XX(套系) + 800(鼓浪屿+套系相框加大成16”) = 52XX
原本只计划3K-4K的,后面成了5K多了,又多花了不少,呵呵
现在想想那天也真够厉害的,跟她们谈到下午1点多
终于搞定了,16号开拍,呵呵
我们都想着到时拍相应该也挺辛苦的
不过呢,苦辛甘来哦,呵呵

posted @ 2008-11-04 14:29 张秀兰 阅读(187) | 评论 (0)编辑 收藏
 
最近在忙着整理taobao店,今天才抽空记记11.2号这个特殊的日子
11.2号周日,老猪的爸爸去偶家拿婚书(老家方言),就是选日子啦
可周日那天偶身体不舒服(刚好来大姨妈了,呵呵),等下午我们才出去逛
原本老猪说要请几个好朋友一起吃饭,可看到我身体不舒服,后面也就没准备了
先在中山路逛了逛,因为下午还是有点累,也就随意逛逛,还去给老你存了生活费,呵呵
后面走到女人街时 ,看到照大头贴的,我强烈要求要去拍大头贴,老猪也拿我没办法,
后面拍了8张那种的,两个人拍得满头大汗,偶出于第一次感觉拍大头贴,还是挺积极的,
不满意的就按取消,在拍最后一张时,可能是我按错了,已成确定了,最后一张不是很满意,呵呵
要去买老猪的衣服,看他一点积极性都没有就知道今天很难能买到他会喜欢的,后面没收获
傍晚那时,准备找地方吃饭了,因为今天是个特殊的日子,跟老猪说要找个优雅的地方吃饭
后面决定去瑞景商业广场那有家豪佳香,老猪说那地方还不错,在7-8点这时间段还有请人在弹钢琴
嗯,进去后感觉真的不错,静中有动,静的是大家都小声优雅的聊着天,动的是有人在深情投入地弹着
钢琴,不像豪客来,豪享来那么吵,而且里面的服务生态度也很好
当然消费大部分会比那两家贵一点点,也不会差很多就是
那天我们灿烂的笑容印记在老猪的手机里,有点遗憾的是,那天手机相数没调好,是最小的相数,
放到电脑上看,有点模糊,老猪被偶“批斗”了一番,呵呵
吃完饭,走到对面去搭车,想着那会还早,去屈看看唇膏,买了个经常用的MenThoLaTum
那天我一直想买个小礼物可以留做纪念,在中山路那逛了很多银饰店,老猪的手指不好带戒指
最后我只好妥协,没买情侣戒
后面在瑞景我还是想买个小礼品也行,又跟老猪说再去逛逛
后面又到了银饰店:仙绿晶
可能较少人在瑞景逛,仙绿晶店里还有挺多饰品的,款式比在中山路那几家多了不少
挑中了一串手莲,刚好有人也在买饰口的有打折卡,第一次硬着头皮向人家借卡,呵呵
谢谢那位小姐喽
省了20几块,呵呵
不过,可惜的是,老猪什么也没有
(其他一切都在计划中,呵呵)

我们自己把这天当作订婚日子,呵呵:)
这天偶们是快乐幸福的天使,哈哈:)

永远记住这个特殊的日子:2008年11月2号(农历10月初五)
(这天还是阿莲的生日呢,可这天我给忘记了,只好跟她说声对不起了)
posted @ 2008-11-04 14:16 张秀兰 阅读(352) | 评论 (2)编辑 收藏
 
 导出和导入证书

 

为了解释清楚如何输出和输入证书,我会使用我自己的 HTTPS 服务器。这个服务器在第一部分中讨论过。然后,跟着下面的内容开始:

1、运行 HTTPS 服务器,像在第一部分中讨论的那样。

2、运行 ReadHttpsURL1:java ReadHttpsURL1 localhost。你同样会得到上面所述的异常。

3、使用下面的 keytool 命令导出服务器证书:

o 从 serverkeys 文件中导出别名为 qusay 的证书

o 将导出的证书保存在 server.cert 文件中,这个文件会由 keytool 创建

如你看到的那样,我根据要求输入了密码。成功输入密码之后,服务器证书被成功的导出并保存在 server.cert 中。

Prompt> keytool -export -keystore serverkeys -alias qusay -file server.cert

Enter keystore password: hellothere

Certificate stored in file

4、将文件 server.cert 拷贝到 ReadHttpsURL1 所在的目录。使用 keytool 创建一个新的 keystore 并将服务器的 server.cert 证书导入其中。这里的命令示例:

Prompt> keytool -import -keystore trustedcerts -alias qusay -file server.cert

这个命令会产生下面那样的输出。它要求输入密码,这是一个新的密码,用于 trustedcerts 这个 keystore 的。这个 keystore 由 keytool 创建。在输出信息的最后,它询问我是否愿意相信这个证书,我回答 yes。

Enter keystore password: clientpass

Owner: CN=localhost, OU=Training and Consulting, O=javacourses.com, L=Toronto, ST=Ontario, C=CA

Issuer: CN=localhost, OU=Training and Consulting, O=javacourses.com, L=Toronto, ST=Ontario, C=CA

Serial number: 3dcf988a

Valid from: Mon Nov 11 06:46:18 EST 2002 until: Sun Feb 09 06:46:18 EST 2003

Certificate fingerprints:

MD5: 37:35:4D:3A:2B:7E:B5:09:A5:41:B3:FA:E4:3C:1D:C4

SHA1: CB:7C:77:36:79:A2:37:26:E2:98:61:C2:9D:10:50:69:

99:F9:B9:1B

Trust this certificate? [no]: yes

Certificate was added to keystore

5、现在运行 ReadHttpsURL1 并告诉它哪里能找到证书。使用下面的命令:

Prompt> java -Djavax.net.ssl.trustStore=trustedcerts ReadHttpsURL1 localhost

这将会与你的 HTTPS 服务器联接、校验证书,如果正确,它会下载默认页面 index.html。

注意:信任管理器负责决定远端的证书是否值得信任。它使用下面的规则:

1、如果 javax.net.sll.trustStore 系统属性指定了信任库,那么信任管理器会使用提供的文件来检查证书。如果那个系统属性存在但指定的文件不存在,那么就没有使用任何信任库,会抛出一个 CertificateException 异常。

2、如果 javax.net.sll.trustStore 系统属性没有定义,那么它会去寻找默认的信任库:

如果在你的 java.home 目录的 lib/security 子目录下存在名为 jssecacerts 的信任库,那么使用的就是它。

如果 jssecacerts 不存在,但是 cacerts 存在 (它随 J2SDK 一起发行,含有数量有限的可信任的基本证书),使用的就是 cacerts。

在我的 Windows 2000 客户机中,java.home 目录是 c:\Program File\java\jre1.4.1\lib\security,在上例中,如果你将 trustedcerts 更名为 jssecacerts 并将其移动到 lib/security 子目录中,那么你以后就不需要在命令行指定 javax.net.ssl.trustStore 属性了。

如果你不知道 java.home 在哪里,这里有一小段代码可以让你找到它:

            

public class FindJavaHome {

public static void main(String argv[]) {

System.out.println(System.getProperty("java.home"));

}

}




=========================
说明:

cacerts: 自定义信任库密码是wshr.ut
testkeystore:证书库存放了服务器证书和对应的私钥.
my.cer: 被CA签名后的服务器证书,以导入testkeystore
HBCA.cer: CA的根证书,以导入到cacerts,testkeystore,需要导入IE.
测试单证02.pfx:   CA签发的一个个人证书,需要导入到IE
MyHTTPSServerAuth.java   : 实现SSL服务的JAVA代码.

我得jdk是j2sdk1.4.2_01的,我把上面的那些全放在JDK的bin目录下方便使用那个keytool来调试.
证书时我搭的一个CA来签的,.

部分过程:
C:\j2sdk1.4.2_01\bin>keytool -genkey -dname "CN=www.my.com,OU=hbca,O=hbca,L=wuhan,S=hubei,C=CN" -alias test -keyalg RSA -keystore testkeystore -keypass wshr.ut -storepass wshr.ut

C:\j2sdk1.4.2_01\bin>keytool -certreq -keystore testkeystore -alias test -file test.csr -storepass wshr.ut

C:\j2sdk1.4.2_01\bin>keytool  -import -alias CA -file hbca.cer  -keystore testkeystore
输入keystore密码:  wshr.ut
Owner: C=CN, O=TEST, CN=HBCA
发照者: C=CN, O=TEST, CN=HBCA
序号: 2aed19e4a2900b69e9a307700439a1d1
有效期间: Thu Sep 22 11:36:25 CST 2005 至: Sat Jun 01 11:36:25 CST 2019
认证指纹:
         MD5:  DB:32:5B:CA:EB:79:D2:40:F4:5C:65:87:4F:8B:93:8D
         SHA1: C3:68:DC:A5:1E:DC:A9:07:60:CF:5D:38:A3:4C:10:67:28:20:6F:A3
信任这个认证? [否]:  y
认证已添加至keystore中

C:\j2sdk1.4.2_01\bin>keytool  -import -alias test -file my.cer  -keystore testkeystore
输入keystore密码:  wshr.ut
认证回复已安装在 keystore中
C:\j2sdk1.4.2_01\bin>keytool  -import -alias test -file hbca.cer  -keystore cacerts
输入keystore密码:  wshr.ut
Owner: C=CN, O=TEST, CN=HBCA
发照者: C=CN, O=TEST, CN=HBCA
序号: 2aed19e4a2900b69e9a307700439a1d1
有效期间: Thu Sep 22 11:36:25 CST 2005 至: Sat Jun 01 11:36:25 CST 2019
认证指纹:
         MD5:  DB:32:5B:CA:EB:79:D2:40:F4:5C:65:87:4F:8B:93:8D
         SHA1: C3:68:DC:A5:1E:DC:A9:07:60:CF:5D:38:A3:4C:10:67:28:20:6F:A3
信任这个认证? [否]:  y
认证已添加至keystore中

posted @ 2008-11-03 15:42 张秀兰 阅读(1573) | 评论 (0)编辑 收藏
 

在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢?

其实很简单,方法如下:

每一步:进入某个https://www.xxx.com开头的网站,把要导入的证书下载过来,

    在该网页上右键 >> 属性 >> 点击"证书" >>

    再点击上面的"详细信息"切换栏 >>

    再点击右下角那个"复制到文件"的按钮

    就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。

    例如:保存为abc.cer,放在C盘下

 

第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里?

    方法如下

    假设你的jdk安装在C:\jdk1.5这个目录,

    开始 >> 运行 >> 输入cmd 进入dos命令行 >>

    再用cd进入到C:\jdk1.5\jre\lib\security这个目录下

    敲入如下命令回车执行

    keytool -import -alias cacerts

        -keystore C:\jdk1.5\jre\lib\security\cacerts

        -file C:\abc.cer

        -trustcacerts

    此时命令行会提示你输入cacerts证书库的密码,

    你敲入changeit就行了,这是java中cacerts证书库的默认密码,

    你自已也可以修改的。

posted @ 2008-11-03 15:36 张秀兰 阅读(500) | 评论 (0)编辑 收藏
 

的确,至从跟猪头在一起后,很多心思都花在他身上,少了相当多同学的联系,甚至包括家人,也少了点关心
莲曾对此事抱怨过了
MM说的没错,我变了
我现在真的是只在乎他一个人,除了工作上的事,我把所有精力都放在他身上了
但是,我却把关心我的人给遗忘在一个角落了
可当想到要去关心关心我的人时,却被下次,下周。。。给和谐了
对于今天跟MM聊的事,我除了后悔,伤心,难过,流泪,我该怎么做呀???


警告自己:
有些事,有些话是不可以因为自己担心,自己害怕而藏在心里!
有些事是不可以等下周,下次来做的!想到的事就立马做到!即使没有完成也不会后悔!

posted @ 2008-10-28 12:12 张秀兰 阅读(285) | 评论 (0)编辑 收藏
 
上周五晚上后面去小黄女朋友家吃饺子
到了公园站我就下车了,误认为是公园东门站了
他们在车站那等我了,我下车接到老猪的电话,快走到车站时,他们就转身就走了
没跟我打招呼,可能当时他们是在传手机什么东东
等一会,可能是见我也没反应,当时已经生气了,老猪过来要拉我的手,我转身走自己的
刚好加上这几天原本憋在心里的气,一起上来了,在真的很生气
一路上我们都没理谁
只有他不小心被开水烫了时,我才理他,回家后我们照样没理谁
洗完澡,真不想那些生气的事,因为说到底也没什么事
或许他觉得出差没什么,已经习惯了
不像我觉得得老担心
你们不理我,我更得自己好好照顾自己,而且现在又不是三岁小孩了
此时我只好选择背英语单词,在房间里记单词
他洗澡去了,洗澡出来后,我仍然在记我的单词
他自己把换的小裤Y洗了,我当时更是生气,可我没说什么,我走到阳台,站在他身后
不说话,当时真很想问他是不是以后各顾各的
。。。。。。
我站了一会,什么也没说,他晒完就回房间,玩他的电脑去了
我走到客厅,把灯关了,一个人坐在沙发上
过了好好一会,他出来问了,怎么了,在生什么气
还用了很陌生,很客气的套话,麻烦你说说原因
。。。。。。
我说没什么事,一会就好了
他回房间了,我再坐了会,他没有再出来过,他去刷牙,我就到阳台站了
在阳台站了好一会,他没有出来过
他在床上玩他的手机

站了一会有点冷,再伤心也不能让自己生病
我进去刷牙后,也躺在床上,他关灯准备睡觉的样子
我重新把灯开了,说:说会话再睡吧

我把这些天的怒气都说了:
问为啥到客户那也不发个短信
要回家了也没有发个短信或个电话
知道我多担心吗
(说到这,爱哭的我,已经说不出话了。。。。。)

他很久没有回话
后面他说在想很多问题

从这次发现他真的没像以前那样宠我了,可能他真的觉得我莫名其妙生气吧
该成长起来了,爱哭的鱼

一切都得靠自己!
posted @ 2008-10-27 13:58 张秀兰 阅读(383) | 评论 (4)编辑 收藏
 
给你的一封情书
你是我的最爱,
你是我一生的期待。
就算变成老头老太,
也要天天一起买菜,
我为你煮牛奶,
你给我补钙,
一起锻炼一起把太阳晒,
共同打造甜蜜的未来!

今天手机收到的10658222短信,感觉不错,留个脚印,让老猪知道
posted @ 2008-10-23 17:00 张秀兰 阅读(216) | 评论 (0)编辑 收藏
 
刚刚发信息问:可以回来没呢?(老猪今天出差去漳州客户)
电话回了
我用公司回了
老猪说已经到岛内了
听到这我又不懂了。。。。
以前出差呢,出门时会发个信息说我上车了,或者类似的
可以回家时,很多时候都会给偶电话说可以回家了,可现在连个信息都不用了
(现在都没有了,中午11点多时偶还特意给他打了电话问有没吃饭再去
说有先吃了2/3的面包,到漳州再吃午餐
到5点多了还没收到回家信息)
他是很忙,即使坐上回家的车也在忙?
还是忘记了?
还是觉得没必要?
。。。。。
真不懂。。。。。
别说要问晚上要不要回家吃饭,至少可以说可以回家了
让偶的心可以放下
每次听到他说可能要晚点,就会有点心疼。。。。。。

或许女人的想法较多
这是不是也体现了女人更注重家庭?

我知道这是些琐碎的事,但我真的很在意!
当然我也知道两个人也要相互体谅

此刻只好在此发下牢骚了!
posted @ 2008-10-22 17:30 张秀兰 阅读(184) | 评论 (0)编辑 收藏
 
这篇原本应该是写在待嫁日记之一前面比较合适,呵呵
是不是每个女人都有婚前恐惧症呀?
想想有时的确挺让老猪听起来难受的,虽然我并没有其意,但听者有意哦,呵呵
我说你现在还有考虑选择的机会,呵呵
最近一二周有时会在想,特别是看到老猪回家经常要么看手机小说,要么看电影
我忙我的:洗衣服,凉衣服,打扫卫生(有时他也有帮忙的,呵呵)
当然只要我开口要帮忙,亲爱的都会热情帮我的
想着结婚后:
是不是就真的各自做自己的事了?
老猪就不再那么宠偶了?
。。。。。
真的有时想要不明年再结婚吧,再让我们过过情侣的生活,哈哈

希望我的婚前恐惧症都是不成立的,不会出现的
posted @ 2008-10-22 16:34 张秀兰 阅读(196) | 评论 (0)编辑 收藏
 
从上周就开始关注拍婚纱照了
先是一直从同学那里打听,他们在哪拍的,拍了多少钱,效果怎样等等
后面特别是这两天开始在xmfish上游来游去的,看得我眼花缭乱
刚好这两天工作上没什么事,有也只是小修改而以,一会就搞定了,大部门时间都在网上看
影楼网站图片,介绍。这两天下班后都上课了,所以今天感觉好累,呵呵
等待着苦辛甘来,呵呵
现在跟老猪决定这周末去小弟那拿套情侣装,初步定下周去大城小爱看看,下周刚好是贵公司周年店庆,
希望会有多多优惠哦
接下去几天继续关注影楼,呵呵
posted @ 2008-10-22 16:22 张秀兰 阅读(170) | 评论 (0)编辑 收藏
 
原本打算国庆不回家的,后面老猪的爸爸身体不舒服,住院了,我们28号下午就回家了
在诏安县医院住院,等到1号结果才出来,是因为颈椎有点小问题导致头晕,提心吊胆终于可以放心了。
偶1号下午自己先回偶家了,回到家,还是做了那么多的流程,打扫卫生,准备做饭,呵
初八是老妈的祭日,也就是6号,可6号俺要上班了,因此提前在3号做老妈的祭日,几个哥哥说有我在家也就
没回家了,老猪3号一大早就出发来偶家了。
大姐8点多也来家里了,姐夫是等10多才来,准备了要拜拜的东西,老猪表现很好,偶老妈肯定很是高兴,呵呵!
虽然老妈已离开我们3年了,可她一直都是我心中,还是控制不住自己的情绪,眼睛情不自禁湿了。。。

中午我们5个人一起吃了午餐,大姐可能是上火了,吃完午餐一会牙痛,没坐聊一会,她跟姐夫先回去了。
老爸去午休了,我带老猪去了纯枝家,她夫妻还没见过老猪,呵呵。
聊到差不多2点,我们才回家,整理了会偶的行礼,准备坐车去县城了
(可怜的电动车,载着我们三个人,呵呵)。
老猪的爸爸那天还在住院,4号主治医生(出差)才回医院上班。
到了车站顺便买回厦门的车票,只有下午5点20车票,没办法,只好买了。
晚上还去他大哥家坐了会,9点多才去医院再看下他老爸,坐了会,回他大姐家,我们住在他大姐家
4号早上医生说可以出院回家自己慢慢疗养了,老猪东跑本跑把出院手续办好了,这些天辛苦老猪了!
中午时,还跟济培,济亁,小龙,炎煌,还有一个炎煌朋友一起吃了午饭,吃完去了几个小孩子的宿舍,
因为其他舍友都在午休,也就在门口看了下,聊了会,让老猪来接,去了炎煌朋友参观了新家。
下午3点左右他姐夫开车送我们回老猪家,老猪跟他妹夫各自骑摩托车回家,速度跟我们差不多
5号早上还去了他同学雄家
这次回厦门坐车够累人的,没走高度,车还晚到了,到6点了才上车,回到家,已经快10点了,
大概整理了下东西,洗刷下,睡觉
6号周一上班还是那个睏,呵呵
posted @ 2008-10-07 14:35 张秀兰 阅读(216) | 评论 (0)编辑 收藏
 
     摘要:   六十八个经典小故事[黑色幽默] 一、用人之道 去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口黑脸的韦陀。但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙。   弥乐佛热情快乐,所以来的人非常多,但他什么都不在乎,丢三拉四,没有好好的管理账务,所以依然入不敷出。而韦陀虽然管账是一把好手,但成天阴着个脸,太过严肃,搞得人越来越少,最后香火断...  阅读全文
posted @ 2008-09-26 15:34 张秀兰 阅读(710) | 评论 (0)编辑 收藏
 
不管是在写程序的时候,包括生活,凡事都可以想简单点!
想多了,累的是自己!
多给彼此私人的空间和时间或许会更好吧!不懂!
或许没有我在旁边时,他会发表很多想法,不懂!
并非我不相信你,而是我的独占心太强了!
再次警告myself:别生在福中不知福!
posted @ 2008-09-24 09:37 张秀兰 阅读(204) | 评论 (0)编辑 收藏
 
托老猪堂弟的福,他农历18也就是17号结婚,我们两个请了个长假,我请了三天,老猪请了四天,再加上中秋放假,周末,总共有6天的长假。
玲艳他们13号要回福州,12晚上,周五,在他公司博完饼后在我们家聊天,他们回家时已经喝得差不多了,
后面剩下4个女将通宵
他们是13号下午3点20分的车票,送完他们,我们开始整理带回家的东西去了他堂弟宿舍,一起吃了晚饭,
7点多开车出发回家,到家快10点了,叔叔阿姨在他小叔家等我们了,我们回到家还吃了粥,休息了
。。。

2008-10-22简要补上:
跟老猪磨擦了好久,后面我投降了(不是,是我情愿的,呵呵),农历16,就是中秋在他家过,第二天才回我家
在偶家住了一晚,回去热他堂弟的洞房,呵呵
他堂弟结婚那天照了挺多相片的,还跟他家人照了全家福,现在还没拿去洗,准备接下去拿去洗
posted @ 2008-09-19 13:05 张秀兰 阅读(180) | 评论 (0)编辑 收藏
 
时间过得好快好快,转眼一年又快过去了
想着按照计划,明年的这个时候我就是准妈妈,很是兴奋,也有点紧张!
现在想着压力好大,呵呵!
希望一切都好!
(今天公司体检,早上问猪头可以否体检X光胸透,他说身体要紧,去体检吧。
--猪头真的是个好老公,谢谢你!!!偶以后尽量不再乱耍脾气,呵!
我决定不去体检X光胸透,还没有告诉猪头,晚上回去再告诉他,嘻嘻!
每次体检也都没问题!)
posted @ 2008-09-10 14:56 张秀兰 阅读(159) | 评论 (0)编辑 收藏
 
贰零零捌年捌月初捌,是个特殊的日子:老猪爸爸去俺家提亲了,嘻嘻:)
俺三哥也有回家了,当天很是兴奋,也很开心,而且我们几个还去安溪志闽旅游了
前天(周六)下午7点左右我们家(同一宿舍,我们是一家人)四个人还有荣华的两对同学,总共4对8个人
租了一辆车,向安溪志闽旅游出发,8点半左右就到了。
休息会我们在湖泊边的一个烧烤地方烧烤,还有荣华的几个同学,其中老板也是他同学
玩到3点左右回房间睡觉,原本还想露营,可因为那天下午有下雨,也就没有了
睡到第二天早上9点多,整理完打野战去了
老猪被中了一枪,我打中了两个“敌人”,一个中了头跟PP,还中了另外一个的PP,哈哈!
俺没被中过,后面子弹打完了,只剩下玲艳一个在战场上了
后面打成平手,呵
赶紧下去吃饭,因为刚才起来没吃东西就去打野战了
吃完后,攀岩,漂流,走单绳
第一次走时,跟小陈一起走,最后被郭老板给摇下来了,我只好漂到对岸,穿着救生衣
下午5点左右准备打道回府,6点要还车
还了车,8个人还一起吃饭,庆祝我们提亲成功,呵!
(顺便公布下:炎煌今天早上升级了,喜得千金,恭喜他们!!!)


小小总结:
A:江山易改,本性难移;但该改的还是得改
B:别太敏感,别太娇气,学着成熟,学会独立
两个人在一起,并不是单单只有责任,还要有信任,耐心,细心,关心,知心
幸福的生活是靠两个人一起创造,一起分享,一起渡过的
posted @ 2008-09-08 15:04 张秀兰 阅读(232) | 评论 (0)编辑 收藏
 

麻烦老猪同学帮买了周五下午4四班的车票,原本还想3点离开公司应该不用请假了,没想到还是得请假了,
现在在二楼一个危险区办公不方便,呵呵
晚上8点左右到老猪家的,放下行礼连脸都没洗就跑去他表哥家吃饭了,那天可能是坐车原因,老猪没吃什么东西,
也没喝多少酒,我们9点多就回家了。
回来后老猪说要我留在家,他再过去他表哥家,刚听到这话时有点难受,不过,想想今天是他家过节,要是这样就跟他那几个哥们散会,让他待在家,他肯定会更难受,后面同意他再去。
老猪没去多久就回来了,10多吧,可能他怕我在家还不习惯,呵呵
第二天,起了个大早7:30,呵,吃了早餐,出发去俺家。
到家已经差不多11点了,休息了会,跟老猪去菜市场买菜,准备午餐
中午姐姐还有宏彪一起在家吃了午餐,老猪做的菜真好吃,呵
吃了午餐休息会,1点10多分准备去下官坐车,3:50的厦门车票,在回俺家时已经先买了
早上要回俺家,还忘记了收相机,只好叫老猪爸爸在高速路口等我们那班车,拿给我们
晚上7点多就到家了,去买了馒头,煮了海带汤(很油),边吃边看奥运闭幕式
回家真好,但感觉好赶,很多时间都花在车上,呵

posted @ 2008-08-25 12:55 张秀兰 阅读(200) | 评论 (0)编辑 收藏
 

7月19号周六早上一大早,玲艳,荣华,加上我们两个四个人朝曾厝垵出发,
搬家啦,搬家啦,搬到前铺老猪那了。
两个人住在一起的磨合期,这个磨合期还真的有点难。
昨晚老猪公司要求讲课,他是主讲,到9点才回到家,不知是讲课讲了累了还是什么事,
11:33分叫他一起睡觉,他说这么早呀,他还说今天要早起呢,我当时就觉得有点委屈,呵
我憋着委屈说那我先睡吧,躺下去,想着一个人回到家,整理完,睡觉时还是一个人先睡,好委屈,眼泪就情不自禁的流出来了。
流到抽鼻子,他问我怎么了,我没有说话,也说不出话
他抱着我时,我哭得更凶,跟他说一起睡觉吧
说了会话,他说以后肯定会有一个人先睡呀,他说这话时,我已经停止哭泣了,可一听到这话,我又难受,又
哭了起来。。。。
应该是还没有习惯,若是一个人自己住,我先睡这是从头到尾的事,我应该学会独立,学会自己照顾好自己
不能依赖其他人!
早上起来也不知他是没睡过,还是怎么,叫他起床三次,他最后说:我自己想起来再起来。
听这话好难受,我换了衣服从房间出来,也没跟他说一会吃完早餐就上班,我吃了早餐也就出来搭车了
或许像类似这样的琐事以后还多的事,但现在想想真的有点累,有点难受
希望我可以尽快适应这些,从这些事成长起来
感觉现在的我跟以前单身时完全变了,变得那么容易娇气,所以的志向也不知去向了!
这个磨合期要多长呀???
希望老猪跟我一起加油,赶紧结束这个磨合期!

posted @ 2008-07-22 08:55 张秀兰 阅读(204) | 评论 (0)编辑 收藏
 

昨晚是在玲艳他们的帮助下,才知道我跟老猪具体是哪天确定关系的,呵呵
想想应该是那阶段太忙了,很多重要的事都没时间记个日记了。
3.15一个很好记的日子,那天我被老猪“骗”了,哈哈(别让他知道说是骗,要不,PP就要遭殃了)
5.1带老猪回家了,5.2跟老猪去他家了
6.7老猪爸爸即叔叔去俺家了,跟俺老爸见面认识了,当时还得感谢炎煌同学,叔叔是跟炎煌一起去我家的,
4.5去老妈那扫墓时,炎煌刚好在那里上班,有见过老爸三哥们。
在此,再次谢谢炎煌同学,7.3晚上他在老猪家吃饭时,我(第一次在外人面前)很爽快的喝了些啤酒,呵!
6.19晚上跟老猪坐晚上的商务车去广州老哥们那了,那是他们第一次见面哦(之前是有看过相片)
第一次见面,印象都不错的说,呵!
接下去几周一直到7.5,6号就差不多在准备期末考试了
7.8雪蓉母子来厦门玩,那晚跟她一起在厦大吃面,吃完一起去光合作用书店买了本《追风筝的人》,
她买了本英语四级考试必备字典,也真佩服她升妈妈级了还有这个心,不错,以后也值得我学习!
7.12号大学班级在厦同学聚会,详细见"08.07.12大学班厦门同学聚会"
光阴似箭!

posted @ 2008-07-14 16:13 张秀兰 阅读(196) | 评论 (0)编辑 收藏
 
08.07.12大学班在厦门的同学一起聚会了,除了在厦门同学带了朋友家属外,还有雄跟炳火从泉州也来参与了,
我除了带家属还带了个同事晓晖,总共21人,气氛搞得还不错的。
先是在椰风寨海边玩,大伙坐着围成一圈,吃着零食,聊着天,当然这离不开主持人松彬同学,
发现他除了善谈,幽默,他的文笔也真的很棒!
11点多时我们收场海边的活动环节,开始奔向可以放开歌喉,唱出那豪放的歌声的地方:欢唱去
虽然我们班同学在音乐这方面没啥特长,但那时大伙可能忘记了那一切,反正就拿起话筒那个哄,
我就是这样子的,呵呵
2点多时我的眼睛感觉睁不开了,问下主持人要到几点,说3点,好,continue。。。
3点到,结算准备走人,阿莲,晓晖,老猪,我四个人一车,先到老猪那路口,我们三个到宿舍3点40多分了,
实在是睏,洗了个澡,赶紧睡觉,刚躺下时还跟阿莲聊了会,但我实在是太睏了,那会阿莲好像还有点精神,
我说我们明天早上再聊好吧,我真的太睏了,呵呵!
第二天早上9点多就醒了,就开始跟莲聊天了(当时我还说我还想睡,呵)
10多时银煜来电话问准备在哪吃饭,后来MM也来电说要去老猪家吃饭,最后决定一起去老猪家吃饭。
(银煜,阿莲,MM,雄,还有我们家四个,昨天中等总共8个人哦,好热闹)
(等老猪炒完最后一道菜时,其他菜差不多都被我们吃完了,呵)
这个周末过得相当充实!
来show几张相片:














posted @ 2008-07-14 10:11 张秀兰 阅读(263) | 评论 (0)编辑 收藏
 
08.05.24是丽娇夫妻举行婚礼的日子,我们有几个同学一起去参加了,
就下面几张相片来说明我们当时是多么的开心,笑得多么的灿烂!
posted @ 2008-06-04 21:52 张秀兰 阅读(239) | 评论 (1)编辑 收藏
 
最近几天,手头上的任务比较多,到今天才有足够时间,心情来抒写这份凝重的心情。。。。
4月30号(周三晚上)在同事旁边找了一间单间的,交了压金,决定5月24号(周六)搬进去
5月23号晚上去买了些生活用品,回到宿舍整理完快11点了,夜深了,一个人在宿舍,在这样的环境,
想着曾经往事,一起走过的风风雨雨,酸甜的味道,此时一起全部涌现在脑海里,让我克制不住我的情绪,我的眼泪。。。
或许晓明说的是没错,这事是迟早要做的,只是提早了。是的,但是此时的心情是难受,
真的很难受。想着要离开曾一起住了1361天(2004.09.01-2008.05.24)的宿舍,那更是难受!
posted @ 2008-06-03 14:39 张秀兰 阅读(220) | 评论 (0)编辑 收藏
 
210.34.5.86 yd2008 yd2008
posted @ 2008-05-19 19:12 张秀兰 阅读(168) | 评论 (0)编辑 收藏
 
第一句
如果我们之间有1000步的距离
你只要跨出第1步
我就会朝你的方向走其余的999步

第二句
通常愿意留下来跟你争吵的人 
才是真正爱你的人

第三句
付出真心 才会得到真心
却也可能伤得彻底
保持距离 就能保护自己 
却也注定永远寂寞

第四句
有时候 不是对方不在乎你 
而是你把对方看得太重

第五句
朋友就是把你看透了 还能喜欢你的人

第六句
就算是believe 中间也藏了一个lie

第七句
真正的好朋友 
并不是在一起就有聊不完的话题
而是在一起 就算不说话 
也不会感到尴尬      

第八句
没有一百分的另一半 
只有五十分的两个人

第九句
为你的难过而快乐的 是敌人
为你的快乐而快乐的 是朋友
为你的难过而难过的 
就是那些 该放进心里的人

第十句
冷漠 有时候并不是无情
只是一种避免被伤害的工具
posted @ 2008-05-15 16:04 张秀兰 阅读(269) | 评论 (0)编辑 收藏
 
昨天5.12号迎来了2008Olympic火炬在厦门传递,公司放假了14:30-16:30
跟同事一起走到曾厝垵那边,在珍珠湾这边人太多了!
没有多少激动,只有在火炬手从身边跑过那一会,有点激动,呵呵!
来两张图片吧


posted @ 2008-05-13 09:04 张秀兰 阅读(188) | 评论 (0)编辑 收藏
 
停下脚步,发现最近走得太快了,应该放慢脚步,好好考虑考虑,好好休息会!
(想到昨晚的事,还是有那么点伤心,那么点失望,虽然那只是他一时的疏忽!)
posted @ 2008-05-06 09:51 张秀兰 阅读(162) | 评论 (0)编辑 收藏
 
光阴似箭,五一又到了,去年的这个时候正跟MM积极准备着去武夷山玩呢
去年的这几天晚上也是没怎么睡好,那时是因为激动呀,那是第一次去武夷山玩哦
而这几天也仍然睡不好,有点害怕,有点紧张,现在想想感觉有点太快了,真的有点怕怕
虽然知道紧张,害怕是没有用的,但每天晚上睡觉时还是会时时胡思乱想
希望一切都好!
祝所有朋友:五一快乐,心想事成!


(5月6号:五一回来了,一切都挺的好,紧张中享受幸福!
老爸对他的第一印象不错!老姐说他人挺老实的,也不错!
他家人也都挺好相处的,特别是他老爸挺疼俺的,接过他老爸亲手炸的地瓜饼那瞬间,
我真的感动万分!那一刻我从心底再次认定他了!
可能是因为跟他老妈语言勾通不方便,他老妈知道我不会说他那边的话,她又不会讲普通话,
显得拘束了很多,呵呵!)
posted @ 2008-04-30 09:42 张秀兰 阅读(136) | 评论 (0)编辑 收藏
 
经典语录TOP50
TOP1  
人生的最大遗憾莫过于错误地坚持了不该坚持的,轻易地放弃了不该放弃的……  
TOP2  
新式morning call——生前何必久睡,死后自会长眠  
TOP3  
使你疲劳的不是远方的高山,而且是你鞋里面的一粒砂子  
TOP4  
有时在饭堂排队打饭时最大的欣慰不是前面的人越来越少而是后面等的人越来越多  
TOP5  
逆风的方向,更适合飞翔。我不怕万人阻挡,只怕自己投降  
TOP6  
酒,装在瓶里像水,喝到肚里闹鬼,说起话来走嘴,走起路来闪腿,半夜起来找水,早上起来后悔,中午酒杯一端还是挺美。  
TOP7  
你要不理我我就成包子了…而且还是天津最有名的…嘿嘿…  
TOP8  
妈妈说人最好不要错过两样东西,最后一班回家的车和一个深爱你的人  
TOP9  
我问一个在深圳工作了二十年的朋友:“如果你死后,你的墓志铭打算写点啥?”他说:“我解决了住房问题!”  
TOP10  
那天看到一位大妈在烧纸,边烧边嘟囔着:收到了全都买基金吧~~  
TOP11  
学问之美,在于使人一头雾水;诗歌之美,在于煽动男女出轨;女人之美,在于蠢得无怨无悔;男人之美,在于说谎说得白日见鬼  
TOP12  
如果你看到面前的阴影,别怕,那是因为你的背后有阳光  
TOP13  
诸葛亮出山前,也没带过兵!凭啥我就要工作经验?  
TOP14  
本人made in china,出厂日期1981年X月X日,长180cm,净重67kg。采用人工智能,各部分零件齐全,运转稳定,经二十多年的运行,属信得过产品。该产品手续齐全,无限期包退包换。现因发展需要,诚招志同道合者共同研制开发第二代产品,有意者请联系!  
TOP15  
干掉熊猫,我就是国宝!  
TOP16  
我能容忍身材是假的,脸是假的,胸是假的,臀是假的!!!但就是不容忍钱是假的!!!!  
TOP17  
脱机的人永远不知道联机的人等了她多久……  
TOP18  
紧 急 通 知:请准备一寸彩照,身份证复印件,学历复印件,个人简历,送到国家航天局,据可靠消息,为庆祝中秋,要招聘嫦娥!(自带兔子)  
TOP19  
命运负责洗牌,但是玩牌的是我们自己!  
TOP20  
问世间情为何物,不过一物降一物~  
TOP21  
如果中了一千万,我就去买30套房子租给别人,每天都去收一次房租。哇咔咔~~充实!  
TOP22  
上帝欲使人灭亡,必先使其疯狂;上帝欲使 人疯狂,必先使其买房  
TOP23  
我们走得太快,灵魂都跟不上了……  
TOP24  
问:你喜欢我哪一点?答:我喜欢你离我远一点!  
TOP25  
你看得见我打在屏幕上的字,却看不到我掉在键盘上的泪  
TOP26  
大师兄,你知道吗?二师兄的肉现在比师傅的都贵了  
TOP27  
很久很久以前,谎言和真实在河边洗澡,谎言先洗好,穿了真实的衣服离开,   真实却不肯穿谎言的衣服。后来,在人们的眼里,只有穿着真实衣服的谎言,却很难接受赤裸裸的真实  
TOP28  
忙碌是一种幸福,让我们没时间体会痛苦,奔波是一种快乐,让我们真实的感受生活,疲惫是一种享受,让我们无暇空虚,愿你的生活多姿多彩,永远开心!  
TOP29  
在非洲,瞪羚每天早上醒来时,他知道自己必须跑的比最快的狮子还快,否则就会被吃掉.狮子每天早上醒来时,他知道自己必须追上跑得最慢的瞪羚,否则就会被饿死.不管你是狮子还是瞪羚,当太阳升起时,你最好开始奔跑  
TOP30  
任盈盈教令狐冲弹琴,后来她爱上了令狐冲;岳灵珊教林平之武功,后来她爱上了林平之;小龙女教杨过武功,后来她爱上了杨过;老顽童教瑛姑武功,后来他爱上了瑛姑;但是,怎么没有一个教我课的女老师或是女助教爱上我呢?  
TOP31  
听说女人如衣服,兄弟如手足,回想起来,我竟然七手八脚地裸奔了19年!  
TOP32  
骑白马的不一定是王子,他可能是唐僧;带翅膀的也不一定是天使——妈妈说,那是鸟人  
TOP33  
爱一个人就是在拔通电话时,忽然不知道说什么好,原来只是想听听那熟悉的声音,原来真正想拔动的只是自已心底深处的一根弦  
TOP34  
老虎不发威,你当我是hello kitty啊!小驴不发威,你以为我是史努比啊!  
TOP35  
怀才就像怀孕,时间长了才能看出来  
TOP36  
来瓶82年的矿泉水  
TOP37  
过错是暂时的遗憾,而错过则是永远的遗憾!  
TOP38  
小时候我以为自己长大后可以拯救整个世界,等长大后才发现整个世界都拯救不了我.......  
TOP39  
跌倒了,爬起来再哭~~~  
TOP40  
上联:忆往昔,红米饭,南瓜汤,老婆一个,小孩一帮.下联:看今朝,白米饭,王八汤,小孩一个,老婆 一帮  
TOP41  
这世上最累的事情,莫过于眼睁睁看着自己的心碎了,还得自己动手把它粘起来  
TOP42  
事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的  
TOP43  
学士上面是硕士,硕士之后是博士,博士后面还有博士后,那博士后后面呢?如果你够勇敢再读两年那就是勇士,再读5年是壮士,再读7年是烈士,烈士以后呢?教育部会推出圣斗士,读满2年是青铜的 5年是白银的 7年是黄金的。毕业后愿意再读上去的女孩,有机会考出雅典娜!!!  
TOP44  
好的爱情是你透过一个男人看到世界,坏的爱情是你为了一个人舍弃世界  
TOP45  
今天你醒来,枕边躺着一只蚊子,旁边有一封遗嘱:我奋斗了一晚,你的脸皮厚的让我无颜活在这个世上。主啊!宽恕他吧,我是自杀的!  
TOP46  
上班无聊吗?抛硬币玩吧,正面就上网,反面就睡觉,竖起就工作,倾斜就努力工作,摔粉碎了就申请加班,如果摔出两枚,那就天天摔!  
TOP47  
同志们:别炒股,风险太大了,还是做豆腐最安全!做硬了是豆腐干,做稀了是豆腐脑,做薄了是豆腐皮,做没了是豆浆,放臭了是臭豆腐!稳赚不亏呀  
TOP48  
我终究没能飙得过那辆宝马,只能眼看着它在夕阳中绝尘而去,不是我的引擎不好,而是我的车链子掉了  
TOP49  
通知:近来秋寒已至,请同志们做好防御工作,有老公的抱老公 ,有老婆的抱老婆,暂时没有的请抱暖水瓶,实在没有暖水瓶的,请抱煤气罐(注意要点燃)。请勿乱抱鸡鸭等动物,以防禽流感。该南飞的南飞,该换毛的换毛,实在不行的就冬眠  
TOP50  
还能冲动,表示你还对生活有激情,总是冲动,表示你还不懂生活
posted @ 2008-04-24 11:46 张秀兰 阅读(230) | 评论 (0)编辑 收藏
 
安装配置指南
------------
一、下载SourceOffsite V3.53
官方下载地址,可以试用30天,试用期间无任何功能限制。
http://www.sourcegear.com/sos/downloads/SOS_Classic_3_5_3.zip
现在国内也有相关的中文版下载,本人使用没有什么区别,可能就是多一个VSS6.0。如果大家连VSS6.0都没有,就建议下载中文版。

二、安装SourceOffsite 服务器端
程序安装路径:
"下载保存路径\\SOS_Classic_3_5_3.zip\\vss6\\sos_server_winnt_professional_vss6.exe"。
安装过程结束后要提示重新启动系统,选择取消,不用重新启动也行,因为有的文章介绍说可以不重新启动。如果大家慎重一点,可以选择重新启动,本人就选择了重新启动。

三、配置SourceOffsite 服务器端
启动SourceOffsite 服务器端程序,程序路径为:"C:\\Program Files\\SourceOffSite\\ServerMgr.exe",也可以在Windows开始程序菜单中启动。其实 SourceOffsite 的用户指南里面有详细的软件使用及配置说明,在这里只能介绍几个重要的配置信息,其他设置使用默认值就可以。
1、网络端口设置(port)
打开程序的"General Settings"页面即可看到。
这里的端口只要不和其他网络端口冲突就行,一般默认值就不要修改了。
本人测试的端口号为:
unsecure port :8888,不用加密访问的端口。
secure port :8890,加密时访问的端口。

2、VSS数据库的设置(databases )
打开程序的"databases"页面,选择"Add...",出现添加数据库的对话框,选择已经存在的数据库srcsafe.ini,在DataBase 框中就会有数据库的完整路径,在DataBase Alias(数据库别名)中输入数据库名称也可以,为了测试方便本人输入了"net_vss"。
这里只要把要共享的数据库都选择出来就行,真正的配置管理员可能会有很多VSS数据库。

3、用户访问规则设置(users)
下面的规则设置方法,是网上搜索得到的很有效,在自带的用户指南中没有介绍。
举例的缺省规则:
0000 admin 192.168.3.0/24 1 来自 192.168.3.* 的 admin 必须加密访问
0001 admin 0.0.0.0/0 0 其它网段的 admin 用户拒绝访问
0002 * 192.168.3.0/24 2 其它来自 192.168.3.* 的用户可以访问
0003 * 0.0.0.0/0 1 其它网段的其它用户必须加密访问
每条规则有 4 个字段,第一个字段为规则优先级,按照 0000 0001 0002 ... 9999 排列
第二个字段为 用户名 匹配,如果为 * 表示全匹配。
第三个字段为 IP/子网 匹配。
192.168.3.1 表示匹配单机 192.168.3.1。
192.168.3.0/24 表示匹配 192.168.3.*
166.111.0.0/16 表示匹配清华校园网。
0.0.0.0/0 表示匹配所有的IP。
第四个字段为 控制项,可选为
0 表示拒绝访问
1 表示要求加密访问
2 表示可以访问
打开程序的"Users"页面,本人的测试规则为"0000 * 0.0.0.0/0 2"允许所有的用户不加密访问,把测试规则输入到"SourceSafe user name"框中即可。
大家设置时请按需要修改规则。

四、启动SourceOffsite 服务
打开Windows的系统服务找到SourceOffsite 启动服务即可。大家要注意以后修改任何的服务器端配置后都要重新启动SourceOffsite 服务才能生效。

五、安装SourceOffsite 客户端
为了后面好配置,测试功能,本人就在服务器端机器上安装客户端了,大家也可以这样先测试一下。
程序安装路径:
"下载保存路径\\SOS_Classic_3_5_3.zip\\Windows\\sos_client_professional.exe"。
安装过程中没的任何困难的地方,这里就不做过多介绍了。

六、使用SourceOffsite 客户端
使用步骤以本人的测试步骤为例:
1、连接服务器对话框,输入服务器地址"Server":127.0.0.1,端口号"Prot":8888,选择连接"Connect"。
2、VSS数据库登录对话框,输入VSS用户名"Username":t1,用户密码"Password":t1,VSS数据库别名"Database":net_vss。
3、验证正确后,就可以看到VSS数据库的内容了,关于VSS的操作就不做介绍了。
到此就成功地实现了VSS(Visual SourceSafe)的Internet访问。
posted @ 2008-04-24 10:40 张秀兰 阅读(1853) | 评论 (0)编辑 收藏
 
Java视图上,左边“包资源管理器”,在要恢复的项目上点右键,会有一个菜单项,“从本地历史纪录复原(X)...”,英文是”Restore from Local History...”,点这个,就会弹出一个对话框,原来他们藏在这里了!对应于每一个删除的文件右边有相应的保存的日期,有更改就有保存,点对应的时间可以在下方看到代码,选中想要回复的文件,点恢复,就可以看到它乖乖的回到了原来的地方!

值得说明的是,Eclipse保存这些删掉的文件是有时间期限的,应该也有空间的限制。有些文件虽然可以看到文件名和更改时间,但是内容已经不存在了!这时会提示你状态无效或已经过期

posted @ 2008-04-23 15:22 张秀兰 阅读(5349) | 评论 (5)编辑 收藏
 
正则表达式用来指定字符串模式。当你需要定位匹配某种模式的字符串时就可以使用正则表达式。例如,我们下面的一个例程就是在一个HTML文件中通过查找字符串模式<a href="...">来定位所有的超链接。

    当然,为了指定一种模式,使用...这种记号是不够精确的。你需要精确地指定什么样的字符排列是一个合法的匹配。当描述某种模式时,你需要使用一种特殊的语法。

    这里有一个简单例子。正则表达式
[Jj]ava.+
匹配下列形式的任何字符串:
  • 首字母是J或j
  • 后续的三个字母是ava
  • 字符串的剩余部分由一个或多个任意字符组成

    例如,字符串“javaness”匹配这个特殊的正则表达式,但是字符串“Core Java”却不匹配。

    如你所见,你需要了解一点语法来理解正则表达式的含意。幸运的是对于大多数的用途,使用少量的简单构造(straightforward constructs)就已足够。
  • 字符类是可选自符的集合,用‘[’封装,比如[Jj],[0-9],[A-Za-z]或[^0-9]。这里的-表示范围(Unicode落在两个边界之间的所有字符),^表示求补(指定字符外的所有字符)。
  • 有许多预定以的字符类,像\d(数字)或\p{Sc}(Unicode货币符号),见表12-8和12-9。
  • 大多数字符与它们自身匹配,像上例中的ava字符。
  • 符号.匹配任何字符(可能行终止符(line terminators)除外,这依赖于标识设置(flag settings))
  • \用作转义符,比如\.匹配一个句点,\\匹配一个反斜杠。
  •  ^和$分别匹配行头和行尾
  • 如果X和Y都是正则表达式,则XY表示“X的匹配后面跟着Y的匹配”。X|Y表示“任何X或Y的匹配”
  • 可以将量词(quantifier)用到表达式中,X+ 表示X重复1次或多次,X* 表示X重复0次或多次,X? 表示X重复0次或1次
  •  默认地,一个量词总是与使总体成功匹配的最长的可能重复匹配。可以加上后缀?(称为reluctant或stingy 匹配,用以匹配最小的重复数),和+(称为possessive或贪婪匹配,用以即使在总体匹配失败的情况下也匹配最大的重复数)来更改这种属性。

例如,字符串cab匹配[a-z]*ab,但不匹配[a-z]*+ab。第一种情况下,[a-z]*只匹配字符c,因此字符ab正好与模式的剩余部分匹配。但是贪婪版本[a-z]*+就与字符cab匹配,模式的剩余部分ab就匹配失败(,这样总体也就匹配失败)。
  • 可以使用分组来定义子表达式。将分组封装在()中,如([+-]?)([0-9]+)。然后你可以让模式匹配符(the pattern matcher)返回每个分组的匹配,或者使用\n来回引分组(refer back to a group with \n),其中n是组号(以\1起始)

    这里有一个稍微有点复杂却又很有用的正则表达式--它用来描述十进制和十六进制的整数。
[+-]?[0-9]+|0[Xx][0-9A-Fa-f]+

    不幸的是,在使用正则表达式的各种程序和库之间,它的语法还没有完全标准化。对基本的构造上已达成了共识,但在细节方面有许多令人“抓狂”的区别(many maddening differences)。Java的正则表达式类使用了与Perl语言类似的语法,但也不尽相同。表12-8显示了Java语法的所有正则表达式构造。要了解更多关于正则表达式的信息,请参考Pattern类的API文档,或者Jeffrey E. F. Friedl的著作《Mastering Regular Expressions》(O'Reilly and Associates, 1997)(刚去第二书店查了一下,东南大学出版社已经引入了其第二版,影印)

表12-8 正则表达式语法

语法                                                          解释

字符
c                                                            字符c
\unnnn, \xnn, \0n, \0nn, \0nnn          带有十六或八进制值的代码单元
\0n                                           八进制0n代表的字符(0<=n<=7)
\0nn                                         八进制0nn代表的字符(0<=n<=7)
\0mnn                                     八进制0mnn代表的字符(0<=m<=3,0<=n<=7)
\xnn                                         十六进制 0xnn所代表的字符
\uhhhh                                    十六进制 0xhhhh所代表的字符
\t, \n, \r, \f, \a, \e                                    控制字符,依次是制表符,换行符,回车符,换页符,报警符和转义符
\cc                                                         控制字符中出现的相应字符c

字符类
[C1C2. . .]                       C1、C2……中的任何字符。Ci可以是字符,字符范围(C1-C2)或者字符类。
[^. . .]                                字符类的补集
[ . . . && . . .]                    两个字符类的交集

预定义字符类
.                                        除行终止符外的任何字符(如果DOTALL标志置位,则表示任何字符)
\d                                      数字[0-9]
\D                                    非数字[^0-9]
\s                                     空白字符[\t\n\r\f\x0B]
\S                                     非空白字符
\w                                    单词字符[a-zA-Z0-9_]
\W                                   非单词字符
\p{name}                        一个指定的字符类,见表12-9
\P{name}                       指定字符类的补集

边界匹配符
^ $                                   输入的开头和结尾(在多行模式(multiline mode)下是行的开头和结尾)
\b                                    单词边界
\B                                    非单词边界
\A                                     输入的开头
\z                                     输入的结尾
\Z                                    除最后行终止符之外的输入结尾
\G                                   上个匹配的结尾

量词
X?                                    可选的X(即X可能出现,也可能不出现)
X*                                    X,可以重复0次或多次
X+                                    X,可以重复1次或多次
X{n} X{n,} X{n,m}          X重复n次,至少重复n次,重复n到m次

量词后缀
?                                   设默认(贪婪)匹配为reluctant匹配
+                                   设默认(贪婪)匹配为possessive匹配

集合操作
XY                                  X的匹配后面跟着Y的匹配
X|Y                                 X或Y的匹配

分组
(X)                                匹配X并且在一个自动计数的分组中捕获它
\n                                  与第n个分组的匹配

转义
\c                                   字符c(必须不是字母)
\Q...\E                            逐字地引用...
(?...)                       特殊构造,看Pattern类的API


    正则表达式的最简单使用是测试一个特殊的字符串是否与之匹配。这里有一个Java写的测试程序。首先从表示正则表达式的字符串构造一个Pattern对象。然后从该模式获得一个Matcher对象,并且调用它的matches()方法:
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) . . .

    表12.9 预定义的字符类名(Predefined Character Class Names)

Lower                         小写的ASII字符[a-z]
Upper                         大写的ASCII字符[A-Z]
Alpha                          ASCII字母[A-Za-z]
Digit                            ASCII 数字 [0-9]
Alnum                         ASCII 字母或数字[A-Za-z0-9]
Xdigit                         十六进制数字[0-9A-Fa-f]
Print or Graph          可打印的ASCII字符[\x21-\x7E]
Punct                         非字母或数字ASCII [\p{Print}&&\P{Alnum}]
ASCII                         所有ASCII字符 [\x00-\x7F]
Cntrl                          ASCII控制字符[\x00-\x1F]
Blank                         空格符或制表符[ \t]
Space                        空白符 [ \t\n\r\f\0x0B]
javaLowerCase       取决于Character.isLowerCase()的小写字符
javaUpperCase      取决于Character.isUpperCase()的大写字符
javaWhitespace     取决于Character.isWhitespace()的空白符
javaMirrored            取决于Character.isMirrored()的Mirrored(?)
InBlock                      这里的Block是unicode字符的块名,用空格隔开,比如BasicLatin 或 Mongolian。块名列表                                  参考http://www.unicode.org
Category 或InCategory     这里的Category是Unicode字符的种类名,比如L(字母)或者Sc(货币符号)。种类                                        名列表参考http://www.unicode.org 


    matcher的输入可以是实现CharSequence接口的任何类对象,像String,StringBuilder或CharBuffer。

    当编译模式时,可以设置一个或多个标志,例如
Pattern pattern = Pattern.compile(patternString,
Pattern.CASE_INSENSITIVE + Pattern.UNICODE_CASE);

下面六个标志都是支持的:
CASE_INSENSITIVE:匹配字符时与大小写无关,该标志默认只考虑US ASCII字符。
UNICODE_CASE:当与CASE_INSENSITIVE结合时,使用Unicode字母匹配
MULTILINE:^和$匹配一行的开始和结尾,而不是整个输入
UNIX_LINES: 当在多行模式下匹配^和$时,只将'\n'看作行终止符
DOTALL: 当使用此标志时,.符号匹配包括行终止符在内的所有字符
CANON_EQ: 考虑Unicode字符的规范等价

     如果正则表达式包含分组,Matcher对象能够揭示分组边界。方法
int start(int groupIndex)
int end(int groupIndex)
返回某个特殊分组的起始索引和结尾后索引(past-the-end index )。
通过调用String group(int groupIndex),你可以简单地得到匹配的字符串。
第0个分组代表所有的分组,第一个实际分组的索引是1。调用groupCount来获得总的分组数。

     使用开放圆括号来安排嵌套分组。例如,给定模式((1?[0-9]):([0-5][0-9]))[ap]m,并且输入11:59am,Matcher对象报告下列分组
((1?[0-9]):([0-5][0-9]))[ap]m
并输入
11:59am
matcher报告下列分组


分组索引  起始  结束  字符串

0              0          7      11;59am
1              0          5      11:59
2              0          2      11
3              3          5      59

 
例12-9提示输入一个模式和一个欲匹配的字符串。它将输出输入的字符串是否匹配模式。如果输入匹配包含分组的模式,程序将会使用圆括号来打印分组边界,如((11):(59))am

Example 12-9. RegexTest.java
import java.util.*;
import java.util.regex.*;
 /**
  This program tests regular expression matching.
   Enter a pattern and strings to match, or hit Cancel
    to exit. If the pattern contains groups, the group
    boundaries are displayed in the match.
 */
public class RegExTest
{
  public static void main(String[] args)
  {
     Scanner in = new Scanner(System.in);
     System.out.println("Enter pattern: ");
     String patternString = in.nextLine();

    Pattern pattern = null;
     try
    {
       pattern = Pattern.compile(patternString);
    }
     catch (PatternSyntaxException e)
     {
        System.out.println("Pattern syntax error");
        System.exit(1);
    }

     while (true)
     {
       System.out.println("Enter string to match: ");
       String input = in.nextLine();
        if (input == null || input.equals("")) return;
        Matcher matcher = pattern.matcher(input);
       if (matcher.matches())
       {
          System.out.println("Match");
          int g = matcher.groupCount();
          if (g > 0)
          {
             for (int i = 0; i < input.length(); i++)
              {
                  for (int j = 1; j <= g; j++)
                     if (i == matcher.start(j))
                     System.out.print('(');
                System.out.print(input.charAt(i));
               for (int j = 1; j <= g; j++)
                   if (i + 1 == matcher.end(j))
                     System.out.print(')');
             }
              System.out.println();
         }
        }
       else
          System.out.println("No match");
    }
  }
}

     通常地,你不希望匹配整个输入到某个正则表达式,而是希望在输入中找出一个或多个匹配的子字符串。使用Matcher类的find方法来寻找下一个匹配。如果它返回True,再使用start和end方法找出匹配的范围。

while (matcher.find())
{
   int start = matcher.start();
   int end = matcher.end();
   String match = input.substring(start, end);
   . . .
}

例12-10用到了这种机制。它在一个网页中定位所有的超文本引用并打印它们。为运行程序,在命令行提供一个URL,比如
java HrefMatch http://www.horstmann.com

Example 12-10. HrefMatch.java
 1. import java.io.*;
 2. import java.net.*;
 3. import java.util.regex.*;
 4.
 5. /**
 6.    This program displays all URLs in a web page by
 7.    matching a regular expression that describes the
 8.    <a href=...> HTML tag. Start the program as
 9.    java HrefMatch URL
10. */
11. public class HrefMatch
12. {
13.    public static void main(String[] args)
14.    {
15.       try
16.       {
17.          // get URL string from command line or use default
18.          String urlString;
19.          if (args.length > 0) urlString = args[0];
20.          else urlString = "http://java.sun.com";
21.
22.          // open reader for URL
23.          InputStreamReader in = new InputStreamReader(new URL(urlString).openStream());
24.
25.          // read contents into string buffer
26.          StringBuilder input = new StringBuilder();
27.          int ch;
28.          while ((ch = in.read()) != -1) input.append((char) ch);
29.
30.          // search for all occurrences of pattern
31.          String patternString = "<a\\s+href\\s*=\\s*(\"[^\"]*\"|[^\\s>])\\s*>";
32.          Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);
33.          Matcher matcher = pattern.matcher(input);
34.
35.          while (matcher.find())
36.          {
37.             int start = matcher.start();
38.             int end = matcher.end();
39.             String match = input.substring(start, end);
40.             System.out.println(match);
41.          }
42.       }
43.       catch (IOException e)
44.       {
45.          e.printStackTrace();
46.       }
47.       catch (PatternSyntaxException e)
48.       {
49.          e.printStackTrace();
50.       }
51.    }
52. }

    Matcher类的replaceAll方法用一个替换字符串代替出现的所有正则表达式的匹配。比如,下列指令用#替换所有数字序列

Pattern pattern = Pattern.compile("[0-9]+");
Matcher matcher = pattern.matcher(input);
String output = matcher.replaceAll("#");
    替换字符串可以包含模式中的分组引用:$n被第n个分组替换。替换文本中出现$时,使用\$来包含它。
replaceFirst方法只替换模式的第一次出现。

    最后讲一点,Pattern类有一个split方法,它类似于字符串tokenizer。它使用正则表达式匹配作边界,将输入分离成字符串数组。比如,下面的指令将输入分离成记号(token),

Pattern pattern = Pattern.compile("\\s*\\p{Punct}\\s*");
String[] tokens = pattern.split(input);



java.util.regex.Pattern 1.4

方法
static Pattern compile(String expression)
static Pattern compile(String expression, int flags)
编译正则表达式字符串到pattern对象用以匹配的快速处理
参数:
 expression 正则表达式
 flags            下列标志中的一个或多个 CASE_INSENSITIVE, UNICODE_CASE, MULTILINE, UNIX_LINES, DOTALL, and CANON_EQ
 
Matcher matcher(CharSequence input)
返回一个matcher对象,它可以用来在一个输入中定位模式匹配

String[] split(CharSequence input)
String[] split(CharSequence input, int limit)
将输入字符串分离成记号,并由pattern来指定分隔符的形式。返回记号数组。分隔符并不是记号的一部分。
参数:
input 分离成记号的字符串
limit 生成的最大字符串数。

 类

java.util.regex.Matcher 1.4

方法

boolean matches()
返回输入是否与模式匹配

boolean lookingAt()
如果输入的起始匹配模式则返回True

boolean find()
boolean find(int start)
尝试查找下一个匹配,并在找到匹配时返回True
参数:
 start  开始搜索的索引
 
int start()
int end()
返回当前匹配的起始位置和结尾后位置

String group()
返回当前匹配

int groupCount()
返回输入模式中的分组数

int start(int groupIndex)
int end(int groupIndex)
返回一个给定分组当前匹配中的起始位置和结尾后位置
参数:
 groupIndex分组索引(从1开始),0表示整个匹配

String group(int groupIndex)
返回匹配一个给定分组的字符串
参数:
 groupIndex
 分组索引(从1开始),0表示整个匹配

String replaceAll(String replacement)
String replaceFirst(String replacement)
返回从matcher输入得到的字符串,但已经用替换表达式替换所有或第一个匹配
参数:
 replacement 替换字符串

Matcher reset()
Matcher reset(CharSequence input)
复位mather状态。
posted @ 2008-04-16 15:13 张秀兰 阅读(712) | 评论 (0)编辑 收藏
 
有太多的话要说。。。。。。。。。
。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。
好好想想吧!
posted @ 2008-04-16 09:13 张秀兰 阅读(161) | 评论 (0)编辑 收藏
 
光阴似箭,07年扫墓情景还晰晰在目,今年清明有放假,又过完了一个清明节
4.4坐了最早一班车7:50分那班,(建都也刚好要回家,一起回去的)
三哥他们比我早到了10多分钟,在殡仪馆路口那等我了
一切好像都习惯了,没有那么悲伤,那么心痛。。。。。
只是头脑一片空白。。。。。
(这已经是第三次去老妈那扫墓了,但总觉得这不是事实!)
拜拜完后给炎煌挂了电话,(那会是从厦门来老家,所以没有给他带曾经答应他要带给他吃的,
下次我会特意给你带点哦,呵)聊了会有关墓地的事
下午三哥,萍,培,我四个人还去了奶奶那扫墓了,一开始我跟三哥两个相当用功的把墓地旁边的杂草锄了,
(因为太久没干活了,我的手皮一会就起泡了,没注意到,再过会,还没清除完,我手上的泡破了)
后部分那两个小家伙也帮了不少忙
等墓地看上去还不错,我们收工回家了
回家后去了叔叔那了,最近叔叔身体还不错,他说脚还是有点难受,可能是因为他不爱活动吧
经常在家坐着,叔叔比较不爱动
在叔叔家坐了20分钟左右,我回家了,回到家,赶紧打扫卫生
有点辛苦,但这一切我都习惯了
打扫完后准备晚餐了,在做饭时,银煜打电话说去他家吃饭,想想好像我都被去过他家呢,也就决定去他家
磳饭吃,呵呵
那晚他家里很多人,还见到清点他大哥,能辉他妈妈了,呵呵
第二天我们准备去爷爷那扫墓,爷爷的墓地相当远,不过,这次发现远倒是还可以,没之前想象的那么远,
就是有一段路相当的陡!还是老爸最厉害,他走在最前面,哈哈!
上坡容易下坡难,在回来时,走完那段高坡,我的脚在发软,发抖,呵呵
这次回家很多人都说我胖了,说最近吃得不错,连三哥都偷偷在问老爸,
那应该都是猪头的功劳,每次都让我多吃点,呵呵
昨天,跟萍搭12:30那班车回来厦门,居然全程走高速,3点就到车站了
猪头去车站接我们了,哈哈!
我们到上岛coffee休息了会,送萍到火车站去坐直达车回学校后,我跟猪头去他宿舍了
昨晚在猪头那吃完饭才回宿舍的
 

 
posted @ 2008-04-07 16:14 张秀兰 阅读(169) | 评论 (0)编辑 收藏
 

最近工作较忙,03.21第二次福州办身份证回来今天才在这发牢骚
这次是莲陪我一起去的,一路上,三个多小时,我们一直聊着,谈着最近所有开心和不开心的事;
我们还计划了暑期去九寨沟旅游呢
到了福州北站时还没11点,老天好像故意给我们安排了个特别的招待,下车时雨下得相当的大!
雨中的浪漫!更让我们回忆起以前在大学时,一起走过的日子!
下车打的,拿户口本,去派处所照相(别想歪了哦)
一切都很恰好,都很紧奏
办完了,终于全部都搞定了,松了口气了,深怕上次的恶作剧再次上演,呵呵

中午莲约了她的堂弟一起在学生街吃饭,
莲真是那个好呀,还给她堂弟买了鞋子,才30元,看起来挺不错的呀!
我当时叫着说我也要买一双回去,最后还真的买了双布鞋,28元,我一直在笑,莲被我的笑搞糊涂了
真的太便宜了!(今天第一次穿上它,脚感还不错,呵呵)
这天(周五)下午我们就在学生街逛了一下午,强呀!(现在想想,当时两个人太强了)

(在逛期间,我们给小蝌蚪发了信息,告之我们俩在学生街)
晚上我们还是去麻烦阿红,阿红还是亲自下橱,阿红的橱艺越来越好了,那晚吃了可多了,
吃饱一称,哇,96,天呀!不可思议!一会就超标啦!
那晚我们聊到挺晚的,虽然前晚跟莲俩个几乎没睡
第二天我们回母校了,我们散步在我们曾经一起走过的每个角落:小树林,含笑花,食堂,操场,天桥。。。
两个人坐在操场旁,小栖了会
很不巧的是,这次回去一个老师都没有见到面。。。。
中午吃完饭我们还去了福清中山路,以前周末经常去逛街的地方,呵呵
莲给她妈妈买了件衣服,当时看到一件很漂亮的中袖衣服,买了
赶紧回福州见小蝌蚪。。。。。
当时见面的场景(毕业后第一次见面哦)。。。。我们笑声不继。。。。抱在一起。。。。可见部分相片:)
那晚我们莲,小蝌蚪三个人一起睡。。。。。。。。。
莲急着要回厦门见她未来的姐夫,第二天闹钟调6点起床,呵呵
我们玩得很开心(回来得赶紧补充睡眠就是了 ,呵呵)
 


posted @ 2008-03-31 10:48 张秀兰 阅读(289) | 评论 (2)编辑 收藏
 

平平淡淡才是真,不知道用这句来总结这阶段是对还是错?

posted @ 2008-03-04 09:58 张秀兰 阅读(237) | 评论 (1)编辑 收藏
 
昨晚梦见老妈了,老妈还说我扎两个辫子好看
相信在老妈那个年代扎着两个辫子应该算很好看哦,呵呵!
老妈你在天堂一切都好吧!女儿好想你!
posted @ 2008-02-26 09:00 张秀兰 阅读(195) | 评论 (0)编辑 收藏
 

这周晚上开始上课了(周一晚上是班主任的课,班主任人挺逗的,上课没有让我想睡觉,呵呵),
为了晚上上完课,回宿舍比较方便,最近忙着在博物馆一带找房子
昨晚跟MM一起去看了一间中介,房子挺不错的,但挺里面就是,走到博物馆大概要6分钟,
1000元/月,后来跟中介说了我们的需求
中介给房东打电话,没接通。。。
我们先去了阿胖家吃沙锅,等我们点完,电话来了,告之,那间已有人交了压金,当时那个郁闷呀。。。
相当失望,在去吃饭的路上还想好周四或五请人打扫,周六搬进去,可一切落空了。。。。。

posted @ 2008-02-20 10:06 张秀兰 阅读(195) | 评论 (0)编辑 收藏
 

上周五去学校注册了,今晚要开始上课了,想着迷茫。。。。。
三年的时间真不知道要怎么熬过去;
真的是只为了那张毫无意义的文凭!
不过,从小是个好学生,不敲课,不逃课,按时做作业,
可现在觉得在教室听着老师讲课有点听不进去了,真不想去上课。。。
还没开始上课就想着不去上课了,相当糟糕!
当到学校注册完后,心想是不是什么时候会放弃不去读。。。
真的有点迷茫,不知道这样的选择是否会坚持到底

posted @ 2008-02-18 17:53 张秀兰 阅读(201) | 评论 (1)编辑 收藏
 
春节回来第一天上班,相当睏!
赶紧准备下班,晚上DD请吃饭
posted @ 2008-02-13 17:45 张秀兰 阅读(168) | 评论 (0)编辑 收藏
 
今天天气真好,太感谢太阳公公了,嘻嘻:)
我已经等你很久了,今天一来公司就把MSN签名更改成:终于看到你了
最近连着下雨,衣服都没干,到处湿湿的,特难受,这几天还特别地冷!
明天可以回家了,不过,今年没有买到汽车票,明天得在漳州转车了
现在想着回家就激动!
在此,先祝大家春节快乐,身体健康,万事如意!
posted @ 2008-02-03 15:03 张秀兰 阅读(199) | 评论 (0)编辑 收藏
 
感情的事不求速度,只求质量!
别把自己的感情投入得太积极!
多给彼此了解的时间和空间
posted @ 2008-01-30 08:47 张秀兰 阅读(160) | 评论 (0)编辑 收藏
 
posted @ 2008-01-25 11:43 张秀兰 阅读(442) | 评论 (0)编辑 收藏
 
好像很久很久没来这发牢骚了,忽然觉得有很多话要说。。。。
先说下07年年终总结:一无所获
第二:最近天天忙,天天加班,虽是辛苦,但很充实
第三:好像最近被人拖下手的感觉,有点迷茫
第四:07总结完了,08定了的目标好像没有任何把握
posted @ 2008-01-22 13:56 张秀兰 阅读(146) | 评论 (0)编辑 收藏
 
专职伴娘的职务已终身被撤!!!
posted @ 2008-01-14 12:47 张秀兰 阅读(197) | 评论 (0)编辑 收藏
 
08年1月1号是纯枝夫妻举行婚礼的日子,我很幸运被纯枝邀请作她的伴娘!
很不巧的事:那几天眼霜过敏,眼睛周围红红的(今天差不多好了),但最后我还是当了,这是第一次哦!
(希望也是最后一次,嘻嘻)
一切没有我想象的那么难,好像也没做什么事,就是一直跟在新娘旁边
伴郎是新郎的表弟,跟新郎长得相当像
他害羞的样子,想想就觉得可爱,嘻嘻:)
伴着结婚进行曲,新娘新郎走进了宴席,我跟在后面,当时有点紧张,心跳加快了不少
(应该是第一次走在那么庄严的红毯上的原故吧)
那个司仪的节目太过简单了,就只有喝个交杯酒,连拜堂都省了!
(说是新郎父母要求简单(这个就不大清楚了))
还好的是,我都不用喝酒,他们没有要求伴娘,伴郎喝酒,否则那天说不定我会喝醉哦
(因为我要喝就会喝得痛快,嘻嘻!)
差不多到9点就收工了,高中几个同学为了等我先找个地方K去了,后来几个同学K到了12点,
回到宿舍应该有1点多了(MM起来帮我开门,谢谢啦)
(昨天上班几乎是没神的,一下班赶紧溜)
总得大家玩得挺开心地!!!

在此,再次祝福纯枝夫妻幸福美满,早生贵子!!!

posted @ 2008-01-03 13:12 张秀兰 阅读(163) | 评论 (0)编辑 收藏
 
人的一生,到底在追求甚么?
  有一个美国商人坐在墨西哥海边一个小渔村的码头上, 看着一个墨西哥渔夫划着一艘小船靠岸。小船上有好几尾大黄鳍鲔鱼,这个美国商人对墨西哥渔夫能抓这么高档的鱼恭维了一番,还问要多少时间才能抓这么多?墨西哥渔夫说,才一会儿功夫就抓到了。美国人再问,你为甚么不待久一点,好多抓一些鱼?墨西哥渔夫觉得不以为然: 这些鱼已经足够我一家人生活所需啦!美国人又问:那么你一天剩下那么多时间都在干甚么?墨西哥渔夫解释:我呀?我每天睡到自然醒,出海抓几条鱼,回来后跟孩子们玩一玩,再跟老婆睡个午觉,黄昏时晃到村子里喝点小酒,跟哥儿们玩玩吉他,我的日子可过得充满又忙碌呢!美国人不以为然,帮他出主意,他说:我是美国哈佛大学企管硕士,我倒是可以帮你忙!你应该每天多花一些时间去抓鱼,到时候你就有钱去买条大一点的船。自然你就可以抓更多鱼,在买更多渔船。然后你就可以拥有一个渔船队。到时候你就不必把鱼卖给鱼贩子,而是直接卖给加工厂。然后你可以自己开一家罐头工厂。如此你就可以控制整个生产、加工处理和行销。然后你可以离开这个小渔村,搬到墨西哥城,再搬到洛杉矶,最后到纽约。在那经营你不断扩充的企业。墨西哥渔夫问:这又花多少时间呢?美国人回答:十五到二十年。墨西哥渔夫问:然后呢?美国人大笑着说:然后你就可以在家当皇帝啦!时机一到,你就可以宣布股票上市,把你的公司股份卖给投资大众。到时候你就发啦!你可以几亿几亿地赚!然后呢?美国人说:到那个时候你就可以退休啦!你可以搬到海边的小渔村去住。每天睡到自然醒,出海随便抓几条鱼,跟孩子们玩一玩,再跟老婆睡个午觉,黄昏时,晃到村子里喝点小酒,跟哥儿们玩玩吉他?!墨西哥渔夫疑惑的说:我现在不就是这样了吗?
人的一生,到底在追求甚么?

个人回答:简单生活,简单享受
知足者常乐
posted @ 2008-01-02 14:02 张秀兰 阅读(206) | 评论 (0)编辑 收藏
 
你发觉了吗?爱的感觉总是在一开始时甜蜜,总觉得多了一个人陪,多了一个人帮你分担,你终于不再孤单了,因为至少有一个人想着你、恋着你,只要能在一起就是好的。但是慢慢地,随着认识的加深,你开始发现了对方的缺点,于是问题一个接一个出现,你开始烦、累,甚至想要逃避,有人说爱情就像捡石,总想捡到一个适合自己的,但是你又如何知道什么时候能够捡到呢?她适合你,那你又适合她吗?
   
其实,爱情应该像磨石子儿,或许刚捡到的时候,你不是那么满意,但是请记住,人是有弹性的,很多事情是可以改变的,只要你有心,有勇气,与其到处去捡未知的石头,还不如将自己已经拥有的石头磨亮磨光,你开始磨了吗?很多人以为,是因为感情淡了,人才会变得懒惰,其实人是先被惰性征服,感情才慢慢变淡的。
   
在某个聚餐的场合,有人提议多吃点虾对身体好,这时候有个中年男人忽然说:“十年前,当我老婆还是我女朋友的时候,她说要吃十只虾,我就剥二十只给她。现在,如果她要我帮她剥虾壳,简直就是开玩笑,我连帮她夹菜都没兴趣了,还剥虾壳呢。”
   
难怪越来越多的人只想谈一辈子恋爱,却迟迟不肯走入婚姻。因为,婚姻容易让人变得懒惰。如果每个人都懒得讲话,懒得倾听,懒得制造惊喜,懒得温柔体贴,那么夫妻之间,又怎么会不渐行渐远渐无声呢?所以请记住,有活力的爱情是需要适度殷勤来灌溉的,谈恋爱,更是不可以偷懒的。
   
有一对情侣,相约下班后去用餐,逛街,可是女孩因为公司会议延误了,当她冒雨赶到时候已经迟到了30多分钟,她男朋友很不高兴地说:“你每次都这样,现在我什么心情也没了,我以后再也不会等你了!”刹那间,女孩的心决堤崩溃了,她在想:或许,他们再也没有未来了。同样,在同一个地点,另一对情侣也面临同样的处境,女孩赶到的时候也迟到了半个钟头,她的男朋友说:“我想你一定忙坏了吧?”接着他为女孩拭去脸上的雨水,并且脱去外套披在女孩身上,此刻,女孩流泪却是温馨幸福的。
    
你体会到了吗?其实爱恨往往只在我们的一念之间!爱不仅要懂得宽容更要及时,很多事可能只是在于你心境的转变罢了。如果有个人爱上你,而你也觉得他不错,那并不代表你会选择他。我们总说:“我要找一个很爱很爱的人,才会谈恋爱。”但是当对方问你,怎样才算是很爱很爱的时候,你却无法回答他,因为你自己也不知道。没错,我们总是以为,我们会找到一个自己很爱很爱的人。可是后来,当我们猛然回首,才发觉自己曾经多么天真。假如从来没有开始,你怎么知道自己会不会很爱很爱那个人呢?其实,很爱很爱的感觉,是要在一起经历了许多事情之后才会发现的。每个人都希望找到自己心目中百分之百的伴侣,但是你有没有想过,在你身边早有人对你默默付出很久了,只是你没有发觉而已。
    
所以,还是仔细看看身边的人吧,他或许已经等你很久了。当你爱一个人的时候,爱到八分绝对刚刚好。所有的期待和希望都只有七八分,剩下两三分用来爱自己。如果你还继续爱得更多,很可能给对方造成沉重的压力,让彼此喘不过气来,完全丧失了爱情的乐趣。
    
最后请记住,喝酒不要超过六分醉,吃饭不要超过七分饱,爱一个人不要超过八分。如果你正在为爱迷惘,下面这段话或许可以给你一些启示:爱一个人,要了解也要开解;要道歉也要道谢;要认错也要改错;要体贴也要体谅;是接受而不是忍受;是宽容而不是纵容;是支持而不是支配;是慰问而不是质问;是倾诉而不是控诉;是难忘而不是遗忘;是彼此交流而不是凡事交代;是为对方默默祈求而不向对方诸多要求......
posted @ 2007-12-28 15:53 张秀兰 阅读(334) | 评论 (2)编辑 收藏
 
老妈,你最近一切可好吗!
早上起来,整个脑子里都是你的身影!
老妈,女儿好想你!!!
posted @ 2007-12-26 09:30 张秀兰 阅读(229) | 评论 (1)编辑 收藏
 
圣诞提前快乐!!!
有礼物哦!
自己下载,嘻嘻:)

请你点点点下我吧 ^_^
posted @ 2007-12-21 10:33 张秀兰 阅读(261) | 评论 (2)编辑 收藏
 
早上在蹲点时,忽然听到隔壁的两个帅哥在一唱一合的唱着单身情歌,而且唱得相当豪放,
感觉真的好可怜,嘻嘻
若是其它首歌,或许我会说一大清早的,在哄什么哄。。。
而是跟着他们唱起来,当然没他们那么豪放

抓不住爱情的我
总是眼睁睁看它溜走
世界上幸福的人到处有
为何不能算我一个
为了爱孤军奋斗
早就吃够了爱情的苦
在爱中失落的人到处有
而我只是其中一个
爱要越错越勇
爱要肯定执着
每一个单身的人得看透
想爱就别怕伤痛
找一个最爱的深爱的想爱的亲爱的人
来告别单身
一个多情的痴情的绝情的无情的人
来给我伤痕
孤单的人那么多
快乐的没有几个
不要爱过了错过了留下了单身的我
独自唱情歌
为了爱孤军奋斗
早就吃够了爱情的苦
在爱中失落的人到处有
而我不是最后一个
爱要越错越勇
爱要肯定执着
每一个单身的人得看透
想爱就别怕伤痛
找一个最爱的深爱的想爱的亲爱的人
来告别单身
一个多情的痴情的绝情的无情的人
来给我伤痕
孤单的人那么多
快乐的没有几个
不要爱过了错过了留下了单身的我
独自唱情歌
找一个最爱的深爱的想爱的亲爱的人
来告别单身
一个多情的痴情的绝情的无情的人
来给我伤痕
伤心的人那么多
我应该勇敢的过
不要爱过了错过了留下了单身的我
独自唱情歌
这首真心的痴心的伤心的
单身情歌谁与我来合
posted @ 2007-12-18 10:34 张秀兰 阅读(338) | 评论 (3)编辑 收藏
 
这两天小弟提了个Bug,也是在网上找了些资料,才搞定了它,顺便在此作个笔记

重点作解析对象:
Sub SaveAdd()
cm.CommandText   =   "INSERT INTO [xm_news] (n_title,n_pic,n_Info,n_Atime) VALUES(?,?,?,?)"
cm.Prepared   =   True
cm.Parameters.Append   cm.CreateParameter("n_title",200, ,255)
cm.Parameters.Append   cm.CreateParameter("n_pic",200, ,255)
cm.Parameters.Append   cm.CreateParameter("n_Info",200,  ,-1)
cm.Parameters.Append   cm.CreateParameter("n_Atime",200, ,255)
cm("n_title")=Request.Form("title")
cm("n_pic")=Request.Form("defaultpic")
cm("n_Info")=Request.Form("info")
cm("n_Atime")=now
cm.Execute
 Response.Write ("<script>alert('添加成功!');location='?'</script>")
End Sub

cm.Parameters.Append   cm.CreateParameter("n_Info",200,  ,-1)
'得是-1

<!--#include file="inc.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>后台产品管理</title>
<STYLE type=text/css>BODY {
 BACKGROUND-COLOR: #ffffff
}
.toptable1 {
 COLOR: #000000; BACKGROUND-COLOR: #d2d6dc
}
.toptable2 {
 BACKGROUND-IMAGE: url(images/topdi.gif); COLOR: #000000
}
.banner {
 BACKGROUND-IMAGE: url(images/topdi.gif); COLOR: #7089a9; HEIGHT: 25px
}
.tablecolor {
 WIDTH: 98%; WORD-BREAK: break-all; BACKGROUND-COLOR: #888888
}
.tablebody {
 BACKGROUND-COLOR: #ffffff
}
TD {
 FONT-SIZE: 12px; COLOR: #000000
}
INPUT {
 BORDER-RIGHT: #333333 1px solid; BORDER-TOP: #333333 1px solid; FONT-SIZE: 9pt; BACKGROUND: url(images/input.gif) #ffffff; BORDER-LEFT: #333333 1px solid; COLOR: #000000; BORDER-BOTTOM: #333333 1px solid; FONT-FAMILY: verdana
}
A:link {
 COLOR: #666666; TEXT-DECORATION: none
}
A:active {
 COLOR: #666666; TEXT-DECORATION: none
}
A:visited {
 COLOR: #666666; TEXT-DECORATION: none
}
A:hover {
 COLOR: #339900; TEXT-DECORATION: underline
}
A.a:link {
 COLOR: #ea7500; TEXT-DECORATION: none
}
A.a:visited {
 COLOR: #ea7500; TEXT-DECORATION: none
}
A.a:active {
 COLOR: #ea7500; TEXT-DECORATION: none
}
A.a:hover {
 COLOR: #ea7500; TEXT-DECORATION: underline
}
</STYLE>
</head>
<body>
<%
Call Checkadmin()
ID=CheckNumeric(Request("ID"))
Action = Trim(Request.QueryString("Action"))

DatabasePath="../database/database.mdb"
Set Conn = Server.Createobject("Adodb.Connection")
Conn.Open "Provider=Microsoft.Jet.Oledb.4.0;Data Source="&Server.Mappath(DatabasePath)
'Call OpenDatabase()
Set   cm=   Server.CreateObject("ADODB.Command")
Set   cm.ActiveConnection   =   Conn
Select Case Action
 Case "Edit"
  Call Edit()
 Case "SaveAdd"
  Call SaveADD()
 Case "Add"
  Call Add()
 Case "SaveEdit"
  Call Saveedit()
 Case "Del"
  Call Del()
 Case Else
  call Normal()
End Select
call CloseDatabase()

Sub Edit()
Set Rs = Conn.Execute("SELECT * From xm_news Where n_Id ="&id&"")
%><form action="?Action=SaveEdit&ID=<%=RS("n_ID")%>" method="post"  name="form1" >

  <table width="100%"  border="0" cellpadding="0" cellspacing="1" bgcolor="#95DDFF">
    <tr bgcolor="#ECF4FB">
      <td width="14%" height="30">新闻标题:</td>
      <td>
        <input name="title" type="text" id="title" value="<%=RS("n_title")%>" size="50"></td>
  </tr>

    <tr bgcolor="#ECF4FB">
      <td height="30">新闻图片:</td>
      <td>
        <INPUT name="DefaultPic" type="text" id="DefaultPic" value="<%=rs("n_pic")%>">
      <br> <IFRAME ID="DefaultPic1" SRC="upload.asp?t=1" FRAMEBORDER="0" SCROLLING="no" WIDTH="500" HEIGHT="30"></IFRAME></td>
  </tr>
  <tr>

    <tr bgcolor="#ECF4FB">
      <td height="30">新闻描述:</td>
      <td>
        <textarea name="info" cols="50" id="textarea"><%=rs("n_info")%></textarea>
  </tr>
    <tr bgcolor="#ECF4FB">
      <td>&nbsp;</td>
      <td>
        <input type="submit" name="bottom2" value="提交" > <input type="reset" name="Submit2" value="重置"></td>
  </tr>
</table></form>
<%
End Sub

Sub SAVEEdit()
cm.CommandText   =   "Update xm_news Set n_title= ?,n_pic= ?, n_info=? Where n_Id="&id&""
cm.Prepared   =   True
cm.Parameters.Append   cm.CreateParameter("n_title",200, ,255)
cm.Parameters.Append   cm.CreateParameter("n_pic",200, ,255)
cm.Parameters.Append   cm.CreateParameter("n_Info",200,  ,-1)
cm("n_title")=Request.Form("title")
cm("n_pic")=Request.Form("Defaultpic")
cm("n_Info")=Request.Form("info")
cm.Execute

 'Conn.Execute("Update xm_news Set n_title='"&Request.Form("title")&"',n_pic='"&Request.Form("Defaultpic")&"',n_info='"&Request.Form("info")&"' Where n_Id="&id&"")
 Response.Write ("<script>alert('修改成功!');location='?'</script>")
End Sub

Sub SaveAdd()
cm.CommandText   =   "INSERT INTO [xm_news] (n_title,n_pic,n_Info,n_Atime) VALUES(?,?,?,?)"
cm.Prepared   =   True
cm.Parameters.Append   cm.CreateParameter("n_title",200, ,255)
cm.Parameters.Append   cm.CreateParameter("n_pic",200, ,255)
cm.Parameters.Append   cm.CreateParameter("n_Info",200,  ,-1)
cm.Parameters.Append   cm.CreateParameter("n_Atime",200, ,255)
cm("n_title")=Request.Form("title")
cm("n_pic")=Request.Form("defaultpic")
cm("n_Info")=Request.Form("info")
cm("n_Atime")=now
cm.Execute
 Response.Write ("<script>alert('添加成功!');location='?'</script>")
End Sub

Sub Del()
 Conn.Execute("Delete from xm_news where n_Id ="&ID&"")
 Response.Write ("<script>alert('删除成功!');location='?'</script>")
End Sub

 


Sub Add()
%>
<form action="?Action=SaveAdd" method="post"  name="form1" >
  <table width="100%"  border="0" cellpadding="0" cellspacing="1" bgcolor="#95DDFF">
    <tr bgcolor="#ECF4FB">
      <td width="14%" height="30">新闻标题:</td>
      <td>
        <input name="title" type="text" id="title" size="50" ></td>
    </tr>
    <tr bgcolor="#ECF4FB">
      <td height="30">新闻图片test:</td>
      <td>
        <INPUT name="DefaultPic" type="text" id="DefaultPic"> <br> <IFRAME ID="DefaultPic1" SRC="upload.asp?t=1" FRAMEBORDER="0" SCROLLING="no" WIDTH="500" HEIGHT="30"></IFRAME></td>
    </tr>
    <tr>
    <tr bgcolor="#ECF4FB">
      <td height="30">新闻描述:</td>
      <td>
        <textarea name="info" cols="50" id="info"></textarea>
    </tr>
    <tr bgcolor="#ECF4FB">
      <td>&nbsp;</td>
      <td>
        <input type="submit" name="bottom" value="提交" > <input type="reset" name="Submit" value="重置"></td>
    </tr>
  </table>
</form>
<%
End Sub

sub normal%>

<table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#95DDFF">
  <tr bgcolor="#ECF4FB">
    <td width="187" bgcolor="#ECF4FB"><strong>ID</strong></td>
    <td width="294" bgcolor="#ECF4FB"><strong>标题</strong></td>
    <td width="279" bgcolor="#ECF4FB"><strong>编辑</strong></td>
  </tr>
   <%
PageNo=CheckNumeric(Request("pageno"))
Sql="select n_id,n_title from xm_news order by n_id desc"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
Pasz=12

Total=INT(rs.RecordCount\Pasz+1)
rs.PageSize=Cint(Pasz)

if pageno<1 or PageNo=""  then
 pageno=1
end if

if pageno > Total then
 pageno=Total
end if

rs.AbsolutePage=pageno
position=rs.PageSize*pageno
pagebegin=position-rs.PageSize+1

if position<rs.RecordCount then
 pagend=position
else
 pagend=rs.RecordCount
end if

rs.AbsolutePosition=pagebegin
for i =pagebegin to pagend
%>
  <tr bgcolor="#ECF4FB">
    <td>&nbsp;<%=rs(0)%></td>
    <td>&nbsp;<%=rs(1)%></td>
    <td>&nbsp;<a href="?Action=Edit&ID=<%=RS(0)%>">编辑</a>|<a href="?Action=Del&ID=<%=RS(0)%>">删除</a></td>
  </tr>
  <%
rs.movenext
next
rs.close
set rs=nothing
%>
</table>
<table align=center>
<tr>
<td align=right style="border:0px"><a href="?pageno=<%=pageno-1%>"><br>[上一页]</a></td>
<td align=left style="border:0px"><a href="?pageno=<%=pageno+1%>"><br>[下一页]</a></td>
</tr>
</table>
<%end sub%>
</body>
</html>

posted @ 2007-12-13 14:24 张秀兰 阅读(515) | 评论 (1)编辑 收藏
 

多年以前见到一位姓“”的人士,我接过名片脱口而出念作“tan”某某,旁边一位朋友赶紧纠正说:“不对,这个字念qin。”我扎扎实实地记住了它的发音,心想以后再也不会犯此错误。

前不久又一次见到一位姓“”的人士,我接过名片一看,很得意于自己早就认死了这个字,脱口而出念作“qin”某某,这位女士马上给我纠正说:“不对不对,我姓tan,不姓qin。”我当时只感到有点恐惧,一时不敢开口。后来翻找工具书,还真的两种念法都有,吓出一身冷汗。

读书识字几十年,竟然无法念对朋友的姓氏,究竟是我太弱智,还是因为汉语太复杂?

愿意承认自己弱智的人毕竟很少,那就只好认定汉语太复杂了。当然,汉语中的姓氏尤其复杂。有些姓氏因为极为少见,大家固然不知道怎么读法。有些姓氏虽然很常见,读音却跟平时所念不一样,也很容易出差错。有的姓氏看起来是一个字,实际上是两个姓,更是让人莫衷一是,似乎有意给我们难堪。

这里列出八种最容易念错的姓氏,之所以最容易念错,是因为八个姓氏却共用四个汉字。名列第一的自然是刚刚提到的“”字。

qin二声,tan二声),这字难就难在是两个不同的姓氏,面对这个汉字时,我们如何判断他究竟是姓qin,还是姓tan,恐怕只好问问他本人。

huan二声,xun二声),这个字也是两个不同的姓氏,也得问过姓者本人才敢念出声来,否则可能张口就错。

ben一声,fei二声),汉字这么多,干吗两家不同的姓氏要挤死在一个字上?这不有意给咱们识字少的人难堪吗?下回遇到这些人士,我只好先念几声“ben乎?fei乎?”以便及时得到该人士的指点,唯有如此才可避免犯错误。

kui二声,wei三声),我想建议每个汉字只读一个音,这样就不会因为读错别人的姓氏而受责了。可是马上明白这姓氏的书写和发音关系到对人家氏族血缘的描述和确认,还关系到祭祀哪家祖先的问题。如果我们将kui姓改为wei姓,就等于逼着kui家人祭祀wei家人的祖先。所以,在祖先崇拜的社会,姓氏问题实际上是个宗教问题,万万不可马虎。我们既然生活在这个社会,就有责任尊重同胞们的宗教,从而有责任把同胞们的姓氏念对来。这就不得不为此下一番功夫了。

补充:
郗,有两个读音,xi和chi,均为阴平声
翟(zhai二声,di二声)
mou,二声,另一部分姓,mu,四声

posted @ 2007-12-13 10:04 张秀兰 阅读(273) | 评论 (0)编辑 收藏
 
最近发现自己越来越没有耐心了,客服MM提了问题,帮解决完后,
客户那个有完没完的提需要修改的地方。。。。。
我耐不住性子的在那边发脾气。。。。。
真的越来越没有耐心了。。。。。
加强耐心迫在眉睫
posted @ 2007-12-13 08:57 张秀兰 阅读(153) | 评论 (0)编辑 收藏
 

经过折腾了两周的时间,最后还是续签了一年
(昨天下午跟人事谈话过程,感觉自己长大了,呵呵)

(续签吧,以后上课会比较方便些)
(在续签表写上了提薪,最后被领导打了个8折,既然领导这么有意思,我就接受好了,嘻嘻)

 心态决定状态,安下心来好好工作

posted @ 2007-12-06 12:51 张秀兰 阅读(214) | 评论 (0)编辑 收藏
 
Now, it is the last month of 2007
how time flies!
How much aim can I realize which I plan on 2006 by the end of 2007?
posted @ 2007-12-03 11:06 张秀兰 阅读(152) | 评论 (0)编辑 收藏
 
过一次生日,就会长一岁了,呵呵
不过生日就不会让人想起又长大一岁了,嘻嘻
(至少可以多偷笑几天,哈哈!)
昨天是婷的生日,跟她聊了好一会
感觉她真的长大了,比以前在学校时懂事多了,不对,应该说更懂事,更适应了社会
(之前她就是个懂事乖巧的好孩子)
她说:
长大了,就要懂得让自己快乐
而不是等着别人给自己快乐

是呀,一点也没错,
长大了要懂得自己给自己快乐,
而不是等着别人给你快乐,
也不能因为环境而不快乐

岁月不饶人,时间总是无情地流动着,不是不过生日就不长一岁了
我们也不能让时间感动的停下来,等待我们
我们唯一能做的就是跟时间赛跑,让自己开心快乐!
posted @ 2007-11-28 15:39 张秀兰 阅读(497) | 评论 (5)编辑 收藏
 
刚刚在跟几个同事打球时,有个同事就凭运气把那球给打中了
我说那纯粹是运气
有个同事回答说:运气也是实力的一部分
忽然觉得他说的很有道理
运气也是实力的一部分
在你有实力的旁边也就有着你的好运气

相信运气的存在

posted @ 2007-11-27 19:06 张秀兰 阅读(348) | 评论 (1)编辑 收藏
 
相当迷茫了
真的不知道自己是在干什么
这两天情绪相当低落

菩提本无树 明镜亦非台 本来无一物 何处惹尘埃
posted @ 2007-11-23 12:42 张秀兰 阅读(144) | 评论 (0)编辑 收藏
 
很多时候
不懂
自己在做什么
自己在想什么
自己想要什么
就连自己是什么也不懂

人太复杂了

可我总觉得我已经把自己的事情想得挺简单的啦
特别是现在,真的不像以前那样了
什么事情都会把它复杂化了

可我还是不懂
不懂
不懂
真的不懂

你或许会说你也不懂:我想说什么
呵呵
posted @ 2007-11-22 10:31 张秀兰 阅读(261) | 评论 (2)编辑 收藏
 
昨晚跟同学去吃豆腐豆花,拿了发票,既然让我刮中了10元,第一次,这可是第一次哦!
当时很是激动,因为之前其他同学都有刮中过,就我昨晚那才是头一次
很是激动,在那边叫:我有了,我有了。。。。
同学说你怎么那么快就有了。。。。
我说我真的有了。。。。
同学接着说那老板真厉害。。。
我说是我厉害好不好。。。。
呵呵,别想歪了

两个走到招行的,赶紧冲了钱,准备明天买福利彩票,呵呵
买彩票也是第一次哦,在阿宝同学的帮助下,我买了一张2元
号码是01,02,07,11,19,20|09
呵呵,等晚上结果了
posted @ 2007-11-20 11:41 张秀兰 阅读(349) | 评论 (4)编辑 收藏
 
周末生活:睡了又睡,醒了又睡,正如路遥说的,早晨从中午开始
(不过,醒来时,发觉对你有点点牵挂)
posted @ 2007-11-19 08:56 张秀兰 阅读(294) | 评论 (2)编辑 收藏
 
行不更名,坐不改姓
posted @ 2007-11-13 09:44 张秀兰 阅读(158) | 评论 (1)编辑 收藏
 


致所有未婚的朋友:
光棍节将至,
我瑾代表群中央群务院
致所有未婚的群成员:
 首先,光棍节快乐!
我们正处于结婚时代的初级阶段
经过二十几年的努力
虽然取得了结识众多异性的巨大成就
但是人口众多
人均资源相对短缺
局部个人发展很不平衡

现阶段的主要矛盾
是日益增长的爱我的人我不爱
我爱的人不爱我之间的矛盾
情敌竞争已经不是初级阶段的主要矛盾
但是它在一定范围内还将长期存在
并且在一定条件下还可能激化

我们要允许一部分人先结婚
先婚带后婚
最终实现共同发昏

自由恋爱制度已经在中国大地上扎根
并初步显示它的优越性
但其不成熟
不完善的环节
还必须通过深化思想改革来逐步解决

恋爱是结婚的初级阶段
而我们又正处于恋爱的初级阶段
就是不发达阶段
也是不可逾越的历史阶段
只希望这个阶段不要同社会主义初级阶段一样
要一万年不变!
全群要统一思想
统一认识
把下一步的工作重心转移到家庭建设上
要把"快找,快结 ,快生"作为我们落实"三个代表"的指导方针

下一个四年对我们来说是关键的四年男女已越来越少
若我们不抓住年轻的尾巴,错过末班车
以后的美生活将无从谈起

当然
已经胜利的同志们是光辉的榜样
全群同志必须要认真学习


一定得跟着党走!!!
posted @ 2007-11-12 09:15 张秀兰 阅读(215) | 评论 (0)编辑 收藏
 
问题:
    如何查看对MYSQL操作的IP!

我的是mysql5.0的,一般操作都通过phpmyadmin,来完成操作,但是最近有人反映数据库被无故删除,虽然有备份,问题不大,但我我想查看操作数据库的IP地址,好确定是,哪里的在人员在进行操作!请大虾们,指点下,麻烦写的具体点哦,偶是低低手,需要你们指教!

回复1:两个方法,一个是修改phpmyadmin,自己增加对做删除数据库操作的IP的记录,这个需要你会写PHP。

另一个就是你可以对应用phpmyadmin的网站打开access_log,然后分析这个日志,查找DROP DATABASE相关的IP。

不过我觉得如果数据被无端删除,你应该着手检查以下事情:
1、确认主机是否安全
2、确认你所使用的phpmyadmin版本是否安全
3、确认你有没有对MySQL user赋予不当的权限
4、确认你MySQL的root账户是否安全

我觉得第三点的可能性大一点,比如你对MySQL user用户赋予了全局权限.

回复2:
赋予一个用户对他数据库的全部权限并不会发生问题,全局权限是说授权的部分或全部root才有的权限,你赋予了他对一个库的全部权限并不包括DROP。

如果你使用的Apache,并且使用了VirtualHost,那就在你http-vhost.conf中VirtualHost的CustomLog所制定的位置。
如果你在httpd.conf中打开了全局的CustomLog,那你就在httpd.conf中查找相关位置,默认是/var/log/httpd-error.log


总结:
一般在/var/log/httpd下可查看对其操作IP
如在0.140上,
cd /var/log/httpd
less access_log
posted @ 2007-11-08 10:18 张秀兰 阅读(2228) | 评论 (0)编辑 收藏
 
限制特定IP访问Oracle数据库
以前有文档说增加或修改protocol.ora文件,
在9i中真正起作用的是sqlnet.ora文件,我们修改sqlnet.ora其实是最好最快的方法。
  
在sqlnet.ora中增加如下部分
-----------------------------
#### 来自 protocol.ora 的属性 ####
  
tcp.validnode_checking=yes  
  
#允许访问的IP
tcp.invited_nodes=(ip1,ip2……)  
  
#禁止访问的IP
tcp.excluded_nodes=(ip1,ip2……)
  
之后重新启动监听器即可
  
需要注意的地方:
1、tcp.invited_nodes与tcp.excluded_nodes都存在,以tcp.invited_nodes为主
2、一定要许可或不要禁止服务器本机的IP地址,否则通过lsnrctl将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器,而该IP被禁止了,但是通过服务启动或关闭则不影响。
3、修改之后,一定要重起监听才能生效,而不需要重新启动数据库
4、任何平台都可以,但是只适用于TCP/IP协议
posted @ 2007-11-08 09:59 张秀兰 阅读(293) | 评论 (0)编辑 收藏
 
相信缘分,相信命运
或许真的是老天在考验我吧!!!
(不过,有时感觉老天过分了点呀,呵呵)
posted @ 2007-11-05 08:58 张秀兰 阅读(165) | 评论 (0)编辑 收藏
 

成绩已出来了,没有我想象的那么糟糕,总分:364,录取应该是没有问题的。
知道总分时,心情一点都不会激动,相反的是在考虑着要不要去读
(三年呀???)
 若真的选择了去读,那得再续签三年了,只得继续在这公司才比较方便混;
若不去读,那就选择换个环境工作吧

posted @ 2007-11-05 08:56 张秀兰 阅读(201) | 评论 (1)编辑 收藏
 
最近手头没什么任务,可以自己安排时间了。
赶紧给自己充电充电
posted @ 2007-10-30 14:36 张秀兰 阅读(184) | 评论 (0)编辑 收藏
 

很害怕听到哀奏
每次听到,犹如昨天发生的场景浮现在我的脑海中

posted @ 2007-10-30 08:41 张秀兰 阅读(161) | 评论 (0)编辑 收藏
 
【IT168 技术文档】Eclipse及其插件下载网址大全
1 Eclipse下载
EMF,GEF - Graphical Editor Framework,UML2,VE - Visual Editor都在这里下载
http://www.eclipse.org/downloads/index.php
2 lomboz J2EE插件,开发JSP,EJB
http://forge.objectweb.org/projects/lomboz
3 MyEclipse J2EE开发插件,支持SERVLET/JSP/EJB/数据库操纵等
http://www.myeclipseide.com
4 Properties Editor 编辑java的属性文件,并可以自动存盘为Unicode格式
http://propedit.sourceforge.jp/index_en.html
5 Colorer Take 为上百种类型的文件按语法着色
http://colorer.sourceforge.net/
6 XMLBuddy 编辑xml文件
http://www.xmlbuddy.com
7 Code Folding 加入多种代码折叠功能(比eclipse自带的更多)
http://www.coffee-bytes.com/servlet/PlatformSupport
8 Easy Explorer 从eclipse中访问选定文件、目录所在的文件夹
http://easystruts.sourceforge.net/
9 Fat Jar 打包插件,可以方便的完成各种打包任务,可以包含外部的包等
http://fjep.sourceforge.net/
10 RegEx Test 测试正则表达式
http://brosinski.com/stephan/archives/000028.php
11 JasperAssistant 报表插件(要钱的哦~)
http://www.jasperassistant.com/
12 Jigloo GUI Builder JAVA的GUI编辑插件
http://cloudgarden.com/jigloo/
13 Profiler 性能跟踪、测量工具,能跟踪、测量B/S程序
http://sourceforge.net/projects/eclipsecolorer/
14 AdvanQas 提供对if/else等条件语句的提示和快捷帮助(自动更改结构等)
http://eclipsecolorer.sourceforge.net/advanqas/index.html
15 Log4E Log4j插件,提供各种和Log4j相关的任务,如为方法、类添加一个logger等
http://log4e.jayefem.de/index.php/Main_Page
16 VSSPlugin VSS插件
http://sourceforge.net/projects/vssplugin
17 Implementors 提供跳转到一个方法的实现类,而不是接口的功能(实用!)
http://eclipse-tools.sourceforge.net/implementors/
18 Call Hierarchy 显示一个方法的调用层次(被哪些方法调,调了哪些方法)
http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
19 EclipseTidy 检查和格式化HTML/XML文件
http://eclipsetidy.sourceforge.net/
20 Checkclipse 检查代码的风格、写法是否符合规范
http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
21 Hibernate Synchronizer Hibernate插件,自动映射等
http://www.binamics.com/hibernatesync/
22 VeloEclipse Velocity插件
http://propsorter.sourceforge.net/

23 EditorList 方便的列出所有打开的Editor
http://editorlist.sourceforge.net/

24 MemoryManager 内存占用率的监视
http://cloudgarden.com/memorymanager/

25 swt-designer java的GUI插件
http://www.swt-designer.com/

26 TomcatPlugin 支持Tomcat插件
http://www.sysdeo.com/eclipse/tomcatPlugin.html

27 XML Viewer
http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html

28 quantum 数据库插件
http://quantum.sourceforge.net/

29 Dbedit 数据库插件
http://sourceforge.net/projects/dbedit

30 clay.core 可视化的数据库插件
http://www.azzurri.jp/en/software/index.jsp
http://www.azzurri.jp/eclipse/plugins

31 hiberclipse hibernate插件
http://hiberclipse.sourceforge.net
http://www.binamics.com/hibernatesync

32 struts-console Struts插件
http://www.jamesholmes.com/struts/console/

33 easystruts Struts插件
http://easystruts.sourceforge.net

34 veloedit Velocity插件
http://veloedit.sourceforge.net/

35 jalopy 代码整理插件
http://jalopy.sourceforge.net/

36 JDepend 包关系分析
http://andrei.gmxhome.de/jdepend4eclipse/links.html

37 Spring IDE Spring插件
http://springide-eclip.sourceforge.net/updatesite/

38 doclipse 可以产生xdoclet 的代码提示
http://beust.com/doclipse/
39 SQLExplorer,在Eclipse 中连接各种数据库进行操作使用
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=31124
posted @ 2007-10-29 16:18 张秀兰 阅读(387) | 评论 (0)编辑 收藏
 
上周接到人才的通知说要办第二代身份证,末也就很是积极地去了福州。
刚开始想着要去办这些让人很是厌烦的事就很不爽,建都说要把它当作是去福州找同学玩
呵呵,这方法还真行!
周六早上也就很是积极地去了福州,感觉还挺快就到了(在车上睡了一觉,看会片也就到了)。
在南站下了车,打得到省立医院(说到青年人才,没个司机晓得在哪)
(那司机也太狠了,给我瞎指方向。。。)
真够巧的,有个师大的同学(应该不是我学校的)在创新大厦上班的也去办,大伙一起去了派出所
照相,到了派出所刚好11:30,门关着,连个人影都没见着(写着是11:30下班(应该还没到11:30就关门了)。
只好下午再去照了。
接下去就去了阿红那了,中午在她家吃了饭(这次可以说纯粹是上去福州撑饭吃:) )

下午2点时就坐公交车去了,可能是上天故意捉弄我吧:值班人员说设备坏了。。。
我我我。。。
无语了。。。。
给林枫(通知我上去办)打电话,纠缠了一会,最后跟我说可以推迟到08年办,看我什么时候想去福州玩了再去办
(这事她说能信多少?)
(呵呵,我还能说什么呢。。。)
从华大派出所走到公交车站只有100米左右,而我却走了10多分钟,因为我真的傻了,愣了
(时不时地还想着那人是否会跑出来叫我,说设备好了,可以照相了。可这是不可能的!)
(我想那些值班人员连跟维修人员联系都没有)
没办法了,只好找同学玩了,呵呵
(在东街口那带逛,第二天还去了亲戚那)
(传眺去福清找同学玩了)
哇!脚那是相当的酸,今天起床时感觉全身酸!!!
相当大的运动量,呵呵:)

这次去福州呢,事情没办,不过,几个同学玩得还挺开心的(也挺久没见到他们了)
(在阿红家丰盛的晚餐)
现在只能看看什么时候有空再办下身份证了
(再去玩一次,呵呵)
posted @ 2007-10-29 09:42 张秀兰 阅读(200) | 评论 (0)编辑 收藏
 

今天是周五了,快下班了,真的好快好快
想想这周是怎么过的?
周一晚上在宿舍看青年博览
周二晚上去了外图看了:《低调做人的智慧》
周三晚上去SO焗油(现在头发感觉好多了,一个多月没去焗了)
周四,跟MM去逛了中山路,呵,就买吃的

晚上去W买点东西,明天车上可以吃
也就这样,无趣无味的生活一周也挺快过去了
呵呵

准备下班。。。。。。。。。。
posted @ 2007-10-26 17:34 张秀兰 阅读(169) | 评论 (0)编辑 收藏
 
回家已归来,心仍在家里,早上上班好累,也好睏
回家待了5天,回去时心事重重,回来时也是心事重重。。。
回家那天下午4点到了诏安车站,刚好有一班车要走,坐上车没多久,三哥打电话问到哪了,(三哥每次都会打电话问到哪了,每次接完电话很是开心,很是感动)准备什么时候可以到下官来接我:)
接完三哥电话,感觉车走得有点慢(其实那天车走得挺快的了,因为那会没什么人,少了上下车的时间),
终于到了,赶紧给三哥打个电话,说到了。这次回家没有带什么吃的,想在下官那买点水果回去,等下吃完饭
可以吃。在买完红缇后转身看到一个有点熟悉的身影,再看看,是呀,没错,是那个同学,叫什么来着。。。
还是想不起来,我一直盯着他看,那会他在电话中,他也就只跟我先招了手。聊了几句,我哥来了,我也就先走了,当时却忘记了问电话啦,呵
回到家才想起他的名字来:沈德品
呵呵
这次回家几天,这样的事发生了三次,文添老师的名字是我回厦门时快要到厦门那瞬间才想起他的名字的,呵
回家第二天,也就是农历9.8是母亲的周年日
早上我们兄妹都起得很早,我准备早餐后,我们一家人吃了起来,那种一家人一起吃饭的感觉真好!!!
整理完后11点多了,大哥开始学着那些祭拜的礼仪,为了控制自己的情绪,我尽量把自己的注意力转到那些听不懂的礼仪上,不过,那会的情绪是不能控制的,泪已落下。。。
同样,哥哥们也没有控制住。。。
时间总是无情地在流动着,而母亲那慈祥的笑容却永远留在我们心中。。。
posted @ 2007-10-22 10:10 张秀兰 阅读(164) | 评论 (0)编辑 收藏
 
不爱的时候 请离开!
爱的时候 请善待!

逃避不一定躲得过,面对不一定最难过,孤单不一定不快乐,得到不一定能长久.失去不一定不再有,转身不一定最软弱。
许多事情的答案不只是一个,所以我们永远有路可以走,你能找到理由难过,也一定能找到快乐,懂得放心的人找得到轻松,懂得遗忘的人找得到自由,懂得关怀的人找得到朋友。 

总结:
写得不错也就转载过来了,特别是最后一段:
许多事情的答案不只是一个,所以我们永远有路可以走,你能找到理由难过,也一定能找到快乐,懂得放心的人找得到轻松,懂得遗忘的人找得到自由,懂得关怀的人找得到朋友。
应该说就好在这段话,呵呵
posted @ 2007-10-10 17:24 张秀兰 阅读(197) | 评论 (0)编辑 收藏
 
这7天里时间过得很快,也过得很充实!
唯一一个痛苦点就是:PG好疼。一天差不多除吃饭,洗澡,睡觉时,没有坐在那把绿色小凳子上,其他时间PG都是在它上面了。(这次它被充分利用上了,呵呵)
具体这7天怎么过的,等有时间再慢慢记载好了
posted @ 2007-10-08 09:13 张秀兰 阅读(265) | 评论 (2)编辑 收藏
 
急事,慢慢的说;
  

大事,清楚的说;
 

小事,幽默的说;
  

没把握的事,谨慎的说;
  

没发生的事,不要胡说;
  

做不到的事,别乱说;
  

伤害人的事,不能说;
 

讨厌的事,对事不对人的说;
 

开心的事,看埸合说;
 

伤心的事,不要见人就说;
  

别人的事,小心的说;
  

自己的事,听听自己的心怎么说;
  

现在的事,做了再说;
 

未来的事,未来再说。
posted @ 2007-09-30 15:27 张秀兰 阅读(191) | 评论 (0)编辑 收藏
 
国庆7天不回家,好好奋斗,争取能考上!
呵呵!
就现在来看,能考上是有点奇迹,呵呵!
(昨晚,English看到:I want a car of my own.)
(其实我想到的是:I want a home of my own.)
posted @ 2007-09-28 12:47 张秀兰 阅读(350) | 评论 (4)编辑 收藏
 
光阴似箭!
转眼间,中秋已过。。。
07的一年又即将结束。。。
自己定的目标又是如何呢。。。。
posted @ 2007-09-27 13:00 张秀兰 阅读(179) | 评论 (0)编辑 收藏
 
最近成了工作狂,天天加班。。。
posted @ 2007-09-19 12:45 张秀兰 阅读(173) | 评论 (0)编辑 收藏
 
昨天一早就有同学发信息说,成绩已可查询。。。。。
虽然我已知道这次是没有希望能过,但在我点确定“查询”按钮时,我还是那么紧张,期待着奇迹的出现!呵呵
原来奇迹也是留给有准备的人,呵呵!
这次决定另谋它路!
posted @ 2007-07-24 12:00 张秀兰 阅读(331) | 评论 (2)编辑 收藏
 
mysql查看表结构命令,如下:

desc 表名;
show columns from 表名;
describe 表名;
show create table 表名;

use information_schema
select * from columns where table_name='表名';

顺便记下:
show databases;
use 数据库名;
show tables;



原有一unique索引AK_PAS_Name(PAC_Name)在表tb_webparamcounter中,
执行以下sql修改索引
alter table tb_webparamcounter drop index AK_PAS_Name;
alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name);

若发现索引的逻辑不对,还需要再加一个字段进去,执行
alter table tb_webparamcounter drop index AK_PAS_Name;
alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name,PAC_Value);
注意:这时的PC_ID,PAC_Name,PAC_Value三个字段不是FOREIGN KEY
否则必需先drop FOREIGN KEY,再重做上一步才行

顺便提下oracle
select * from v$database;
select * from all_users;
select * from user_tables;
posted @ 2007-07-12 12:02 张秀兰 阅读(167075) | 评论 (5)编辑 收藏
 

Eclipse中的快捷键

本文档从Eclipse软件上整理,是列出了标准的快捷键,未列出Emacs快捷键。

<如果忘记如下快捷键,可以使用Eclipse3.1中查看快捷键的使用方式:>CTRL+SHIFT+L

编辑
作用域 功能 快捷键
全局 查找并替换 Ctrl+F
文本编辑器 查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 内容辅助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信息 Alt+?


Java编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文本编辑器 增量逆向查找 Ctrl+Shift+J
全局 粘贴 Ctrl+V
全局 重做 Ctrl+Y


查看
作用域 功能 快捷键
全局 放大 Ctrl+=
全局 缩小 Ctrl+-


窗口
作用域 功能 快捷键
全局 激活编辑器 F12
全局 切换编辑器 Ctrl+Shift+W
全局 上一个编辑器 Ctrl+Shift+F6
全局 上一个视图 Ctrl+Shift+F7
全局 上一个透视图 Ctrl+Shift+F8
全局 下一个编辑器 Ctrl+F6
全局 下一个视图 Ctrl+F7
全局 下一个透视图 Ctrl+F8
文本编辑器 显示标尺上下文菜单 Ctrl+W
全局 显示视图菜单 Ctrl+F10
全局 显示系统菜单 Alt+-


导航
作用域 功能 快捷键
Java编辑器 打开结构 Ctrl+F3
全局 打开类型 Ctrl+Shift+T
全局 打开类型层次结构 F4
全局 打开声明 F3
全局 打开外部javadoc Shift+F2
全局 打开资源 Ctrl+Shift+R
全局 后退历史记录 Alt+←
全局 前进历史记录 Alt+→
全局 上一个 Ctrl+,
全局 下一个 Ctrl+.
Java编辑器 显示大纲 Ctrl+O
全局 在层次结构中打开类型 Ctrl+Shift+H
全局 转至匹配的括号 Ctrl+Shift+P
全局 转至上一个编辑位置 Ctrl+Q
Java编辑器 转至上一个成员 Ctrl+Shift+↑
Java编辑器 转至下一个成员 Ctrl+Shift+↓
文本编辑器 转至行 Ctrl+L


搜索
作用域 功能 快捷键
全局 出现在文件中 Ctrl+Shift+U
全局 打开搜索对话框 Ctrl+H
全局 工作区中的声明 Ctrl+G
全局 工作区中的引用 Ctrl+Shift+G


文本编辑
作用域 功能 快捷键
文本编辑器 改写切换 Insert
文本编辑器 上滚行 Ctrl+↑
文本编辑器 下滚行 Ctrl+↓


文件
作用域 功能 快捷键
全局 保存 Ctrl+S
全局 打印 Ctrl+P
全局 关闭 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部关闭 Ctrl+Shift+F4
全局 属性 Alt+Enter
全局 新建 Ctrl+N


项目
作用域 功能 快捷键
全局 全部构建 Ctrl+B


源代码
作用域 功能 快捷键
Java编辑器 格式化 Ctrl+Shift+F
Java编辑器 取消注释 Ctrl+\
Java编辑器 注释 Ctrl+/
Java编辑器 添加导入 Ctrl+Shift+M
Java编辑器 组织导入 Ctrl+Shift+O



运行
作用域 功能 快捷键
全局 单步返回 F7
全局 单步跳过 F6
全局 单步跳入 F5
全局 单步跳入选择 Ctrl+F5
全局 调试上次启动 F11
全局 继续 F8
全局 使用过滤器单步执行 Shift+F5
全局 添加/去除断点 Ctrl+Shift+B
全局 显示 Ctrl+D
全局 运行上次启动 Ctrl+F11
全局 运行至行 Ctrl+R
全局 执行 Ctrl+U


重构
作用域 功能 快捷键
全局 撤销重构 Alt+Shift+Z
全局 抽取方法 Alt+Shift+M
全局 抽取局部变量 Alt+Shift+L
全局 内联 Alt+Shift+I
全局 移动 Alt+Shift+V
全局 重命名 Alt+Shift+R
全局 重做 Alt+Shift+Y
posted @ 2007-06-14 14:11 张秀兰 阅读(332) | 评论 (1)编辑 收藏
 
I. 第一章 目录及文件操作命令  
  A. 1.1   ls  
   
          [语法]:   ls     [-RadCxmlnogrtucpFbqisf1]       [目录或文件......]  
          [说明]:   ls   命令列出指定目录下的文件,缺省目录为当前目录   ./,缺省输出顺序为纵向按字符顺序排列。  
                            -R     递归地列出每个子目录的内容  
                            -a     列出所有文件,包括第一个字符为“.”的隐藏文件  
                            -d     若后面参数是目录,则只列出目录名而不列出目录内容,常与-l选项连  
    用以显示目录状态。  
                            -C     输出时多列显示  
                            -x     横向按字符顺序排列  
                            -m     输出按流式格式横向排列,文件名之间用逗号(,)分隔  
                  -l     长列表输出,显示文件详细信息,每行一个文件,从左至右依次是:  
  文件存取模式     链接数     文件主     文件组     文件字节数       上次修改时间  
  其中文件存取模式用10个字母表示,从左至右的意义如下:  
          第一个字母表示文件种类,可以是以下几种情况:  
  d   为目录文件  
  l   为链接  
  b   为块文件  
  c   为字符型文件  
  p   为命名管道(FIFO)  
  -   为普通文件  
          后面9个字母分别表示文件主、同组用户、其他用户对文件的权力,用r表示可读,w   表示可写,x   表示可执行。如果是设备文件,则在文件字节数处显示:主设备     从设备。  
                                -n         与-l选项相同,只是文件主用数字(即UID)显示,文件组用数字  
                                          (即GID)表示  
                          -o         与-l选项相同,只是不显示文件组  
          -g         与-l选项相同,只是不显示文件主  
                  -r         逆序排列  
                  -t       按时间顺序排列而非按名字  
                  -u       显示时间时使用上次访问时间而非上次修改时间  
                  -c       显示时间时使用上次修改i节点时间而非上次修改时间  
                  -p       若所列文件是目录文件,则在其后显示斜杠(/)  
                  -F       在目录文件后加’/’,在可执行文件后加’*’  
                  -b       文件名中若有非打印字符,则用八进制显示该字符  
                  -q       文件名中的打印字符用’?’表示  
                  -i         显示节点号  
                  -s         显示文件长度时使用块长度而非字节长度  
                  -f           将后面的参数解释为目录并列出其中的每一项  
                  -1         每行仅列一项  
          [例子]:  
        ls       列出当前目录下的文件  
                      ls   -al     /bin       以长列表的形式列出目录   /bin   下的所有文件,包括隐藏文件  
   
  B. 1.2   pwd  
   
          [语法]:           pwd  
          [说明]:         本命令用于显示当前的工作目录  
          [例子]:  
                        pwd         显示出当前的工作目录  
   
   
  C. 1.3   cd  
   
          [语法]:           cd       [目录]  
          [说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME   作为其参数,$HOME   一般为注册时进入的路径。  
          [例子]:    
            cd       回到注册进入时的目录  
                          cd       /tmp         进入   /tmp   目录  
                          cd     ../             进入上级目录  
  D. 1.4   mkdir  
   
          [语法]:       mkdir   [-m   模式]   [-p]     目录名  
          [说明]:     本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限,目录的UID和GID为实际UID和GID  
            -m           按指定存取模式建立目录  
                    -p           建立目录时建立其所有不存在的父目录  
          [例子]:    
            mkdir     tmp         在当前目录下建立子目录   tmp    
                          mkdir     -m   777       /tmp/abc                   用所有用户可读可写可执行的存取模式  
                    建立目录   /tmp/aaa   ,存取模式参看命令   chmod  
                          mkdir     -p   /tmp/a/b/c             建立目录   /tmp/a/b/c   ,若不存在目录   /tmp/a    
                                                  及/tmp/a/b   则建立之  
   
   
  E. 1.5   rmdir  
   
          [语法]:         rmdir     [-p]   [-s]   目录名  
          [说明]:         本命令用于删除目录  
                      -p           删除所有已经为空的父目录  
      -s           当使用-p   选项时,出现错误不提示  
          [例子]:        
  rmdir     /tmp/abc       删除目录   /tmp/abc  
              rmdir     -p     /tmp/a/b/c               删除目录   /tmp/a/b/c   ,若目录   /tmp/a   /b  
                                                                                      及/tmp/a   空,则删除  
   
   
   
  F. 1.6   cat  
   
          [语法]:           cat   [-u]   [-s]   [-v[-t]   [-e]]   文件...  
          [说明]:           显示和连接一个或多个文件至标准输出  
                      -u         无缓冲的输出(缺省为有缓冲输出)  
              -s         对不存在的文件不作提示  
                    -v         显示出文件中的非打印字符,控制字符显示成^n   ,n为八进制数字,  
  其他非打印字符显示成M-x   ,   x   为该字符低7位的8进制数值  
                      -t         在使用-v   选项时,将制表符(tab)   显示成   ^I,将换页符  
  (formfeed)显示成   ^   L  
                      -e           在使用-v   选项时,在每一行的行尾显示   $  
              [例子]:    
  cat     file             显示文件  
                cat       -s   -v   -e     file1     file2       file3   逐个显示文件   file1   file2   file3  
   
   
  G. 1.7   head  
   
          [语法]:         head         [-n]           [文件   ...]  
          [说明]:         将文件的头n   行显示输出,缺省值为   10   行,显示多个文件时,在每个文件的前面加上   ==>   文件名   <==  
          [例子]:    
                  head     -9999       file1       file2 显示文件   file1   和   file2   的头   9999   行  
   
  H. 1.8         more  
   
          [语法]:   more       [-cdflrsuw]     [-   行数]   [+   行数]   [+   /   模式   ]   [   文件   ...   ]  
          [说明]:   将文件显示在终端上,每次一屏,在左下部显示   --more--,若是从文件读出而非从管道,则在后面显示百分比,表示已显示的部分,按回车键则上滚一行,按空格键则上滚一屏,未显示完时可以使用more   命令中的子命令。  
                      -c         显示文件之前先清屏  
              -d         当输错命令时显示错误信息而不是响铃(bell)  
                      -f         不折叠显示长的行  
                    -l         不将分页控制符(CTRL   D)当作页结束  
              -r         一般情况下,more   不显示控制符,本选项使more   显示控制符,  
      例如,将   (CTRL   C)   显示成   ^   C  
                      -s         将多个空行转换成一个空行显示  
      -u         禁止产生下划线序列  
      -w         一般情况下   more   显示完后立即推出,本选项在显示完后作提  
  示,敲任意键后推出  
      -n   行数   指定每屏显示的行数  
                      +   行号           从指定行号开始显示  
      +/模式           在文件中搜索指定模式,从模式出现行的上两行开始显示         文件未显示完时,可以使用more   命令中的子命令,命令中除了!   和   /   以外均不回显,也不用敲回车,当命令破坏   more   提示行时,可用退格键恢复提示行。在以下子命令操作中,i   表示数字,缺省值为   1。  
                i     空格     上滚一屏多   i   行  
        i     回车 上滚   i   行  
        i     CTRL+D   i   缺省时上滚   11   行,否则上滚   i   行  
        id                 i   缺省时上滚   11   行,否则上滚   i   行  
                iz     i   缺省时上滚一屏,否则定义每屏为   i   行  
        is 跳过   i   行后显示一屏  
        if 跳过   i   屏后显示一屏  
        i   CTRL+B 跳回   i   屏后显示一屏  
        b 跳回   一屏后显示一屏  
        q   或   Q 推出   more  
        = 显示当前行号  
        v 从当前行开始编辑当前文件编辑器由环境变量  
                                                          $EDITOR定义  
          h 显示帮助信息  
        i   /   模式 向前搜索,直至模式的第   i   次出现   ,   从该行的上               两行开始显示一屏  
        in 向前搜索,直至上一模式的第   i   次出现   ,   从该行               的上两行开始显示一屏  
        单引号 回到上次搜索的出发点,若无搜索则回到开始位置  
        !   命令 激活一个sh   去执行指定的命令  
        i   :   n 跳到后面第   i   个文件,若不存在则跳到最后一个文件  
        :f 显示当前文件名和行号  
        :q   或   :Q 推出   more    
        .   (点) 重复上次命令  
            [   例子]:  
  more       -c       +50       file             清屏后,从第50行开始显示文件   file    
          more     -s   -w     file1     file2     file3           显示文件   file1     file2     file3  
   
   
  I. 1.9       cp  
   
          [语法]:     cp   [   -p   ]     [   -r   ]     文件   1   [   文件   2   ...]     目标  
          [说明]:     将文件1(文件2   ...)拷贝到目标上,目标不能与文件同名,   若目标是文件名,则拷贝的文件只能有一个,若目标是目录,   则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。  
        -   i           在覆盖已存在文件时作提示,若回答   y   则覆盖,其他则中止  
            -   p           不仅拷贝文件内容,还有修改时间,存取模式,存取控制表,   但不拷贝    
                                  UID   及   GID  
    -   r           若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时  
                                  目标必须为目录  
          [例子]:  
        cp       file1       file2   将文件   file1   拷贝到文件   file2  
      cp       file1       file2   /tmp   将文件   file1   和文件   file2   拷贝到目录   /tmp   下  
      cp   -r   /tmp   /mytmp           将目录   /tmp   下所有文件及其子目录拷贝至目录/mytmp  
   
  J. 1.10   mv      
   
          [语法]:     mv     [-f]     [-i]   文件1   [文件2...]   目标  
          [说明]:     将文件移动至目标,若目标是文件名,则相当于文件改名  
    -   i           在覆盖已存在文件时作提示,若回答   y   则覆盖,其他则中止  
    -   f           覆盖前不作任何提示  
          [例子]:  
    mv     file1       file2                   将文件   file1   改名为   file2  
    mv     file1       file2     /tmp 将文件   file1   和文件   file2     移动到目录   /tmp   下
K. 1.11   rm    
   
          [语法]:         rm     [-f]     [-i]     文件...  
                或   rm     -r     [-f]     [-i]     目录名...   [文件]  
          [说明]:       用来删除文件或目录  
                -   f         删除文件时不作提示  
                -   r         递归地删除目录及其所有子目录  
                -   i         删除文件之前先作提示  
          [例子]:    
              rm     file1   删除文件   file1  
      rm     -i       /tmp/* 删除目录   /tmp     下的所有文件  
      rm     -r     /mytmp 递归地删除目录   /mytmp  
   
   
  L. 1.12       chmod  
   
        [语法]:         chmod     [-R]     模式       文件...  
          或   chmod     [ugoa]     {+|-|=}     [rwxst]     文件...  
        [说明]:   改变文件的存取模式,存取模式可表示为数字或符号串,例如:  
                            chmod         nnnn       file   ,     n为0-7的数字,意义如下:  
  4000 运行时可改变UID  
  2000 运行时可改变GID  
  1000 置粘着位  
  0400 文件主可读  
  0200 文件主可写  
  0100 文件主可执行  
  0040 同组用户可读  
  0020 同组用户可写  
  0010 同组用户可执行  
  0004 其他用户可读  
  0002 其他用户可写  
  0001 其他用户可执行  
            nnnn   就是上列数字相加得到的,例如   chmod   0777       file     是指将文件   file   存取权限置为所有用户可读可写可执行。  
    -R 递归地改变所有子目录下所有文件的存取模式  
    u 文件主  
    g   同组用户  
    o 其他用户  
    a 所有用户  
    + 增加后列权限  
    - 取消后列权限  
    = 置成后列权限  
    r 可读  
    w 可写  
    x 可执行  
    s 运行时可置UID  
    t 运行时可置GID  
          [例子]:  
    chmod       0666     file1     file2     将文件   file1   及   file2   置为所有用户可读可写  
    chmod       u+x       file                     对文件   file   增加文件主可执行权限  
    chmod       o-rwx         对文件file   取消其他用户的所有权限  
   
   
  M. 1.13   chown    
   
          [语法]:     chown     [-R]     文件主       文件...  
          [说明]:     文件的UID表示文件的文件主,文件主可用数字表示,   也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。  
    -R 递归地改变所有子目录下所有文件的存取模式  
          [例子]:  
      chown       mary     file 将文件   file     的文件主改为   mary  
      chown       150       file               将文件   file   的UID改为150  
   
   
  N. 1.14   chgrp    
   
          [语法]:     chgrp   [-R]     文件组     文件...  
          [说明]:     文件的GID表示文件的文件组,文件组可用数字表示,   也可用一个有效的组名表示,此命令改变一个文件的GID,可参看chown。  
    -R 递归地改变所有子目录下所有文件的存取模式  
          [例子]:  
    chgrp     group       file 将文件   file     的文件组改为   group  
   
   
  1.15       cmp  
   
          [语法]:     cmp     [-l]     [-s]     文件1     文件2  
          [说明]:     比较两个文件,若文件1   为   "-"   ,则使用标准输入,   两个文件相同则无提示,不同则显示出现第一个不同时的字符数和行号。  
    -l 显示每个不同处的字节数(10进制)和不同的字节(8进制)  
    -s 不作任何提示,只返回码  
          [例子]:  
    cmp     file1       file2 比较文件   file1   和   file2  
    cmp   -l   file1   file2 比较文件file1   和   file2   的每处不同  
   
  O. 1.16   diff  
   
          [语法]:   diff     [-be]     文件1       文件2  
          [说明]:   本命令比较两个文本文件,将不同的行列出来  
    -b 将一串空格或TAB转换成一个空格或TAB  
    -e 生成一个编辑角本,作为ex或ed的输入可将文件1转换成文件2  
          [例子]:  
  diff         file1   file2  
  diff   -b   file1   file2  
  diff   -e   file1   file2   >edscript  
   
   
  P. 1.17   wc  
   
          [语法]:   wc     [-lwc]         文件...  
          [说明]:   统计文件的行、字、字符数,若无指定文件,则统计标准输入  
    -l   只统计行数  
    -w 只统计字数  
    -c 只统计字符数  
          [例子]:  
    wc     -l     file1     file2 统计文件file1和file2   的行数  
   
   
  Q. 1.18   split  
   
          [语法]:     split     [-n]       [   文件     [名字]]  
          [说明]:     split   将指定大文件分解为若干个小文件,每个文件长度为n行(n   缺省时为1000),第一个小文件名为指定的名字后跟aa,直至zz,名字缺省值为x,若未指定大文件名,则使用标准输入  
          [例子]:      
    split     -500       largefile       little  
    将文件largefile   每500行写入一个文件,第一个文件名为littleaa  
   
   
  R. 1.19   touch    
   
          [语法]:   touch     [-amc]     [mmddhhmm[yy]]     文件...  
          [说明]:     将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建的文件。  
          -a   只改变访问时间  
    -m   只改变修改时间  
    -c 若文件不存在,不创建它且不作提示  
    mmddhhmm[yy]           两位表示   月日时分[年]  
          [例子]:  
    touch     file            
    更新文件file的时间  
    touch     0701000097     HongKong  
    将文件HongKong的时间改为97年7月1日0时0分  
   
   
   
   
  S. 1.20   file    
   
          [语法]:     file     [-f     文件名文件]   文件...  
          [说明]:     file   对指定文件进行测试,尽量猜测出文件类型并显示出来  
    -f     文件名文件 文件名文件是一个包含了文件名的文本文件,   -f   选项测试  
                                                        文件名文件中所列出的文件  
            [例子]:  
      file     * 显示当前目录下所有文件的类型
T. 1.21   pack        
   
          [语法]:     pack     文件...  
          [说明]:     pack   将指定文件转储为压缩格式,文件名后加   ".z   ",   文件存取模式,访问时间,修改时间等均不变  
          [例子]:  
      pack     largefile 将largefile   压缩后转储为largefile.z  
   
   
  U. 1.22   pcat     显示压缩文件  
   
          [语法]:     pcat       文件...  
          [说明]:     pcat     显示输出压缩文件  
       
    [例子]:      
  pcat     largefile.z 显示压缩前的largefile  
            pcat     largefile.z   >   oldfile 显示压缩前的laregfile,并将其重定向到  
                                                                                    文件oldfile中  
   
   
  V. 1.23       unpack  
   
          [语法]:   unpack     文件...  
          [说明]:   将压缩后的文件解压后转储为压缩前的格式  
          [例子]:    
      unpack     largefile.z 将压缩文件largefile.z解压后转储为largefile  
   
   
  W. 1.24   find  
   
        [语法]:   find         路径名...         表达式  
        [说明]:   find   命令递归地遍历指定路径下的每个文件和子目录,看该文件是否能使表达式值为真,以下   n   代表一个十进制整数,+n   代表打印   n   ,   -n   代表小于   n   ,下面是合法表达式说明:  
  -name     模式       文件名与模式匹配则为真,(\   为转意符)  
      -perm     [-]八进制数 文件存取模式与八进制数相同则为真若有-   选项,则文件存  
                                                        取模式含有八进制数规定模式即为真  
    -size     n[c] 文件块长度为   n   则真(一块为512字节),若  
  有c   选项,则文件字节长度为   n   则真  
  -atime   n 若文件的最近访问时间为   n   天前则为真,  
  find   命令将改变其访问的目录的访问时间  
  -mtime   n 若文件的最近修改时间为   n   天前则为真  
  -ctime   n 若文件状态为   n   天前改变则为真  
  -exec   命令     {   }\; 若命令返回值为0则真,{   }内为命令参数,  
  此命令必须以   \;   为结束  
  -ok   命令         {   }\; 与   exec   相同,只是在命令执行前先提示,若  
  回答   y   则执行命令  
  -print 显示输出使表达式为真的文件名  
  -newer   文件 若文件的访问时间比newer   指定的文件新则真  
  -depth 先下降到搜索目录的子目录,然后才至其自身  
  -mount 仅查找包含指定目录的文件系统  
  -local 文件在当前文件系统时为真  
  -type     c 文件类型为   c   则真,c   取值可为   b(块文件)   c   (字符文件)    
                                                        d(目录)   l   (符号链接)   p   (命名管道)   f   (普通文件)  
  \(     表达式   \)       表达式为真则真  
  -links     n 文件链接数为   n   时为真  
  -user       用户 当文件属于用户时为真,用户可用数字表示UID  
  -nouser     当文件不属于   /etc/passwd   中的一个用户时为真  
  -group     文件组 当文件属于文件组时为真,文件组可用数字表示GID  
  -nogroup 当文件不属于   /etc/group   中的一个组时为真  
  -fstype       类型 当文件所属文件系统类型为指定类型时真  
  -inum         n 当文件   i   节点号为   n   时为真  
  -prune       当目录名与模式匹配时,不再搜索其子目录  
                      可以用逻辑操作符将简单表达式连接成复杂表达式  
  逻辑操作符有   !   表示非操作,   -o     表示或操作,两个表达式并列则表示  
  与操作  
        [例子]:  
  find   /   -name   find*   -print  
  从根目录开始搜索文件名如   find*   的文件并显示之  
  find   ./   -exec   sleep{1}\;   -print  
      每秒显示一个当前目录下的文件  
  find   $HOME   \(-name   a.out   -o   -name   '*.o'   \)   -atime   +7     -exec       rm   {}   \;  
  从$HOME目录开始搜索,删除所有文件名为a.out   或   *.o   且访问时间在7天前的文件  
   
   
  X. 1.25   grep  
   
        [语法]:     grep     [选项]   模式     [文件...]  
        [说明]:     在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号(')   中,若指定文件为缺省,则使用标准输入,正规表达式可以是:  
  .     匹配任意一个字符  
  * 匹配0个或多个*前的字符  
  ^ 匹配行开头  
  $ 匹配行结尾  
  [] 匹配[   ]中的任意一个字符,[]中可用   -   表示范围,  
  例如[a-z]表示字母a   至z   中的任意一个  
  \ 转意字符  
  命令中的选项为:  
  -b 显示块号  
  -c 仅显示各指定文件中包含模式的总行数  
  -i 模式中字母不区分大小写  
  -h 不将包含模式的文件名显示在该行上  
  -l 仅显示包含模式的文件名  
  -n 显示模式所在行的行号  
  -s 指定文件若不存在或不可读,不提示错误信息  
  -v 显示所有不包含模式的行  
        [例子]:  
  grep       'good'     * 在所有文件中搜索含有字符串   good     的行  
  grep       '^myline'     mytext 在文件mytext中搜索行首出现myline字符串的行  
posted @ 2007-06-14 10:12 张秀兰 阅读(379) | 评论 (0)编辑 收藏
 
     摘要: 一个叫随时问的流程,写个总结.相当长,相信你有耐心看完!哈哈嘻嘻!先画个流程图吧: web端ajax,java,jsp流程图 先来写个.js,叫webask.js/** * Send the data to server  */function XmlHttpSend(url, method, params, asyn){ var headers = ne...  阅读全文
posted @ 2007-06-07 15:34 张秀兰 阅读(1155) | 评论 (1)编辑 收藏
 
       别让爱成为一种伤害 [转]                                  
       如果你不爱一个人,请放手,好让别人有机会爱她;如果你爱的人放弃了你,请放开自己,好让自己有机会爱别人。
有的东西你再喜欢也不会属于你的,有的东西你再留恋也注定要放弃的,人生中有许多种爱,但别让爱成为一种伤害。
有些缘分是注定要失去的,有些缘分是永远都不会有好结果的,爱一个人不一定要拥有,但拥有一个人就一定要好好的去爱他。
如果真诚是一种伤害,我选择谎言;如果谎言是一种伤害,我选则沉默;如果沉默是一种伤害,我选择离开;如果失去是苦,你怕不怕付出;如果迷乱是苦,你会不会选择结束;如果追求是苦,你会不会选择执迷不悟;如果分离是苦,你要向谁倾诉,好多事情都是后来才看清楚,好多事情当时一点也不觉得苦,然而我已经找不到来时的路。
有一种爱,明明是深爱,却说不出来。有一种爱,明明想放弃,却无法放弃。有一种爱,明知是煎熬,却又躱不开。有一种爱,明知无前路,心却早已收不回来
爱不是游戏是真心的付出,要忘记真的做不到。不管归处是哪里,我想都应该在心底留一份纯真的美好。从来没有轻易对别人动心,突然发现自己深深爱上了,那种滋味真是难以用言语表达,是喜悦?是悲哀?怎能忘记,难道爱说收救收的回吗?可以的话也不叫爱了。
我常常有如此的感慨,也许爱情只是因为寂寞需要找一个人来爱,即使没有任何结局。可是爱为什么如此脆弱?有时它易碎的程度比玻璃还容易。它又如此的坚强,坚强到即使把自己弄到遍体鳞伤,依然痴痴的爱着,从不后悔。爱可以是一瞬间的事情也可以是一辈子的事情。每个人都可以在不同的时间爱上不同的人。为什么我的爱就这么难了?我也不知道谁离开了谁就无法生活,可是要真正的遗忘是一件忘难的事情,也许正因为如此我才不够坚强。
世事难料,其实凡事都是在它适当的时候降临,只是我们没有适当的心情去迎接它或是没在意。因为爱所以放弃。听起来这句话很伟大,很洒脱,可是有谁为了爱真正的能够离开了?也许你能,我却不能真正做到轻易的放弃。尽管有些感情如此直接残酷,容不下任何迂回曲折的温暖。有些东西你再喜欢也不会属于你的,有的东西你再留意也注定要放弃的。爱是人生中一道永远唱不完的歌。人生中也许会经历许多种爱,但千万别让爱成为一种伤害


看完后,感觉怎样?
呵呵
忽然想起,看过这样的一段话:
人的一生有三次恋爱:
一次:你喜欢的人,而那人不喜欢你;
一次:喜欢你的人,而你不喜欢;
一次,彼此都喜欢
当然得相信可以找到彼此喜欢的人,呵呵!


以上纯属因为感觉有点内容,并不代表我个人此时的心情,呵
posted @ 2007-06-04 14:52 张秀兰 阅读(248) | 评论 (0)编辑 收藏
 
最近测试环境的imformix数据库换了个demo,经常出现:
java.sql.SQLException: Cannot create an user thread. On NT check username, and IXUSERS group.
只要有二个连接:dbaccess就会抛出:
java.sql.SQLException: Cannot create an user thread. On NT check username, and IXUSERS group.
共用测试环境技术总监配,真不知道他为啥要用这个demo!
当出现抛出异常时只好重启tomcat,再不行,把有相关的线程kill再重启了
(有点无耐)

顺便记下:
informix表被锁定时,解决方法
(在informix用户下)
onstat  -g  ses(查看哪些占了表进程)
onmode -z  session id (杀session id)
若还不能解决问题,那你得看下日志文件是否满了.(曾经就有碰过,还浪费了很长时间去检查
程序....)
posted @ 2007-05-31 14:30 张秀兰 阅读(1318) | 评论 (0)编辑 收藏
 
1. ORACLE 
Select * FROM TABLE1 Where ROWNUM<=N 

2. INFORMIX 
Select FIRST N * FROM TABLE1 where 1=1 

3. MYSQL 
Select * FROM TABLE1 where 1=1 LIMIT N 
(以上三种是俺工作中用到的数据库)

4. DB2 
Select * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM Where ROWNUM<=N 
或者
Select COLUMN FROM TABLE where 1=1 FETCH FIRST N ROWS ONLY 

5. SQL SERVER 
Select TOP N * FROM TABLE1 where 1=1 
or
SET ROWCOUNT N Select * FROM TABLE1 where 1=1 SET ROWCOUNT N1

6. SYBASE 
SET ROWCOUNT N Select * FROM TABLE1 where 1=1 SET ROWCOUNT N1


7. FOXPRO 
Select * TOP N FROM TABLE orDER BY COLUMN

8. ACCESS 
Select TOP N * FROM TABLE1 where 1=1
posted @ 2007-05-18 09:26 张秀兰 阅读(371) | 评论 (0)编辑 收藏
 
遇到TOMCAT出错:java.lang.OutOfMemoryError: Java heap space,于是查了资料,找到了解决方法:

If Java runs out of memory, the following error occurs:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Java heap size can be increased as follows:

java -Xms<initial heap size> -Xmx<maximum heap size>
Defaults are:
java -Xms32m -Xmx128m

如果你用win
/tomcat/bin/catalina.bat 加上下面的命令:
set JAVA_OPTS=-Xms32m -Xmx256m

如果你用unix/linux
/tomcat/bin/catalina.sh 加上下面的命令:
JAVA_OPTS="-Xms32m -Xmx256m"
posted @ 2007-04-29 15:05 张秀兰 阅读(16764) | 评论 (1)编辑 收藏
 

发现现在每次考试都是临时抱佛脚了!
21号下午考操作系统:书本都没翻开过,想着就凭在学校有学过瞒去试下,打开试卷才知道错了:看过去,没有一题有把握的,呵!
还是赶紧签上了大名,说明有报到过了,呵!
这一幕也让我知道,22号早上的概率论与数理统计,还得回去好好准备,决定22号晚上通宵(有可能吗,能读到凌晨2点就很不错了,因为知道自己是受不了通宵的,呵)!
就凭这样能行吗,赶紧到厦大西村下车,买点吃的东东回去,晚上想睡觉了就吃点零食可能会抵挡下!
到安德鲁生店去吧,选了个切片面包,还有个小东东,不知叫什么.(买单时那收银员的服务态度,让我深感悲哀!)
因为中午没休息,到12点时就觉得很困了,真糟糕!
面包,面包,在哪?塞了几口,喝水!(哇!这两天很没味口,有可能天气的原因吧,人也感觉不大舒服.)
休息会,走动走动.....(床头,床尾;床尾,床头.绕了几圈.宿舍太小了,没办法,呵呵:) )
还是赶紧把最后两章再复习下,就可以睡...........觉................啦
当然看完课本,还把二份试卷浏览浏览!
1点20几分了,考试工具整理完,洗牙刷脸(记得当时就是先拿了脸盆的,呵呵!)
oh,my gad!我又迟到了!(虽然上班,迟到是我的专利(目前好多了!), 可这考试可万万迟到不得!
紧张过后,赶紧把试卷浏览一下,感觉没什么,都有了思路了!松了口气!
begin 埋头苦干解答题目...........
suddenly  有人要交差了...哇!不会时间要到了吧?
老师回答:还有一个多钟头.
检查再检查一遍,不能再出现:1/4 * 1/2 = 1/4哟!
总的感觉还不错,就怕加减算法结果错了,发现现在口算那真的笨得要命咯......

期待结果ing
忽然收到阿甘的mail:收工,做事去.............
posted @ 2007-04-23 14:54 张秀兰 阅读(238) | 评论 (1)编辑 收藏
 
Char  Dec  Oct  Hex | Char  Dec  Oct  Hex | Char  Dec  Oct  Hex | Char Dec Oct Hex
-----------------------------------------------------------------------------------
(nul)   0 0000 0x00 | (sp)   32 0040 0x20 | @     64 0100 0x40 | `    96 0140 0x60
(soh)   1 0001 0x01 | !      33 0041 0x21 | A     65 0101 0x41 | a    97 0141 0x61
(stx)   2 0002 0x02 | "      34 0042 0x22 | B     66 0102 0x42 | b    98 0142 0x62
(etx)   3 0003 0x03 | #      35 0043 0x23 | C     67 0103 0x43 | c    99 0143 0x63
(eot)   4 0004 0x04 | $      36 0044 0x24 | D     68 0104 0x44 | d    100 0144 0x64
(enq)   5 0005 0x05 | %      37 0045 0x25 | E     69 0105 0x45 | e    101 0145 0x65
(ack)   6 0006 0x06 | &      38 0046 0x26 | F     70 0106 0x46 | f    102 0146 0x66
(bel)   7 0007 0x07 | '      39 0047 0x27 | G     71 0107 0x47 | g    103 0147 0x67
(bs)    8 0010 0x08 | (      40 0050 0x28 | H     72 0110 0x48 | h    104 0150 0x68
(ht)    9 0011 0x09 | )      41 0051 0x29 | I     73 0111 0x49 | i    105 0151 0x69
(nl)   10 0012 0x0a | *      42 0052 0x2a | J     74 0112 0x4a | j    106 0152 0x6a
(vt)   11 0013 0x0b | +      43 0053 0x2b | K     75 0113 0x4b | k    107 0153 0x6b
(np)   12 0014 0x0c | ,      44 0054 0x2c | L     76 0114 0x4c | l    108 0154 0x6c
(cr)   13 0015 0x0d | -      45 0055 0x2d | M     77 0115 0x4d | m    109 0155 0x6d
(so)   14 0016 0x0e | .      46 0056 0x2e | N     78 0116 0x4e | n    110 0156 0x6e
(si)   15 0017 0x0f | /      47 0057 0x2f | O     79 0117 0x4f | o    111 0157 0x6f
(dle)  16 0020 0x10 | 0      48 0060 0x30 | P     80 0120 0x50 | p    112 0160 0x70
(dc1)  17 0021 0x11 | 1      49 0061 0x31 | Q     81 0121 0x51 | q    113 0161 0x71
(dc2)  18 0022 0x12 | 2      50 0062 0x32 | R     82 0122 0x52 | r    114 0162 0x72
(dc3)  19 0023 0x13 | 3      51 0063 0x33 | S     83 0123 0x53 | s    115 0163 0x73
(dc4)  20 0024 0x14 | 4      52 0064 0x34 | T     84 0124 0x54 | t    116 0164 0x74
(nak)  21 0025 0x15 | 5      53 0065 0x35 | U     85 0125 0x55 | u    117 0165 0x75
(syn)  22 0026 0x16 | 6      54 0066 0x36 | V     86 0126 0x56 | v    118 0166 0x76
(etb)  23 0027 0x17 | 7      55 0067 0x37 | W     87 0127 0x57 | w    119 0167 0x77
(can)  24 0030 0x18 | 8      56 0070 0x38 | X     88 0130 0x58 | x    120 0170 0x78
(em)   25 0031 0x19 | 9      57 0071 0x39 | Y     89 0131 0x59 | y    121 0171 0x79
(sub)  26 0032 0x1a | :      58 0072 0x3a | Z     90 0132 0x5a | z    122 0172 0x7a
(esc)  27 0033 0x1b | ;      59 0073 0x3b | [     91 0133 0x5b | {    123 0173 0x7b
(fs)   28 0034 0x1c | <      60 0074 0x3c | \     92 0134 0x5c | |    124 0174 0x7c
(gs)   29 0035 0x1d | =      61 0075 0x3d | ]     93 0135 0x5d | }    125 0175 0x7d
(rs)   30 0036 0x1e | >      62 0076 0x3e | ^     94 0136 0x5e | ~    126 0176 0x7e
(us)   31 0037 0x1f | ?      63 0077 0x3f | _     95 0137 0x5f | (del) 127 0177 0x7f
ASCII Name Description C Escape Sequence
nul null byte \0
bel bell character \a
bs backspace \b
ht horizontal tab \t
np formfeed \f
nl newline \n
cr carriage return \r
vt vertical tab
esc escape
sp space
用java程序写
char c = '\r';
int iAscii = c;//强制类型转换
System.out.println("iAscii:"+iAscii);
posted @ 2007-04-16 16:31 张秀兰 阅读(24377) | 评论 (7)编辑 收藏
 
曾经有写过一:会议通让我欢喜让我忧!
那会也是经过百般磨练才把问题搞定了!
昨天产品部提了个BUG说:创建临时会议时,一直提示会议还没开始!
做程序的,首先就想到是程序哪出错了,开始打开久违的VC.NET工作区
很值得幸运的是:工作区可以正常编译运行!(真怕出现刚刚的错误:无缘无故编译出错,编译不了!)
开始了程序的BUG跟踪,跟出了是一个view查不到对应的meetid记录
(数据库是sqlserver2k的,在一台虚拟机上,只好请网管的帮我先view记录值,导出记录里是有对应meetid记录的,可为啥就是得不到呢?)
想到了:执行完sql没有commit()??
看完了程序:有commit呀!
怪了怪了!
决定在自己机子上安装sqlsever2k(之前都是用oracle,mysql)
sqlserver2k那个大呀,等安装完了,一天过去了,下班回家了!
回到宿舍,还想着怎么就搞不明白为啥呢???
忽然想到,时间不一致,因为在程序里是MeetStartTime= DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + " " + DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second;
而在view时是取得数据库的当前时间:GETDATE()
今早来了,让网管同事到数据库和web端服务器确认下时间是否一致
结果知道了:还真的是数据库慢了2分钟..........................
赶紧把时间调一致,试下,可以了..............
无语...................
(在此得谢谢那网管同事,感觉他很是害羞,搞得我很是不好意思麻烦他了,呵呵!谢谢啦:) )
最后决定把在insert meet时直接取GETDATE()时间,加个方法,以免原有程序还有调用这个方法
写完,编译,啊.............怎么出这么多错.............
编译不过,晕!
请了下班网同事(他们是用VC.NET做的,而俺都是用eclipse)帮忙看看
30分钟过去了,还是不行..........
也有点为难他了...........
算了,先不管了....................
(这样的事,昨天也是有碰到的,后来关了开了编译了;不行,再重复,忽然可以了,呵呵,喜从天降的感觉!呵!)
现在可以用就行了.
明天再试试,能否编译通过............

若你有碰到过忽然编译不了,用了什么解决办法,麻烦告之!先谢了!
posted @ 2007-04-13 17:20 张秀兰 阅读(209) | 评论 (2)编辑 收藏
 

<script language="javascript">
function CopyCode(key)
{
  var divElements = document.getElementsByTagName("div");
  var i;
  occur = 0; 
  for(i = 0; i < divElements.length; ++i)
  {
    if(key.parentElement.parentElement.parentElement == divElements[i].parentElement)
    {
      if(occur == 1)
      {
        if(navigator.appName.indexOf('Microsoft') != -1)
          copyToClipboard(divElements[i].innerText);
        else
          copyToClipboard(Html2Txt(divElements[i].innerHTML));
      }
      occur++;
    }
  }
}
function Html2Txt(htmlText)
{
  str = htmlText.replace(/\r\n/g, " ");
  str = str.replace(/\r/g, " ");
  str = str.replace(/\n/g, " ");
  str = str.replace(/\t/g, "");
  str = str.replace(/<BR>/gi,"\r\n");
  str = str.replace(/<[^>]+?>/g,"");
  str = str.replace(/&nbsp;/g, " ");
  str = str.replace(/&gt;/g, ">");
  str = str.replace(/&lt;/g, "<");
  str = str.replace(/&amp;/g, "&");
  return str;
}

function copyToClipboard(txt)
{
 if(window.clipboardData)
  {
    window.clipboardData.clearData();
    window.clipboardData.setData("Text", txt);
  }
  else if(navigator.userAgent.indexOf("Opera") != -1)
  {
    window.location = txt;
  }
  else if (window.netscape)
  {
    try
    {
      netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    }
    catch (e)
    {
      alert("您的firefox安全限制限制您进行剪贴板操作,请在地址栏中输入“about:config”将“signed.applets.codebase_principal_support”设置为“true”之后重试");
      return false;
    }
    var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
    if (!clip)
      return;
    var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
    if (!trans)
      return;
    trans.addDataFlavor('text/unicode');
    var str = new Object();
    var len = new Object();
    var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
    var copytext = txt;
    str.data = copytext;
    trans.setTransferData("text/unicode",str,copytext.length*2);
    var clipid = Components.interfaces.nsIClipboard;
    if (!clip)
      return false;
    clip.setData(trans,null,clipid.kGlobalClipboard);
  }
}
</script>

posted @ 2007-04-03 11:59 张秀兰 阅读(362) | 评论 (0)编辑 收藏
 
转载:
数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先
在每个数据库服务器上设置链接字符串。
  
  1、  链接字符串即服务名,首先在本地配置一个服务名,地址指向远程的数据库地址,服务名取为将来你要使用的数据库链名:
  
2、创建数据库链接,
进入系统管理员SQL>操作符下,运行命令:
  
SQL>create public database link beijing connect to scott identified by tiger  
            using 'tobeijing';
  
则创建了一个以scott用户和北京数据库的链接beijing,我们查询北京的scott数据:
  
SQL>select * from emp@beijing;  
  
这样就可以把深圳和北京scott用户的数据做成一个整体来处理。
  
3、建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym
  
SQL>create synonym bjscottemp for emp@beijing;
  
于是就可以用bjscottemp来替代带@符号的分布式链接操作emp@beijing。
  
4、查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:
  
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';

刚好用到, 取消dblink
3、查看数据库连接
sql> select owner, db_link from dba_db_links;
ower    db_link
public   TEST.US.ORACLE.COM

4、删除数据库连接
先从第三步中查看数据库连接,取得其db_link的名称

sql>drop public database link TEST.US.ORACLE.COM
数据库连接巳丢弃


比如:在一个数据库B中访问数据库A中的表:

1.在数据库B中创建数据库链:
CREATE PUBLIC DATABASE LINK 数据库链接名 CONNECT TO 用户名 identified by 密码 using '连接说明'
其中,连接说明必须为如下格式:
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.10.201)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME=ORCL)
)
)

2.访问链接数据库中的对象的语法:
用户名.数据库对象@数据库链接名

3.查看所有的数据库链接:
select owner,object_name from dba_objects where object_type='DATABASE LINK';

4.例子:
创建一个数据库链接:
CREATE PUBLIC DATABASE LINK DBL_ORCL CONNECT TO province identified by province_pwd
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.10.201)(PORT = 1521))
)
(CONNECT_DATA =
(service_name=ORCL)
)
)';

在B库中执行下面的语句,访问A库中的province.tj_ryxx 表:
select * from province.tj_ryxx@DBL_ORCL;

posted @ 2007-03-28 17:06 张秀兰 阅读(2429) | 评论 (0)编辑 收藏
 

域名转移流程:

request命令
在转入商家提转入request,等待在原注册商确认同意

approve命令
在原注册商同意转出,等待转入注册商info信息

reject命令
在原注册商不同意转出,则停止转移,转移不成功,完成

cancel命令
在原注册商中取消转出,则停止转移,转移不成功,完成

info命令
在转入注册商中读取域名的info信息,保存,转移成功,完成

posted @ 2007-03-01 09:12 张秀兰 阅读(183) | 评论 (0)编辑 收藏
 
真想今天是2月16号:刚刚到家,呵呵!
春节很快也就过完了(DD同学的作为很是让我感动,相信我已经可以接受我们成为好朋友!谢了!),今天是第一天上班,还想着今天应该是可以愉懒愉懒,没想到还是接了上堆的任务.
一年之际在于春,新的一年,新的开始,好好准备已有的感想;好好理理今年的计划;
相信2007不会像是2006毫无收获的一年!
posted @ 2007-02-25 16:10 张秀兰 阅读(271) | 评论 (0)编辑 收藏
 

光阴似箭,一年就剩几天了....
每当这时心灵很是孤独,失落...
人在此地心已回家...
昨晚梦里又梦见了妈妈,思念您
思念是一种让人莫名落泪的力量!

posted @ 2007-02-13 10:23 张秀兰 阅读(166) | 评论 (0)编辑 收藏
 
http://www-128.ibm.com/developerworks/cn/java/l-jsp-eclipse/index.html?n-j-04241#1
posted @ 2007-01-23 16:49 张秀兰 阅读(2141) | 评论 (0)编辑 收藏
 

theserverside.com
infoq.com

javalobby.com

c2.com

javaworld.com
dev2dev.com

dev2dev.com.cn
http://www-128.ibm.com/developerworks

www.hibernate.org
www.spingframework.org
www.opensymphony.com
apache.org

http://joelonsoftware.com/

fixdown.com
7622.com

posted @ 2006-10-24 14:09 张秀兰 阅读(192) | 评论 (0)编辑 收藏
 
转:UNIX常用命令  
http://topic.csdn.net/t/20050115/17/3728514.html
 
I. 第一章   目录及文件操作命令 3   
  A. 1.1   ls 3  
  B. 1.2   pwd 4  
  C. 1.3   cd 4  
  D. 1.4   mkdir 5  
  E. 1.5   rmdir 5  
  F. 1.6   cat 6  
  G. 1.7   head 6  
  H. 1.8         more 6  
  I. 1.9       cp 8  
  J. 1.10   mv 9  
  K. 1.11   rm 9  
  L. 1.12       chmod 9  
  M. 1.13   chown 11  
  N. 1.14   chgrp 11  
  O. 1.16   diff 12  
  P. 1.17   wc 12  
  Q. 1.18   split 13  
  R. 1.19   touch 13  
  S. 1.20   file 14  
  T. 1.21   pack 14  
  U. 1.22   pcat     显示压缩文件 14  
  V. 1.23       unpack 15  
  W. 1.24   find 15  
  X. 1.25   grep 16  
  Y. 1.26   vi 17  
  II. 第二章       设备管理 23  
  A. 2.1   stty 23  
  B. 2.2   tty 24  
  C. 2.3   lp 24  
  D. 2.4           lpstat 24  
  E. 2.5   cancel 25  
  F. 2.6       enable 25  
  G. 2.7       disable 25  
  H. 2.8       sync 26  
  I. 2.9   mount 26  
  J. 2.10   umount 26  
  K. 2.11   tar 26  
  L. 2.12   df 27  
  M. 2.13   du 27  
  III. 第三章   进程管理 28  
  A. 3.1   sleep 28  
  B. 3.2   ps 28  
  C. 3.3   at 28  
  D. 3.4   kill 29  
  IV. 第四章   系统管理和用户管理 30  
  A. 4.1   who 30  
  B. 4.2   whodo 30  
  C. 4.3   passwd 30  
  D. 4.4   logname 30  
  E. 4.5   su 31  
  F. 4.6   time 31  
  G. 4.7   date 31  
  H. 4.8   shutdown 31  
  I. 4.9   fsck 32  
  V. 第五章     通信和邮件 33  
  A. 5.1   wall 33  
  B. 5.2   mesg 33  
  C. 5.3   write 33  
  D. 5.4   mailx 33  
  VI. 第六章   Shell   编程 36  
  VII. 第七章     数学计算命令 39  
  VIII. 附录     UNIX   常用命令简单说明 40


引用例子:
http://topic.csdn.net/t/20050404/20/3908503.html
posted @ 2006-10-13 11:42 张秀兰 阅读(279) | 评论 (0)编辑 收藏
 
转:  
  在JSP中访问数据库大全    
   
          现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建   create   table   test(test1   varchar(20),test2   varchar(20),然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。    
      
          一、jsp连接Oracle8/8i/9i数据库(用thin模式)    
   
   
  testoracle.jsp如下:    
  <%@   page   contentType="text/html;charset=gb2312"%>    
  <%@   page   import="java.sql.*"%>    
  <html>    
  <body>    
  <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();    
  String   url="jdbc:oracle:thin:@localhost:1521:orcl";    
  //orcl为你的数据库的SID    
  String   user="scott";    
  String   password="tiger";    
  Connection   conn=   DriverManager.getConnection(url,user,password);    
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    
  String   sql="select   *   from   test";    
  ResultSet   rs=stmt.executeQuery(sql);    
  while(rs.next())   {%>    
  您的第一个字段内容为:<%=rs.getString(1)%>    
  您的第二个字段内容为:<%=rs.getString(2)%>    
  <%}%>    
  <%out.print("数据库操作成功,恭喜你");%>    
  <%rs.close();    
  stmt.close();    
  conn.close();    
  %>    
  </body>    
  </html>    
   
    二、jsp连接Sql   Server7.0/2000数据库    
   
   
  testsqlserver.jsp如下:    
  <%@   page   contentType="text/html;charset=gb2312"%>    
  <%@   page   import="java.sql.*"%>    
  <html>    
  <body>    
  <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();    
  String   url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";    
  //pubs为你的数据库的    
  String   user="sa";    
  String   password="";    
  Connection   conn=   DriverManager.getConnection(url,user,password);    
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    
  String   sql="select   *   from   test";    
  ResultSet   rs=stmt.executeQuery(sql);    
  while(rs.next())   {%>    
  您的第一个字段内容为:<%=rs.getString(1)%>    
  您的第二个字段内容为:<%=rs.getString(2)%>    
  <%}%>    
  <%out.print("数据库操作成功,恭喜你");%>    
  <%rs.close();    
  stmt.close();    
  conn.close();    
  %>    
  </body>    
  </html>    
   
    三、jsp连接DB2数据库    
   
   
  testdb2.jsp如下:    
  <%@   page   contentType="text/html;charset=gb2312"%>    
  <%@   page   import="java.sql.*"%>    
  <html>    
  <body>    
  <%Class.forName("com.ibm.db2.jdbc.app.DB2Driver   ").newInstance();    
  String   url="jdbc:db2://localhost:5000/sample";    
  //sample为你的数据库名    
  String   user="admin";    
  String   password="";    
  Connection   conn=   DriverManager.getConnection(url,user,password);    
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,  
  ResultSet.CONCUR_UPDATABLE);    
  String   sql="select   *   from   test";    
  ResultSet   rs=stmt.executeQuery(sql);    
  while(rs.next())   {%>    
  您的第一个字段内容为:<%=rs.getString(1)%>    
  您的第二个字段内容为:<%=rs.getString(2)%>    
  <%}%>    
  <%out.print("数据库操作成功,恭喜你");%>    
  <%rs.close();    
  stmt.close();    
  conn.close();    
  %>    
  </body>    
  </html>    
   
    四、jsp连接Informix数据库    
   
   
  testinformix.jsp如下:    
  <%@   page   contentType="text/html;charset=gb2312"%>    
  <%@   page   import="java.sql.*"%>    
  <html>    
  <body>    
  <%Class.forName("com.informix.jdbc.IfxDriver").newInstance();    
  String   url   =    
  "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;    
  user=testuser;password=testpassword";    
  //testDB为你的数据库名    
  Connection   conn=   DriverManager.getConnection(url);    
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    
  String   sql="select   *   from   test";    
  ResultSet   rs=stmt.executeQuery(sql);    
  while(rs.next())   {%>    
  您的第一个字段内容为:<%=rs.getString(1)%>    
  您的第二个字段内容为:<%=rs.getString(2)%>    
  <%}%>    
  <%out.print("数据库操作成功,恭喜你");%>    
  <%rs.close();    
  stmt.close();    
  conn.close();    
  %>    
  </body>    
  </html>    
   
    五、jsp连接Access数据库    
   
   
  <%@page   import="java.sql.*"    
  import   ="java.util.*"    
  import   ="java.io.*"    
  import="java.text.*"    
  contentType="text/html;   charset=gb2312"    
  buffer="20kb"    
  %><%!   int   all,i,m_count;    
  String   odbcQuery;    
  Connection   odbcconn;    
  Statement   odbcstmt;    
  ResultSet   odbcrs;    
  String   username,title,content,work,email,url,time,date;    
  String   datetime;    
  %>    
  <%    
  try{    
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");    
  }catch   (ClassNotFoundException   e)    
  {   out.print   ("驱动程序不存在");    
  }    
  try{    
  odbcconn   =   DriverManager.getConnection("jdbc:odbc:db1");    
  odbcstmt   =   odbcconn.createStatement();    
  odbcQuery="Select   *   From   book   where   datetime>2001-4-26   Order   By   datetime   DESC";    
  odbcrs=odbcstmt.executeQuery(odbcQuery);    
  int   i=0;    
  while   (i<130)   odbcrs.next();    
  while   (odbcrs.next())    
  {    
  //*/////////////////////////显示数据库的内容用于调试程序是用//    
  int   ii;    
  try{    
  try{    
  for   (ii=1;;ii++)    
  out.print   ("<br>Cloumn   "+ii+"   is:   "+odbcrs.getString(ii));    
  }catch   (NullPointerException   e)   {    
  out.print   ("有空的指针");    
  }    
  }catch   (SQLException   e){    
  }    
  }    
  odbcrs.close();    
  odbcstmt.close();    
  odbcconn.close();    
  }catch   (SQLException   e)    
  {   out.print   (e);    
  }    
  %>
posted @ 2006-10-09 15:47 张秀兰 阅读(432) | 评论 (2)编辑 收藏
 

Enumeration enuParaName = null;
        try
        {
            enuParaName = oRequest.getParameterNames();
        }
        catch(Exception e)
        {
        }
        while(enuParaName != null && enuParaName.hasMoreElements())
        {
            String name = enuParaName.nextElement().toString();
            if(name.equalsIgnoreCase("module") || name.equalsIgnoreCase("submitmyform"))
            {
                continue;
            }
            String[] values = oRequest.getParameterValues(name);
//            System.out.println("name:"+name+" valuestr:"+values[0]);
            htDomain.put(name, values[0]);
        }
if(!htDomain.isEmpty())
        {
            for(Enumeration enum = htDomain.keys(); enum.hasMoreElements();)
             {
                 String strDomain = (String)enum.nextElement();
                 String stPassword = (String)htDomain.get(strDomain);
            }
       }

jdk1.4
Map params = new HashMap();
  //获得POST 过来参数设置到新的params中
        Enumeration enuParaName = null;
        try
        {
            enuParaName = oRequest.getParameterNames();
        }
        catch(Exception e)
        {
        }
        while(enuParaName != null && enuParaName.hasMoreElements())
        {
            String name = enuParaName.nextElement().toString();
            String[] values = oRequest.getParameterValues(name);
            String valueStr = "";
            for(int i = 0; i < values.length; i ++)
            {
                valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";               
            }
            if(BaseBean._DEBUG)System.out.println("name:"+name+" valuestr:"+valueStr);
            params.put(name, valueStr);
        }

jdk1.5
Map params = new HashMap();
  //获得POST 过来参数设置到新的params中
  Map reqParams = oRequest.getParameterMap();
  for (Iterator iter = reqParams.keySet().iterator(); iter.hasNext();)
  {
   String name = (String) iter.next();
   String[] values = (String[]) reqParams.get(name);
   String valueStr = "";
   for (int i = 0; i < values.length; i++)
   {
    valueStr = (i == values.length - 1) ? valueStr + values[i]
      : valueStr + values[i] + ",";
   }
   if(BaseBean._DEBUG)System.out.println("name:"+name+" valuestr:"+valueStr);
   params.put(name, valueStr);
  }
posted @ 2006-09-18 15:09 张秀兰 阅读(463) | 评论 (0)编辑 收藏
 
(废话)会议通第二回合让我欢喜让我忧......
(第一回合是从java让我学做asp.net,晕了二三周....)
当然应该是先让我忧.....
一大推的问题就摆在面前..
安装不了...
安装成功,登陆不了...
登陆进去,视频显示不了....
(怎么这么豆腐渣工程??)
原先会议通的服务器都是放在上家那里的,最近上家出了点问题,我们决定自己处理.
(此时,也让我感觉到了求人不如求已呀...)
就这样,我们开始了会议通服务器整顿....
上面的问题也就随之席面而来...

在大家积极猜测下(最主要是在web.config和system.xml文件配置,一些.dll),我们把大部分问题解决了,至少可以面对面(视频)聊了(开会啦).

接下来是一些小BUG处理啦..(结束)

回到点上了,
要这么实现:
在一个页面里直接弹出进入会议体验室,不再让它弹出窗口...
可万万没有想到,会议通服务端就是一直会location一个viewstate!!
我晕呀!昨天花一天的时间试着用form.submit再来location.href行不通.

<iframe src="#" name="mainfrm" width="0" height="0"></iframe>
<form name="Form_Reg" method="post" action="http://netmeeting.71.com/WebMeeting/UserMgr/login.aspx" target="mainfrm">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input id="strMeetId" type="hidden" value="11" name="strMeetId">

<tr  height="36"> 
 <td background="/impage/IM_image/tab_05.jpg" align="center"><input name="strNickName" type="text" value="<%=sUsrName%>" id="strNickName" class="input" style="width:100px;" /></td>
 <td background="/impage/IM_image/tab_05.jpg" align="center"><input type="submit" name="Button1" value="参加会议" id="Button1" style="width:80px;"/></td>
  </tr>
</form>

就在form的target设置iframe名称就搞定了.
iframe学着多运用,其关键时作用不说你也知道,呵呵:)


窄告弹出一个空白页(以下实现不让空白页出来,在本地来一个说明什么的.)
<%
   String stUrl = (String)request.getAttribute("stUrl");
   String stUsrnth = (String)request.getAttribute("usrnth");
   String stPsw = (String)request.getAttribute("psw");
%>
<iframe src="<%=stUrl%>" width="0"
height="0" scrolling="no" frameborder="0" name="mainfrm" id="mainfrm"
onload="parent.location.href='impage/usr/suc_narrow_login.jsp?usrnth=<%=stUsrnth%>&psw=<%=stPsw%>'">
</iframe>

src:目标url设置
onload:实现目标url后本地url
posted @ 2006-09-14 12:00 张秀兰 阅读(383) | 评论 (0)编辑 收藏
 

在eclipse里设置了tomcat插件就可以BUG跟踪了,更快发现BUG,解决BUG

一:当然,在本机要安装上tomcat;
在tomcat安装下conf/server.xml设置;
如:D:/eclipse/Tomcat5.0/conf
................
<Connector
port="9000"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />
..................
<Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>

        <Context path="" reloadable="true" docBase="D:\eclipse\wrk1\epc\epcweb"/>

      </Host>
...........
注意:1. 设置port="9000"//
            2.设置<Context path="" reloadable="true" docBase="D:\eclipse\wrk1\epc\epcweb"/>
                      //整个project工作路径

二:下载tomcat插件 http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-129.html

三:将.zip释放到eclipse的plugins,重新打开eclipse(安装JDK后双击eclipse.exe),在工具栏上出现了start tomcat,stop tomcat,restart tomcat图标
windows----->首选项----->Tomcat  下设置
1.Tomcat version:       选择Tomcat版本
2.Tomcat home:          D:\eclipse\Tomcat5.0     //tomcat的安装路径
3.Context declaration  mode选Server.xml
   其Configuration file:          D:\eclipse\Tomcat5.0\conf\server.xml  //(server.xml路径)
Tomcat 双击下Advanced
Tomcat base:           D:\eclipse\Tomcat5.0       //tomcat的安装路径

点击"restart tomcat"图标,启完后在url上
http://localhost:9000/index.jsp
(在host 添加一条记录127.0.0.1       localhost)
就可以正常访问了,设置断点,也就可以BUG跟踪了。

posted @ 2006-07-07 16:00 张秀兰 阅读(4006) | 评论 (0)编辑 收藏
 

环境变量path和classpath是什么东东
path是您用的操作系统提供的环境变量,
您一定试过在命令行输入一个命令然后它就执行了,很好玩吧。你输入的比如说是〉ffff,
可这个文件明明在D:/****/***/ffff.exe那个路径下,在命令行中,不管在那个路径下输入都能执行呢,
这就是因为,再path中设置了这个路径。
那classpath有什么作用呢?编java程序的时候都知道import的作用吧!
当要用的class,在某一个.jar下是,你需要在编译时引入,jvm自动去找classpath环境变量引入下面的jar包,
这就是classpath环境变量的作用


Path=.;C:\j2sdk1.4.2_05\bin;D:\DownLoads\oracle\bin;D:\DownLoads\oracle\Apache\Perl\5.00503\bin\mswin32-x86;C:\Program Files\Oracle\jre\1.1.7\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;D:\DownLoads;C:\Program Files\Symantec\pcAnywhere\;C:\Program Files\Microsoft SQL Server\80\Tools\BINN

JAVA_HOME=C:\j2sdk1.4.2_05

CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
(Path没有用到JAVA_HOME变量)

posted @ 2006-07-03 17:26 张秀兰 阅读(3963) | 评论 (2)编辑 收藏
 
五个小故事,告诉你遇事不要只看表象。思而后行,行必善焉。

1、 情况不同
一只小猪、一只绵羊和一头乳牛,被关在同一个畜栏里。有一次,牧人捉住小猪,大声号叫,猛烈地抗拒。绵羊和乳牛讨厌的号叫,便说:「他常常捉我们,我们并不大呼小叫。小猪听了回答道:「捉你们和捉我完全是两回事,他捉你们,只是要你们的毛和乳汁,但是捉住我,却是要我的命呢!立场不同、所处环境不同的人,很难了解对方的感受;因此对别人的失意、挫折、伤痛,不宜幸灾乐祸,而应要有关怀、了解的心情。要有宽容的心!


2、 靠自己
小蜗牛问妈妈:为什么我们从生下来,就要背负这个又硬又重的壳呢?
妈妈:因为我们的身体没有骨骼的支撑,只能爬,又爬不快。所以要这个壳的保护!
小蜗牛:毛虫姊姊没有骨头,也爬不快,为什么她却不用背这个又硬又重的壳呢?
妈妈:因为毛虫姊姊能变成蝴蝶,天空会保护她啊。
小蜗牛:可是蚯蚓弟弟也没骨头爬不快,也不会变成蝴蝶他什么不背这个又硬又重的壳呢?
妈妈:因为蚯蚓弟弟会钻土, 大地会保护他啊。
小蜗牛哭了起来:我们好可怜,天空不保护,大地也不保护。
蜗牛妈妈安慰他:「所以我们有壳啊!」我们不靠天,也不靠地,我们靠自己。


3、 鲨鱼与鱼
曾有人做过实验,将一只最凶猛的鲨鱼和一群热带鱼放在同一个池子,然后用强化玻璃隔开,最初,鲨鱼每天不断冲撞那块看不到的玻璃,耐何这只是徒劳,它始终不能过到对面去,而实验人员每天都有放一些鲫鱼在池子里,所以鲨鱼也没缺少猎物,只是它仍想到对面去,想尝试那美丽的滋味,每天仍是不断的冲撞那块玻璃,它试了每个角落,每次都是用尽全力,但每次也总是弄的伤痕累累,有好几次都浑身破裂出血,持续了好一些日子,每当玻璃一出现裂痕,实验人员马上加上一块更厚的玻璃。后来,鲨鱼不再冲撞那块玻璃了,对那些斑斓的热带鱼也不再在意,好像他们只是墙上会动的壁画,它开始等着每天固定会出现的鲫鱼,然后用他敏捷的本能进行狩猎,好像回到海中不可一世的凶狠霸气,但这一切只不过是假像罢了,实验到了最后的阶段,实验人员将玻璃取走,但鲨鱼却没有反应,每天仍是在固定的区域游着它不但对那些热带鱼视若无睹,甚至于当那些鲫鱼逃到那边去,他就立刻放弃追逐,说什么也不愿再过去,实验结束了,实验人员讥笑它是海里最懦弱的鱼。

可是失恋过的人都知道为什么,它怕痛。


4、 神迹
法国一个偏僻的小镇,据传有一个特别灵验的水泉,常会出现神迹,可以医治各种疾病。有一天,一个拄着拐杖,少了一条腿的退伍军人,一跛一跛的走过镇上的马路,旁边的镇民带着同情的回吻说:「可怜的家伙,难道他要向上帝祈求再有一条腿吗??」这一句话被退伍的军人听到了,他转过身对他们说:「我不是要向上帝祈求有一条新的腿,而是要祈求帮助我,叫我没有一条腿后,也知道如何过日子。」试想:学习为所失去的感恩,也接纳失去的事实,不管人生的得与失,总是要让自已的生命充满了亮丽与光彩,不再为过去掉泪,努力的活出自己的生命。


5、 钓竿
有个老人在河边钓鱼,一个小孩走过去看他钓鱼,老人技巧纯熟,所以没多久就钓上了满篓的鱼,老人见小孩很可爱,要把整篓的鱼送给他,小孩摇摇头,老人惊异的问道:「你为何不要?」小孩回答:「我想要你手中的钓竿。」老人问:「你要钓竿做什么?」小孩说:「这篓鱼没多久就吃完了,要是我有钓竿,我就可以自己钓,一辈子也吃不完。」我想你一定会说:好聪明的小孩。错了,他如果只要钓竿,那他一条鱼也吃不到。因为,他不懂钓鱼的技巧,光有鱼竿是没用的,因为钓鱼重要的不在<钓竿>,而在<钓技>有太多人认为自己拥有了人生道上的钓竿,再也无惧于路上的风雨,如此,难免会跌倒于泥泞地上。就如小孩看老人,以为只要有钓竿就有吃不完的鱼,像职员看老板,以为只要坐在办公室,就有滚进的财源。

这方面特别适合于技术开发人员.
当你遇到难解问题,不防换个角度想想,问题可能就迎刃而解,领悟更是多多

posted @ 2006-07-03 16:40 张秀兰 阅读(235) | 评论 (0)编辑 收藏
 
模拟键盘Ctrl-V
window.clipboardData.getData("Text");
posted @ 2006-07-03 14:48 张秀兰 阅读(2913) | 评论 (19)编辑 收藏
 
java调用.dll
编写java程序如:javacall.java
编译java程序,如将javacall.java放到c:\test下(都可以,没有固定) javac javacall.java
(当然你要设置环境变量:path
  设置:   
  我的电脑-属性-高级-环境变量中,有PATH(大小写都  
  可以)这个变量(没有就自己新建立一个)  
  变量名:PATH  
  变量值:javac等程序所在路径.  
  例如我的JDK安装在D:\JDK1.4中,那么我在D:\JDK1.4目录  
  下可以搜索一下javac,得到它的位置:D:\JDK1.4\jdk\bin,  
  现在变量值就可以写成  
  变量值:[   .;D:\JDK1.4\jdk\bin;   ]

或者先设置用户变量,系统变量再调用
在桌面上右键点击“我的电脑”

  然后属性->高级->环境变量 ->系统变量(用户变量也可以)->新建变量名里面输入JAVA_HOME;  

  变量值里面输入D:\JDK1.4\jdk\

  然后再新建一个CLASSPATH

  其值为:
      .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar (最前面的.;一定要写)  
)
生成头文件(javacall.h) javah -classpath "c:\test" javacall (记得要写上路径)
建立新DLL工程如:mycalldll(如放在:C:\Documents and Settings\Administrator\桌面\71info\)
将javacall.h复制到VC工程目录中(如:C:\Documents and Settings\Administrator\桌面\71info\mycalldll\mycalldll\),然后编译,如果编译说找不到jni.h文件,可以将jni.h复制到工程目录中,还可将javacall.h文件中的#include <jni.h>改为#include "jni.h",
将生成的.dll(如C:\Documents and Settings\Administrator\桌面\71info\mycalldll\mycalldll\Debug\mycalldll.dll)复制到C:\j2sdk1.4.2_05\bin则可在eclipse运行了

posted @ 2006-07-03 14:09 张秀兰 阅读(6807) | 评论 (8)编辑 收藏
 

index.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body >

<br>
<a href="<%=gateway.payment.payment.CreateUrl()%>"><img src="images/alipay_bwrx.gif" border="0"></a>

</body>
</html>

alipay_notify.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>

<%request.setCharacterEncoding("gb2312");
   String partner = ""; //partner合作伙伴id(必须填写)
   String privateKey = ""; //partner 的对应交易安全校验码(必须填写)
   String alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify"
     + "&partner="
     + partner
     + "&notify_id="
     + request.getParameter("notify_id");

   //获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
   //如果你的服务器不支持https访问的话,需要用老的接口查询地址了,论坛上会公布
   String responseTxt = gateway.checkURL.checkURL
     .check(alipayNotifyURL);

   Map params = new HashMap();
   //获得POST 过来参数设置到新的params中
   Map requestParams = request.getParameterMap();
   for (Iterator iter = requestParams.keySet().iterator(); iter
     .hasNext();) {
    String name = (String) iter.next();
    String[] values = (String[]) requestParams.get(name);
    String valueStr = "";
    for (int i = 0; i < values.length; i++) {
     valueStr = (i == values.length - 1) ? valueStr + values[i]
       : valueStr + values[i] + ",";
     //valueStr = valueStr + values[i];
    }
    params.put(name, valueStr);
   }
   
   String mysign = com.alipay.util.SignatureHelper.sign(params, privateKey);
   
   //out.println(mysign+"-----"+request.getParameter("sign"));
   if (mysign.equals(request.getParameter("sign")) || responseTxt.equals("true")  ){
    
    out.println("success");
  }
  %>

retrun_url.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>

<%request.setCharacterEncoding("gb2312");
   //String partner = ""; //partner合作伙伴id(必须填写)
   String privateKey = ""; //partner 的对应交易安全校验码(必须填写)
  // String alipayNotifyURL = "http://www.alipay.com/cooperate/gateway.do?service=notify_verify"
   //  + "&partner="
   //  + partner
   //  + "&notify_id="
   //  + request.getParameter("notify_id");

   //获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
   //String responseTxt = gateway.checkURL.checkURL
   //  .check(alipayNotifyURL);
            //由于return url的返回通知,notifyid为空,无法到服务器查询真假,所以只要比对签名就好
   
   
   Map params = new HashMap();
   //获得POST 过来参数设置到新的params中
   Map requestParams = request.getParameterMap();
   for (Iterator iter = requestParams.keySet().iterator(); iter
     .hasNext();) {
    String name = (String) iter.next();
    String[] values = (String[]) requestParams.get(name);
    String valueStr = "";
    for (int i = 0; i < values.length; i++) {
     valueStr = (i == values.length - 1) ? valueStr + values[i]
       : valueStr + values[i] + ",";
     //valueStr = valueStr + values[i];
    }
    params.put(name, valueStr);
   }
   
   String mysign = com.alipay.util.SignatureHelper_return.sign(params, privateKey);
   
   //out.println(mysign+"-----"+request.getParameter("sign"));
   if (mysign.equals(request.getParameter("sign"))  ){
    
    
    if (request.getParameter("trade_status").equalsIgnoreCase("TRADE_FINISHED")){
            // 可以做重定向,也可以用来虚拟物品发货
    }
    
  }

  %>


SignatureHelper.java
package com.alipay.util;

import gateway.md5.Md5Encrypt;

import java.util.ArrayList;

import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;

public class SignatureHelper {

 public static String sign(Map params, String privateKey) {
  Properties properties = new Properties();

  for (Iterator iter = params.keySet().iterator(); iter.hasNext();) {
   String name = (String) iter.next();
   Object value = params.get(name);
   if (value == null) {
    continue;
   }

   if (name == null || name.equalsIgnoreCase("sign")
     || name.equalsIgnoreCase("sign_type")) {
    continue;
   }

   properties.setProperty(name, value.toString());
  }

  String content = getSignatureContent(properties);
  return sign(content, privateKey);
 }

 @SuppressWarnings("unchecked")
 public static String getSignatureContent(Properties properties) {
  StringBuffer content = new StringBuffer();
  List keys = new ArrayList(properties.keySet());
  Collections.sort(keys);

  for (int i = 0; i < keys.size(); i++) {
   String key = (String) keys.get(i);
   String value = properties.getProperty(key);
   content.append((i == 0 ? "" : "&") + key + "=" + value);
  }

  return content.toString();
 }

 public static String sign(String content, String privateKey) {
  if (privateKey == null) {
   return null;
  }
  String signBefore = content + privateKey;
  // System.out.print(Md5Encrypt.md5(signBefore));
  return Md5Encrypt.md5(signBefore);

 }
}


SignatureHelper_return.java
package com.alipay.util;

import gateway.md5.Md5Encrypt;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;

public class SignatureHelper_return {

 public static String sign(Map params, String privateKey) {
  Properties properties = new Properties();

  for (Iterator iter = params.keySet().iterator(); iter.hasNext();) {
   String name = (String) iter.next();
   Object value = params.get(name);
   if (value == null) {
    continue;
   }

   if ( name.equalsIgnoreCase("sign")
     || name.equalsIgnoreCase("sign_type")) {
    continue;
   }

   properties.setProperty(name, value.toString());
  }

  String content = getSignatureContent(properties);
  return sign(content, privateKey);
 }

 @SuppressWarnings("unchecked")
 public static String getSignatureContent(Properties properties) {
  StringBuffer content = new StringBuffer();
  List keys = new ArrayList(properties.keySet());
  Collections.sort(keys);

  for (int i = 0; i < keys.size(); i++) {
   String key = (String) keys.get(i);
   String value = properties.getProperty(key);
   content.append((i == 0 ? "" : "&") + key + "=" + value);
  }

  return content.toString();
 }

 public static String sign(String content, String privateKey) {
  if (privateKey == null) {
   return null;
  }
  String signBefore = content + privateKey;
  // System.out.print(Md5Encrypt.md5(signBefore));
  return Md5Encrypt.md5(signBefore);

 }
 
 
 
}


checkURL.java
 
package gateway.checkURL;
import java.net.*;
import java.io.*;


public class checkURL {
    /**
     * 对字符串进行MD5加密
  * @param myUrl
     *
     * @param url
     *
     * @return 获取url内容
     */
  public static String check(String urlvalue ) {
 
   String inputLine = "";
  try
  {
   URL url = new URL(urlvalue);
   
   HttpURLConnection urlConnection  = (HttpURLConnection)url.openConnection();
   
   BufferedReader in  = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
  
   String stTemp = "";
         while((stTemp = in.readLine()) != null)
         {
            System.out.println(stTemp);
            inputLine = inputLine + stTemp;
         }
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  return inputLine;
 }


  }

Md5Encrypt.java
/**
 * Alipay.com Inc. Copyright (c) 2004-2005 All Rights Reserved.
 *
 * <p>
 * Created on 2005-7-9
 * </p>
 */
 package gateway.md5;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5加密算法
 */
public class Md5Encrypt {
    /**
     * 对字符串进行MD5加密
     *
     * @param text 明文
     *
     * @return 密文
     */
    public static String md5(String text) {
        MessageDigest msgDigest = null;

        try {
            msgDigest = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            throw new IllegalStateException("System doesn't support MD5 algorithm.");
        }

        msgDigest.update(text.getBytes());

        byte[] bytes = msgDigest.digest();

        byte   tb;
        char   low;
        char   high;
        char   tmpChar;

        String md5Str = new String();

        for (int i = 0; i < bytes.length; i++) {
            tb = bytes[i];

            tmpChar = (char) ((tb >>> 4) & 0x000f);

            if (tmpChar >= 10) {
                high = (char) (('a' + tmpChar) - 10);
            } else {
                high = (char) ('0' + tmpChar);
            }

            md5Str += high;
            tmpChar = (char) (tb & 0x000f);

            if (tmpChar >= 10) {
                low = (char) (('a' + tmpChar) - 10);
            } else {
                low = (char) ('0' + tmpChar);
            }

            md5Str += low;
        }

        return md5Str;
    }
}


payment.java
package gateway.payment;

import java.util.*;


public class payment {
 
 
  

 public static String CreateUrl()
      {  
 
    Date out_trade_no=new Date();
    String paygateway    = "https://www.alipay.com/cooperate/gateway.do?"; //'支付接口
    String service = "create_direct_pay_by_user";
    String partner   = "";  //partner合作伙伴ID(必填)
    String sign_type       =   "MD5";
    String subject = "订单号:" + out_trade_no;  //subject  商品名称
    String body = "交易地点总价包含邮费";  //body   商品描述
    String price      = "100";    //price   商品单价   0.01~50000.00
    String show_url        =   "www.alipay.com";
    String quantity        =   "1";
    String payment_type    =   "1";
    String logistics_type  =   "EXPRESS";//logistic为物流信息
    String logistics_fee   =   "2";
    String logistics_payment  =   "SELLER_PAY";
    String logistics_type_1  =   "EMS";
    String logistics_fee_1   =   "4";
    String logistics_payment_1  =   "SELLER_PAY";
    String seller_email    =    "";             //卖家账号(必填)
    String key             =    "";              //partner账户的支付宝安全校验码(必填)
    String notify_url      =    "http://10.2.17.136:8081/new_jsp/alipay_notify.jsp";//"alipay_notify.jsp"文件的地址

   
  
    String[] Oristr ={ "service="+service, "partner=" + partner, "subject=" + subject, "body=" + body, "out_trade_no=" + out_trade_no, "price=" + price, "show_url=" + show_url, "quantity=" + quantity, "payment_type=" + payment_type, "logistics_type=" + logistics_type, "logistics_fee=" + logistics_fee, "logistics_payment=" + logistics_payment, "logistics_type_1=" + logistics_type_1, "logistics_fee_1=" + logistics_fee_1, "logistics_payment_1=" + logistics_payment_1, "seller_email=" + seller_email, "notify_url=" + notify_url };
               
        Arrays.sort(Oristr);//Sorts the specified array of objects into ascending order
                     //according to the natural ordering of its elements.
      
          String prestr="";
         
          for (int i = 0; i < Oristr.length; i++)
             {
                 if (i==Oristr.length-1)
                 {
                     prestr = prestr + Oristr[i] ;
                 }
                 else
                 {
                     prestr = prestr + Oristr[i] + "&";
                 }
                 
             }

           prestr = prestr + key;

             //生成Md5摘要;
             String sign = gateway.md5.Md5Encrypt.md5(prestr);
            
             //构造支付Url;
             String parameter = "";
             parameter = parameter + paygateway;
             for (int i = 0; i < Oristr.length; i++)
             {
                 parameter = parameter + Oristr[i] + "&";              
             }

             parameter = parameter + "sign=" + sign + "&sign_type=" + sign_type;

             //返回支付Url;
             return parameter;

   
 
      }
}

注意:
包的位置,
参数排序是以字母的排序排的

资料由支付宝转载:
下载地址:http://www.blive.cn/liuz/download/new_jsp_xuni.rar

posted @ 2006-06-30 16:56 张秀兰 阅读(14027) | 评论 (6)编辑 收藏
 
摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问。但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从而不能访问HTTPS站点。本文在简要介绍JSSE的基础上提出了两种解决该问题的方法。

  引言

  过去的十几年,网络上已经积累了大量的Web应用。如今,无论是整合原有的Web应用系统,还是进行新的Web开发,都要求通过编程来访问某些Web页面。传统的方法是使用Socket接口,但现在很多开发平台或工具如.NET、Java或PHP等都提供了简单的Web访问接口,使用这些接口很容易编程实现与Web应用系统的交互访问,即使要访问那些采用了HTTPS而不是HTTP的Web应用系统。

  HTTPS,即安全的超文本传输协议,采用了SSL技术,被广泛使用以保证Web应用系统的安全性。访问Web应用的编程接口大多封装了SSL,使得访问HTTPS和访问HTTP一样简单。但是很多中、小型应用系统或基于局域网、校园网的应用系统所使用的证书并不是由权威的认证机构发行或者被其验证,直接使用这些编程接口将不能访问HTTPS。

  本文将在简要介绍JSSE的基础上,详细描述使用JSSE访问HTTPS的方法,主要说明了如何访问带有未经验证证书的HTTPS站点。

  JSSE简介

  Java安全套接扩展 (Java Secure Socket Extension, JSSE)是实现Internet安全通信的一系列包的集合。它是一个SSL和TLS的纯Java实现,可以透明地提供数据加密、服务器认证、信息完整性等功能,可以使我们像使用普通的套接字一样使用JSSE建立的安全套接字。JSSE是一个开放的标准,不只是Sun公司才能实现一个JSSE,事实上其他公司有自己实现的JSSE。

  在深入了解JSSE之前,需要了解一个有关Java安全的概念:客户端的TrustStore文件。客户端的TrustStore文件中保存着被客户端所信任的服务器的证书信息。客户端在进行SSL连接时,JSSE将根据这个文件中的证书决定是否信任服务器端的证书。

  JSSE中,有一个信任管理器类负责决定是否信任远端的证书,这个类有如下的处理规则:

  ⑴ 果系统属性javax.net.sll.trustStore指定了TrustStore文件,那么信任管理器就去jre安装路径下的lib/security/目录中寻找并使用这个文件来检查证书。

  ⑵ 果该系统属性没有指定TrustStore文件,它就会去jre安装路径下寻找默认的TrustStore文件,这个文件的相对路径为:lib/security/jssecacerts。

  ⑶ 如果 jssecacerts不存在,但是cacerts存在(它随J2SDK一起发行,含有数量有限的可信任的基本证书),那么这个默认的TrustStore文件就是cacerts。

  直接使用类HttpsURLConnection访问Web页面

  Java提供了一种非常简洁的方法来访问HTTPS网页,即使用类HttpsURLConnection、URL等。这几个类为支持HTTPS对JSSE相关类做了进一步的封装,例子如下所示:

URL reqURL = new URL("https://www.sun.com" ); //创建URL对象
HttpsURLConnection httpsConn = (HttpsURLConnection)reqURL.openConnection();

/*下面这段代码实现向Web页面发送数据,实现与网页的交互访问
httpsConn.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(huc.getOutputStream(), "8859_1");
out.write( "……" );
out.flush();
out.close();
*/

//取得该连接的输入流,以读取响应内容
InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream();

//读取服务器的响应内容并显示
int respInt = insr.read();
while( respInt != -1){
 System.out.print((char)respInt);
 respInt = insr.read();
}

  这段代码能够正常执行,然而把访问的URL改为https://login.bjut.edu.cn时,程序将抛出异常javax.net.ssl.SSLException,这是由于https://login.bjut.edu.cn站点的安全证书不被JSSE所信任。根据JSSE简介中对信任管理器的分析,一种解决这个问题的方法是按照信任管理器的处理规则,把站点的证书放到证书库文件jssecacerts中,或者把证书存放到任一TrustStore文件中,然后设置系统属性javax.net.sll.trustStore指向该文件。另一种解决方法则是自己实现信任管理器类,让它信任我们指定的证书。下面分别介绍这两种方法。

  将证书导入到TrustStore文件中

  Java提供了命令行工具keytool用于创建证书或者把证书从其它文件中导入到Java自己的TrustStore文件中。把证书从其它文件导入到TrustStore文件中的命令行格式为:

  keytool -import -file src_cer_file –keystore dest_cer_store

  其中,src_cer_file为存有证书信息的源文件名,dest_cer_store为目标TrustStore文件。

  在使用keytool之前,首先要取得源证书文件,这个源文件可使用IE浏览器获得,IE浏览器会把访问过的HTTPS站点的证书保存到本地。从IE浏览器导出证书的方法是打开“Internet 选项”,选择“内容”选项卡,点击“证书…”按钮,在打开的证书对话框中,选中一个证书,然后点击“导出…”按钮,按提示一步步将该证书保存到一文件中。最后就可利用keytool把该证书导入到Java的TrustStore文件中。为了能使Java程序找到该文件,应该把这个文件复制到jre安装路径下的lib/security/目录中。

  这样,只需在程序中设置系统属性javax.net.sll.trustStore指向文件dest_cer_store,就能使JSSE信任该证书,从而使程序可以访问使用未经验证的证书的HTTPS站点。

  使用这种方法,编程非常简单,但需要手工导出服务器的证书。当服务器证书经常变化时,就需要经常进行手工导出证书的操作。下面介绍的实现X509证书信任管理器类的方法将避免手工导出证书的问题。
X509证书信任管理器类的实现及应用

  在JSSE中,证书信任管理器类就是实现了接口X509TrustManager的类。我们可以自己实现该接口,让它信任我们指定的证书。

  接口X509TrustManager有下述三个公有的方法需要我们实现:

  ⑴ oid checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException

  该方法检查客户端的证书,若不信任该证书则抛出异常。由于我们不需要对客户端进行认证,因此我们只需要执行默认的信任管理器的这个方法。JSSE中,默认的信任管理器类为TrustManager。

  ⑵ oid checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException

  该方法检查服务器的证书,若不信任该证书同样抛出异常。通过自己实现该方法,可以使之信任我们指定的任何证书。在实现该方法时,也可以简单的不做任何处理,即一个空的函数体,由于不会抛出异常,它就会信任任何证书。

  ⑶ X509Certificate[] getAcceptedIssuers()

  返回受信任的X509证书数组。

  自己实现了信任管理器类,如何使用呢?类HttpsURLConnection似乎并没有提供方法设置信任管理器。其实,HttpsURLConnection通过SSLSocket来建立与HTTPS的安全连接,SSLSocket对象是由SSLSocketFactory生成的。HttpsURLConnection提供了方法setSSLSocketFactory(SSLSocketFactory)设置它使用的SSLSocketFactory对象。SSLSocketFactory通过SSLContext对象来获得,在初始化SSLContext对象时,可指定信任管理器对象。下面用一个图简单表示这几个JSSE类的关系:


图1 部分JSSE类的关系图

  假设自己实现的X509TrustManager类的类名为:MyX509TrustManager,下面的代码片断说明了如何使用MyX509TrustManager:

//创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = {new MyX509TrustManager ()};
SSLContext sslContext = SSLContext.getInstance("SSL","SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());

//从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();

//创建HttpsURLConnection对象,并设置其SSLSocketFactory对象
HttpsURLConnection httpsConn = (HttpsURLConnection)myURL.openConnection();
httpsConn.setSSLSocketFactory(ssf);

  这样,HttpsURLConnection对象就可以正常连接HTTPS了,无论其证书是否经权威机构的验证,只要实现了接口X509TrustManager的类MyX509TrustManager信任该证书。

  小结

  本文主要介绍了在HTTPS的证书未经权威机构认证的情况下,访问HTTPS站点的两种方法,一种方法是把该证书导入到Java的TrustStore文件中,另一种是自己实现并覆盖JSSE缺省的证书信任管理器类。两种方法各有优缺点,第一种方法不会影响JSSE的安全性,但需要手工导入证书;第二种方法虽然不用手工导入证书,但需要小心使用,否则会带来一些安全隐患。
posted @ 2006-06-29 16:13 张秀兰 阅读(11037) | 评论 (9)编辑 收藏
 
Use SQL for ODBC 1.0 是一款通过ODBC执行SQL软件。
软件特点:
本软件可以保存连接配置。
本软件可以执行多条SQL。
本软件可以在SQL中嵌入命令。
本软件可以导出Excel数据。
本软件包含数据转换工具。
本软件可以查看数据库的表及表项目。


网址:
http://sqlforodbc.nease.net/
http://sqlforodbc.icpcn.com

下载地址
http://sqlforodbc.nease.net/usqlsetup.exe
http://sqlforodbc.go3.icpcn.com/usqlsetup.exe
posted @ 2006-06-22 17:14 张秀兰 阅读(424) | 评论 (0)编辑 收藏
 

ORACLE数据库常用操作

对于DBA来讲,熟悉ORACLE的常用操作方法有很重要的作用,下面列举几个方面的:

一、 Oracle 数据库的几个关闭方法

对于ORACLE来讲,关闭的方法有三个:

在SVRMGRL下可以输入如下语句,就可关闭数据库,但每个语句都有自己的作用,有的语句还必须慎重使用

1、shutdown normal (从字面就可理解这是一个用正常的方式来关闭数据库。)

2、shutdown immediate (立即方式关闭数据库。)

当执行shutdown immediate时,数据库并不立即关闭,而是在Oracle执行完内部的必要的工作后才关闭,shutdown immediate可以完成shutdown不能对数据库关闭的操作。建议DBA们常用此方法关闭数据库

3、shutdown abort (直接关闭数据库)

这个停止的方法不推荐,因为对于正在访问数据库的会话会被突然终止,可能会造成数据库的数据丢失,并且如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

举例说明:

1、停Oracle

# su – oracle

$ lsnrctl stop

$ svrmgrl

>connectinternal

>shutdown immediate

>exit

相应的启动Oracle的方法如下:

# su – oracle 以ORACLE用户身份进入

$ svrmgrl 打开ORACLE的管理器

>connectinternal 建立库的连接

>startup 启动数据库

>exit 退出管理器

$ lsnrctl start 启动监听

$lsnrctl status 查看监听的状态

二、对 Oracle 8i 数据库服务器操作的一些相关命令和方法:

1、sar此命令可以帮助查看哪些缓冲区高速缓存使用情况,让我们决定哪些需要增加,哪些需要减少:

sar -b:我们可用它查看缓冲区高速缓存的活动;

sar -w:我们可用它查看内存交换活动;

sar -u:我们可用它查看CPU利用情况;

sar -r:我们可用它查看内存利用情况;

sar -p:报告Solaris内存分页活动,此命令是:vmstat命令的一部份功能,

比如下面命令用于每5秒显示10次分页活动的概要情况:
$ sar -p 5 10

% vmstat 5

此命令将显示系统每5秒钟做的事的概要,包括进程、虚拟内存、磁盘、分页和CPU的活动情况。

2、iostat,可监控磁盘的活动情况

3、swap,可监控交换空间的情况

posted @ 2006-06-22 16:55 张秀兰 阅读(1029) | 评论 (0)编辑 收藏
 

以下是转帖:

Tomcat 的数据库连接池设置与应用

 

1.将数据库驱动程序的JAR文件放在Tomcat的 common/lib 中;

2.在server.xml中设置数据源,以MySQL数据库为例,如下:
在<GlobalNamingResources> </GlobalNamingResources>节点中加入,
      <Resource
      name="jdbc/DBPool"
      type="javax.sql.DataSource"
      password="root"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      username="root"
      url="jdbc:mysql://127.0.0.1:3306/test"
      maxActive="4"/>
   属性说明:name,数据源名称,通常取”jdbc/XXX”的格式;
            type,”javax.sql.DataSource”;
            password,数据库用户密码;
            driveClassName,数据库驱动;
            maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连
                     接将被标记为不可用,然后被释放。设为0表示无限制。
            MaxActive,连接池的最大数据库连接数。设为0表示无限制。
            maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示
                     无限制。

3.在你的web应用程序的web.xml中设置数据源参考,如下:
  在<web-app></web-app>节点中加入,
  <resource-ref>
    <description>MySQL DB Connection Pool</description>
    <res-ref-name>jdbc/DBPool</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
 </resource-ref>
  子节点说明: description,描述信息;
               res-ref-name,参考数据源名字,同上一步的属性name;
               res-type,资源类型,”javax.sql.DataSource”;
               res-auth,”Container”;
               res-sharing-scope,”Shareable”;

4.在web应用程序的context.xml中设置数据源链接,如下:
  在<Context></Context>节点中加入,
  <ResourceLink
   name="jdbc/DBPool" 
   type="javax.sql.DataSource" 
   global="jdbc/DBPool"/>
   属性说明:name,同第2步和第3步的属性name值,和子节点res-ref-name值;
             type,同样取”javax.sql.DataSource”;
             global,同name值。
 
至此,设置完成,下面是如何使用数据库连接池。
1.建立一个连接池类,DBPool.java,用来创建连接池,代码如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBPool {
    private static DataSource pool;
    static {
         Context env = null;
          try {
              env = (Context) new InitialContext().lookup("java:comp/env");
              pool = (DataSource)env.lookup("jdbc/DBPool");
              if(pool==null) 
                  System.err.println("'DBPool' is an unknown DataSource");
               } catch(NamingException ne) {
                  ne.printStackTrace();
          }
      }
    public static DataSource getPool() {
        return pool;
    }
}

2.在要用到数据库操作的类或jsp页面中,用DBPool.getPool().getConnection(),
获得一个Connection对象,就可以进行数据库操作,
最后别忘了对Connection对象调用close()方法,
注意:这里不会关闭这个Connection,而是将这个Connection放回数据库连接池。

也是可以直接连的:
如连接oracle
public class ConnectionProvider
{
 public static DataSource ds;

 static
 {
  DriverAdapterCPDS cpds = new DriverAdapterCPDS();

  try
  {
   cpds.setDriver("oracle.jdbc.driver.OracleDriver");
  }
  catch (ClassNotFoundException e)
  {
   String msg = "Could not find driver in the classpath ";
   System.out.println(msg);
   throw new RuntimeException(msg);
  }
               
  cpds.setUrl("jdbc:oracle:thin:@192.168.0.167:1521:epcora");
  cpds.setUser("71c");
  cpds.setPassword("123456");

  Jdbc2PoolDataSource tds = new Jdbc2PoolDataSource();
  tds.setConnectionPoolDataSource(cpds);
  tds.setDefaultMaxActive(20);
  tds.setDefaultMaxWait(50);
  
  ds = tds;
 }
}
这样就不用在server.xml,web.xml设置了。

还是若用eclipse跟踪bug,设置连接数据库则须在“Java构建路径”-“库”里添加上
数据库驱动程序的JAR文件即可。

posted @ 2006-06-22 15:18 张秀兰 阅读(4798) | 评论 (0)编辑 收藏
 
以下是转贴:
谈谈Java语言的垃圾收集器


   垃圾收集器是Java语言区别于其他程序设计语言的一大特色。它把程序员从手工回收内存空间的繁重工作中解脱了出来。在SUN公司的Java程序员(Java Programmer)认证考试中,垃圾收集器是必考的内容,一般最多可以占总分值的6%左右。但是由于SUN公司的Java Programming Language SL-275 课程的标准教材中,对有关垃圾收集器的内容只做了非常简单的介绍,而另外的一些关于Java技术的书籍,比如《Java 2 核心技术》(Core Java 2)、《Java编程思想》(Thinking in Java)、《精通Java 2》等等,里面关于垃圾收集器的内容也几乎没有,或者只是简单地提两句,所以很多参加Java Programmer认证考试的中国考生,在垃圾收集器这一部分的得分都为0分(笔者曾认识一位SUN公司授权的中国Java培训班的老师,其考试总分为89%,但垃圾收集器的部分竟然也为0分)。鉴于此,笔者总结了这个垃圾收集器的专题,希望对广大Java技术的爱好者和准备认证考试的考生们有所帮助。

我们知道,许多程序设计语言都允许在程序运行期动态地分配内存空间。分配内存的方式多种多样,取决于该种语言的语法结构。但不论是哪一种语言的内存分配方式,最后都要返回所分配的内存块的起始地址,即返回一个指针到内存块的首地址。

当已经分配的内存空间不再需要时,换句话说当指向该内存块的句柄超出了使用范围的时候,该程序或其运行环境就应该回收该内存空间,以节省宝贵的内存资源。

在C,C++或其他程序设计语言中,无论是对象还是动态配置的资源或内存,都必须由程序员自行声明产生和回收,否则其中的资源将消耗,造成资源的浪费甚至死机。但手工回收内存往往是一项复杂而艰巨的工作。因为要预先确定占用的内存空间是否应该被回收是非常困难的!如果一段程序不能回收内存空间,而且在程序运行时系统中又没有了可以分配的内存空间时,这段程序就只能崩溃。通常,我们把分配出去后,却无法回收的内存空间称为"内存渗漏体(Memory Leaks)"。

以上这种程序设计的潜在危险性在Java这样以严谨、安全著称的语言中是不允许的。但是Java语言既不能限制程序员编写程序的自由性,又不能把声明对象的部分去除(否则就不是面向对象的程序语言了),那么最好的解决办法就是从Java程序语言本身的特性入手。于是,Java技术提供了一个系统级的线程(Thread),即垃圾收集器线程(Garbage Collection Thread),来跟踪每一块分配出去的内存空间,当Java 虚拟机(Java Virtual Machine)处于空闲循环时,垃圾收集器线程会自动检查每一快分配出去的内存空间,然后自动回收每一快可以回收的无用的内存块。

垃圾收集器线程是一种低优先级的线程,在一个Java程序的生命周期中,它只有在内存空闲的时候才有机会运行。它有效地防止了内存渗漏体的出现,并极大可能地节省了宝贵的内存资源。但是,通过Java虚拟机来执行垃圾收集器的方案可以是多种多样的。

下面介绍垃圾收集器的特点和它的执行机制:

垃圾收集器系统有自己的一套方案来判断哪个内存块是应该被回收的,哪个是不符合要求暂不回收的。垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用System. gc 方法来"建议"执行垃圾收集器,但其是否可以执行,什么时候执行却都是不可知的。这也是垃圾收集器的最主要的缺点。当然相对于它给程序员带来的巨大方便性而言,这个缺点是瑕不掩瑜的。

垃圾收集器的主要特点有:

1.垃圾收集器的工作目标是回收已经无用的对象的内存空间,从而避免内存渗漏体的产生,节省内存资源,避免程序代码的崩溃。

2.垃圾收集器判断一个对象的内存空间是否无用的标准是:如果该对象不能再被程序中任何一个"活动的部分"所引用,此时我们就说,该对象的内存空间已经无用。所谓"活动的部分",是指程序中某部分参与程序的调用,正在执行过程中,尚未执行完毕。

3.垃圾收集器线程虽然是作为低优先级的线程运行,但在系统可用内存量过低的时候,它可能会突发地执行来挽救内存资源。当然其执行与否也是不可预知的。

4.垃圾收集器不可以被强制执行,但程序员可以通过调用System. gc方法来建议执行垃圾收集器。

5.不能保证一个无用的对象一定会被垃圾收集器收集,也不能保证垃圾收集器在一段Java语言代码中一定会执行。因此在程序执行过程中被分配出去的内存空间可能会一直保留到该程序执行完毕,除非该空间被重新分配或被其他方法回收。由此可见,完全彻底地根绝内存渗漏体的产生也是不可能的。但是请不要忘记,Java的垃圾收集器毕竟使程序员从手工回收内存空间的繁重工作中解脱了出来。设想一个程序员要用C或C++来编写一段10万行语句的代码,那么他一定会充分体会到Java的垃圾收集器的优点!

6.同样没有办法预知在一组均符合垃圾收集器收集标准的对象中,哪一个会被首先收集。

7.循环引用对象不会影响其被垃圾收集器收集。

8.可以通过将对象的引用变量(reference variables,即句柄handles)初始化为null值,来暗示垃圾收集器来收集该对象。但此时,如果该对象连接有事件监听器(典型的 AWT组件),那它还是不可以被收集。所以在设一个引用变量为null值之前,应注意该引用变量指向的对象是否被监听,若有,要首先除去监听器,然后才可以赋空值。

9.每一个对象都有一个finalize( )方法,这个方法是从Object类继承来的。

10.finalize( )方法用来回收内存以外的系统资源,就像是文件处理器和网络连接器。该方法的调用顺序和用来调用该方法的对象的创建顺序是无关的。换句话说,书写程序时该方法的顺序和方法的实际调用顺序是不相干的。请注意这只是finalize( )方法的特点。

11.每个对象只能调用finalize( )方法一次。如果在finalize( )方法执行时产生异常(exception),则该对象仍可以被垃圾收集器收集。

12.垃圾收集器跟踪每一个对象,收集那些不可到达的对象(即该对象没有被程序的任何"活的部分"所调用),回收其占有的内存空间。但在进行垃圾收集的时候,垃圾收集器会调用finalize( )方法,通过让其他对象知道它的存在,而使不可到达的对象再次"复苏"为可到达的对象。既然每个对象只能调用一次finalize( )方法,所以每个对象也只可能"复苏"一次。

13.finalize( )方法可以明确地被调用,但它却不能进行垃圾收集。

14.finalize( )方法可以被重载(overload),但只有具备初始的finalize( )方法特点的方法才可以被垃圾收集器调用。

15.子类的finalize( )方法可以明确地调用父类的finalize( )方法,作为该子类对象的最后一次适当的操作。但Java编译器却不认为这是一次覆盖操作(overriding),所以也不会对其调用进行检查。

16.当finalize( )方法尚未被调用时,System. runFinalization( )方法可以用来调用finalize( )方法,并实现相同的效果,对无用对象进行垃圾收集。

17.当一个方法执行完毕,其中的局部变量就会超出使用范围,此时可以被当作垃圾收集,但以后每当该方法再次被调用时,其中的局部变量便会被重新创建。

18.Java语言使用了一种"标记交换区的垃圾收集算法"。该算法会遍历程序中每一个对象的句柄,为被引用的对象做标记,然后回收尚未做标记的对象。所谓遍历可以简单地理解为"检查每一个"。

19.Java语言允许程序员为任何方法添加finalize( )方法,该方法会在垃圾收集器交换回收对象之前被调用。但不要过分依赖该方法对系统资源进行回收和再利用,因为该方法调用后的执行结果是不可预知的。

通过以上对垃圾收集器特点的了解,你应该可以明确垃圾收集器的作用,和垃圾收集器判断一块内存空间是否无用的标准。简单地说,当你为一个对象赋值为null并且重新定向了该对象的引用者,此时该对象就符合垃圾收集器的收集标准。

判断一个对象是否符合垃圾收集器的收集标准,这是SUN公司程序员认证考试中垃圾收集器部分的重要考点(可以说,这是唯一的考点)。所以,考生在一段给定的代码中,应该能够判断出哪个对象符合垃圾收集器收集的标准,哪个不符合。下面结合几种认证考试中可能出现的题型来具体讲解:

Object obj = new Object ( ) ;

我们知道,obj为Object的一个句柄。当出现new关键字时,就给新建的对象分配内存空间,而obj的值就是新分配的内存空间的首地址,即该对象的值(请特别注意,对象的值和对象的内容是不同含义的两个概念:对象的值就是指其内存块的首地址,即对象的句柄;而对象的内容则是其具体的内存块)。此时如果有 obj = null; 则obj指向的内存块此时就无用了,因为下面再没有调用该变量了。

请再看以下三种认证考试时可能出现的题型:



程序段1:

1.fobj = new Object ( ) ;

2.fobj. Method ( ) ;

3.fobj = new Object ( ) ;

4.fobj. Method ( ) ;

问:这段代码中,第几行的fobj 符合垃圾收集器的收集标准?

答:第3行。因为第3行的fobj被赋了新值,产生了一个新的对象,即换了一块新的内存空间,也相当于为第1行中的fobj赋了null值。这种类型的题在认证0考试中是最简单的。

程序段2:

1.Object sobj = new Object ( ) ;

2.Object sobj = null ;

3.Object sobj = new Object ( ) ;

4.sobj = new Object ( ) ;

问:这段代码中,第几行的内存空间符合垃圾收集器的收集标准?

答:第1行和第3行。因为第2行为sobj赋值为null,所以在此第1行的sobj符合垃圾收集器的收集标准。而第4行相当于为sobj赋值为null,所以在此第3行的sobj也符合垃圾收集器的收集标准。

如果有一个对象的句柄a,且你把a作为某个构造器的参数,即 new Constructor ( a )的时候,即使你给a赋值为null,a也不符合垃圾收集器的收集标准。直到由上面构造器构造的新对象被赋空值时,a才可以被垃圾收集器收集。

程序段3:

1.Object aobj = new Object ( ) ;

2.Object bobj = new Object ( ) ;

3.Object cobj = new Object ( ) ;

4.aobj = bobj;

5.aobj = cobj;

6.cobj = null;

7.aobj = null;

问:这段代码中,第几行的内存空间符合垃圾收集器的收集标准?

答:第7行。注意这类题型是认证考试中可能遇到的最难题型了。

行1-3分别创建了Object类的三个对象:aobj,bobj,cobj

行4:此时对象aobj的句柄指向bobj,所以该行的执行不能使aobj符合垃圾收集器的收集标准。

行5:此时对象aobj的句柄指向cobj,所以该行的执行不能使aobj符合垃圾收集器的收集标准。

行6:此时仍没有任何一个对象符合垃圾收集器的收集标准。

行7:对象cobj符合了垃圾收集器的收集标准,因为cobj的句柄指向单一的地址空间。在第6行的时候,cobj已经被赋值为null,但由cobj同时还指向了aobj(第5行),所以此时cobj并不符合垃圾收集器的收集标准。而在第7行,aobj所指向的地址空间也被赋予了空值null,这就说明了,由cobj所指向的地址空间已经被完全地赋予了空值。所以此时cobj最终符合了垃圾收集器的收集标准。 但对于aobj和bobj,仍然无法判断其是否符合收集标准。

总之,在Java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:

1.给对象赋予了空值null,以下再没有调用过。

2.给对象赋予了新值,既重新分配了内存空间。

最后再次提醒一下,一块内存空间符合了垃圾收集器的收集标准,并不意味着这块内存空间就一定会被垃圾收集器收集。
posted @ 2006-06-22 12:10 张秀兰 阅读(319) | 评论 (0)编辑 收藏
 
eclipse有很多插件可以用;
前两天用了一个打包.jar可执行插件,感觉真的很不错,所有的packege都已写入MANIFEST.MF
下载地址http://sourceforge.net/project/showfiles.php?group_id=115990

当然先要在eclipse plugins导入net.sf.fjep.fatjar_0.0.23(也即net.sf.fjep.fatjar_0.0.23.zip)
(下载路径:
http://fjep.sourceforge.net/)
也就可在eclipse中右击选择"Build Fat Jar"了
最主要一点就是选择Main-Class,点击"Browse"选择
生成的.jar(名称没有限制)在该工作区下;可以把该.jar copy到任何一路径下执行
执行命令格式:
cd d:\test (切换到.jar存放路径 d:)
java -jar epc.jar(.jar名称)
或者直接双击,也可得到结果
posted @ 2006-06-05 12:57 张秀兰 阅读(6124) | 评论 (5)编辑 收藏
 
Copyright © 张秀兰 Powered by: 博客园 模板提供:沪江博客