<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 25,  comments - 25,  trackbacks - 0
      2005年9月7日
    公司里傳著的故事:兔子狼和老虎
    2006-04-15 14:36:53
      

    和朋友聊天,經常說到在法國公司里的管理,侃起來玩笑多了。參加法國商會的企業活動,發現是啊個個長得都差不多,優點毛病也都像,忍不住的時候跟在場的同胞心照不宣對臉笑:“咱們一個德行!”

    下面講一個聽來的故事:某君做管理老是郁悶,和老外上司的溝通反正就是一種擰巴的感覺,其人反復捫心自問:“我的法語不好?”,“為什么沒跟老板對上眼兒?” “昨兒老板大會上表揚我的工作,怎么今兒就來了個績效低劣的評語?是我英文聽走了耳朵?”“沒準兒是我有病了?”(注意:這時候的健康反應是:此君該去拜訪心理醫生了)一日,此君郵箱里收到一短信“別跟你自己過不去了,笑一笑吧。”打開附件,讀罷,一個人在辦公室仰天大笑。故事這樣寫:
    兔子跟街上走著,迎面碰上了老狼。老狼伸手就給他一大嘴巴:“讓你丫不戴帽子”。
    兔子很郁悶地回家了,弄一帽子戴著。
    第二天又碰上老狼了,又挨了一大嘴巴,“讓你丫戴帽子”。   
    如是幾次,總挨打。兔子想,這么老挨打不是個事兒啊,不行,我得找老虎投訴去。 
    剛到老虎家門口,就聽老虎在屋里說話。  
    “你也不能老這么蠻不講理打兔子阿,回頭兔子找我投訴來,我也不好罩著你啊。好歹咱面子上得過得去,我教你一招。 下回你見著兔子,跟他說:給我弄點兒洗衣服的來。他給你拿肥皂來,你就打他一頓的,說我要的是洗衣粉,誰讓你拿肥皂。他拿洗衣粉來,你也能打,說我要洗衣粉,誰讓你拿肥皂。

    要不然你跟他說,去,給我找個妞兒來。他給你找個胖的,你打他一頓說我要瘦的;給你找個瘦的,你也打一頓,說我要胖的。這樣不結了,你也能打他,我面子上也能說得過去。”
    兔子一聽,得,咱也別投訴了,回家吧。
    第二天,兔子在街上又撞上老狼。老狼大喝一聲:去,給我找點兒洗衣服的來。   
    兔子不慌不忙:你是要洗衣粉阿,還是要肥皂啊?   
    老狼一聽,嗯?有一手啊。又說:去,給我找個妞兒來。  
    兔子還是不慌不忙:你是要胖的啊,還是瘦的?  
    老狼一聽勃然大怒,伸手就給兔子一個大嘴巴:“讓你丫不戴帽子!”

    ?記得講完這個故事的時候,在座的朋友不少在老法的公司里打工多年,評論踴躍,最先的講的是:法國人就是這樣,你學著作狼吧。(前一句俺不同意,后一句嚇壞了俺)。有的說:別偏見了,哪國人哪家外企里都有好的和差的。有一個說的最服氣:不管是法國人日本兒美國人,包括國企,民企,是人在一起做事做公司就免不了有類似的事兒。想想看,要是沒事兒到哪兒找飯碗你”

    沒錯,我覺得什么事都可以積極地看。這個故事也一樣,換個方法讀,可以很好玩兒。

    這么說吧:你覺得你就是那兔子,而且沒有當狼的本事和心思(別想著當狼,魔高一尺道高一丈!做人這條線得守得住!),那你也不用去琢磨胖妞兒還是瘦妞兒洗衣粉還是肥皂。上班沒勁還不想著辭職?你就是共產主義教育下的蹲班生,真的相信世道上從來就有救世主?三十六計呀。炒一回自己上司的魷魚感覺多帶勁,用不著一個人郁悶恨不得找個小布人兒當你老板天天狠命往上面扎針兒。下課下崗,天一下子塌得下來嗎?積極的看這是開始一場新的旅行,可能有很多的好看和驚喜。不過我還要叮囑你一句,離開狼的時候,別忘了教育狼:依法履行用人單位中止勞動合同應負的補償責任,《勞動法》里面寫的你的權益不是放在銀盤子上面捧給你的,那得你自己去拿到。后一句不是我說,是法國人雨果說。

    你要是個作狼那層位置的(我聲明自己堅信大多數人本質上不是狼),當引以為戒。作管理用不著成天琢磨怎么讓你的下屬臣服。別忘了下屬那么多人很可能比你更熟悉客戶和市場,經常有你所不具有的聰明,你不如去琢磨怎么讓你的下屬和團隊開心和充滿激情,做大生意都得要這一群人的打拼才有成功。信任和善待最為,大棒子下從來沒有出色的創造。你老是讓人家想著今天戴帽子明天不戴帽子,搞得人人膽戰心驚,你自己怎么會得到管理業績?搞不好你就是那個全體下屬都把兔子狼和老虎的故事在網上傳,而你是唯一人家不給發的主兒。可憐!

    你知道你的位子是老虎,那得看清楚這么當老虎危矣。我看你還是別老盯著漂亮的英文法文報告吧。要知道真實情況不完全在那里面,有的時候完全不在。最好不時地下山溜達會兒,學學中國的康熙皇上微服私訪。對公司管理人電腦里傳這類兔子老虎狼的故事,你得有一手,你應該每回都想辦法知道這些。用狼用狗你短時效過得好過得去,一旦山里頭狼多了,你自己也就不好當王了。所以法國人說“笑到最后才是笑得最好。”還要記住,美國通用電氣韋爾奇老領導說過:管理人哪怕業績好,做人不行(原文是價值觀念與公司不同道),也絕不能提拔和久留!聽韋爾奇的話,用老領導的招兒:得人就得財,丟人就丟財,如果你的管理團隊的下屬都跟兔子似的跑了,就給他們的績效管理和個人晉升扣分數和扣獎金。而且勸你也來個自下而上定期對管理層的不記名民意調查,了解兔子們那一層對你的管理人的看法,那樣兔子們有話語權就會信任擁戴老虎你了。現在有英特網,這招兒快而靈。

    ?聽說兔子狼和老虎的故事最早是從培訓課堂里傳出來的,自己不脛而走,在電腦網絡里滿天飛。一定有各種有趣的講述版本。

    昨晚讀到一個叫Pascal? Guignard 的法國人評論法國歷史上的一個故事: 1638年5月14日,Saint-Cyran先生被捕。 “在Saint-Cyran 的思想里有一個人內心自由的永不妥協的觀念,它會摧毀任何一個社會。這至少是黎希留(當時1638年的法國“總理”)在盧浮宮里接見他的時候立刻就感覺到的。” (摘自《游蕩的影》,作者Pascal? Guignard,2002年法國貢古爾文學獎)。

    在法文中“societe”指“社會”,也指“公司”。

    posted @ 2006-04-19 08:59 子玉 閱讀(482) | 評論 (0)編輯 收藏

    -jar參數運行應用時classpath的設置方法

     
    ZealLi 2005-04-28 10:20 于 JAVA/C++ , 3314 字 |  + 1 - 0   English
    轉載請保留本文原始鏈接:http://www.zeali.net/blog/entry.php?id=15
    你是否在使用java -jar參數運行打包好的jar應用程序的時候發現應用程序無法找到classpath下設置好的第三方類庫的內容?無論怎么設置classpath參數都無濟于事,總是會報ClassNotFound的錯誤?那么本篇帖子可以幫助你擺脫煩惱 :)

    當用java -jar yourJarExe.jar來運行一個經過打包的應用程序的時候,你會發現如何設置-classpath參數應用程序都找不到相應的第三方類,報ClassNotFound錯誤。實際上這是由于當使用-jar參數運行的時候,java VM會屏蔽所有的外部classpath,而只以本身yourJarExe.jar的內部class作為類的尋找范圍。

    **解決方案**

    一 BootStrap class擴展方案

    Java 命令行提供了如何擴展bootStrap 級別class的簡單方法.
    -Xbootclasspath:     完全取代基本核心的Java class 搜索路徑.
                                       不常用,否則要重新寫所有Java 核心class
    -Xbootclasspath/a: 后綴在核心class搜索路徑后面.常用!!
    -Xbootclasspath/p: 前綴在核心class搜索路徑前面.不常用,避免
                                       引起不必要的沖突.

    語法如下:
     (分隔符與classpath參數類似,unix使用:號,windows使用;號,這里以unix為例)
     java -Xbootclasspath/a:/usrhome/thirdlib.jar: -jar yourJarExe.jar

    二 extend class 擴展方案

    Java exten class 存放在{Java_home}\jre\lib\ext目錄下.當調用Java時,對擴展class路徑的搜索是自動的.總會搜索的.這樣,解決的方案就很簡單了,將所有要使用的第三方的jar包都復制到ext 目錄下.

    三 User class擴展方案

    當使用-jar執行可執行Jar包時,JVM將Jar包所在目錄設置為codebase目錄,所有的class搜索都在這個目錄下開始.所以如果使用了其他第三方的jar包,一個比較可以接受的可配置方案,就是利用jar包的Manifest擴展機制.
    步驟如下:

     1.將需要的第三方的jar包,復制在同可執行jar所在的目錄或某個子目錄下. 比如:jar 包在 /usrhome/yourJarExe.jar 那么你可以把所有jar包復制到/usrhome目錄下或/usrhome/lib 等類似的子目錄下.

     2.修改Manifest 文件

     在Manifest.mf文件里加入如下行

     Class-Path:classes12.jar lib/thirdlib.jar

     Class-Path 是可執行jar包運行依賴的關鍵詞.詳細內容可以參考 http://java.sun.com/docs/books/tutorial/ext/index.html


    以上三種方法推薦第一種,擴展性好,操作起來也最方便.
    另外編寫自己的ClassLoader,來動態載入class,是更加復雜和高級技術.限于篇幅,不贅述.有興趣了解可以去google一下custom classloader

    Java的安全機制隨不同的JDK版本有不同的變化,會影響很多核心CLASS,比如Thread,所以很多大型商業軟件,要求JDK的版本很嚴格.部分原因也在此.這也要求在發布自己編寫的應用時候,不管大小,都要說明開發和測試的JDK版本.


    本文所述方法測試基于j2sdk 1.4.2_04-b05

    ----------------------------------------------------------------------------------------------

    附:背景知識

    自JDK 1.2以后,JVM采用了委托(delegate)模式來載入class.采用這種設計的原因可以參考http://java.sun.com/docs/books/tutorial/ext/basics/load.html

    歸納來講:是基于JVM sandbox(沙盒)安裝模型上提供應用層的可定制的安全機制.


    Java虛擬機(JVM)尋找Class的順序

    1. Bootstrap classes

    屬于Java 平臺核心的class,比如java.lang.String等.及rt.jar等重要的核心級別的class.這是由JVM Bootstrap class loader來載入的.一般是放置在{java_home}\jre\lib目錄下

    2. Extension classes

    基于Java擴展機制,用來擴展Java核心功能模塊.比如Java串口通訊模塊comm.jar.一般放置在{Java_home}\jre\lib\ext目錄下

    3. User classes

    開發人員或其他第三方開發的Java程序包.通過命令行的-classpath或-cp,或者通過設置CLASSPATH環境變量來引用.JVM通過放置在{java_home}\lib\tools.jar來尋找和調用用戶級的class.常用的javac也是通過調用tools.jar來尋找用戶指定的路徑來編譯Java源程序.這樣就引出了User class路徑搜索的順序或優先級別的問題.

     3.1 缺省值:調用Java或javawa的當前路徑(.),是開發的class所存在的當前目錄
     3.2 CLASSPATH環境變量設置的路徑.如果設置了CLASSPATH,則CLASSPATH的值會覆蓋缺省值
     3.3 執行Java的命令行-classpath或-cp的值,如果制定了這兩個命令行參數之一,它的值會覆蓋環境變量CLASSPATH的值
     3.4 -jar 選項:如果通過java -jar 來運行一個可執行的jar包,這當前jar包會覆蓋上面所有的值.換句話說,-jar 后面所跟的jar包的優先級別最高,如果指定了-jar選項,所有環境變量和命令行制定的搜索路徑都將被忽略.JVM APPClassloader將只會以jar包為搜索范圍.
    有關可執行jar有許多相關的安全方面的描述,可以參考http://java.sun.com/docs/books/tutorial/jar/ 來全面了解.

    這也是為什么應用程序打包成可執行的jar包后,不管你怎么設置classpath都不能引用到第三方jar包的東西了.

    posted @ 2006-01-04 13:45 子玉 閱讀(618) | 評論 (0)編輯 收藏
    一位股壇高手寫給虧錢的股民朋友的信!

    多年以來,我一直是網上默默的看客。從不發表文章,也不回貼。這其中有我打字速度太慢的原因,更主要的是我認為論壇中常有高人出沒。自己那點東西,不值得到處張揚,以免遺笑大方。我更愿意以學習的態度上網。近來看了許多談論股市的文章。感到現在許多股民朋友的狀態,如同在戰場上打得暈頭轉向的敗兵,被對手打得失魂落魄,垂頭喪氣,毫無斗志。許多人失去了清醒的頭腦和判斷力。人生百態,在這里表現得如此充分,令人不敢想象。痛苦流涕的、賭咒發誓的、氣病住院的、忍氣吞聲的、夫妻散伙的;絕望的、憤怒的、自殺的、林林總總什么都有;“腐敗論”、“賭博論”、“吸毒論”、“騙子論”大行其道,政府與證監會、證監會主席成了這種怒氣與情緒的發泄對象和失敗責任的唯一承擔者。在我看來,所有這些現象的發生,雖然都有這樣或那樣的理由,從總體上看不過是失敗以后的情緒宣泄(嚴肅的理論研討文章除外)。如果任由這種情緒宣泄狀態發展,將使我們失去最基本的判斷力,從而使我們離真理越來越遠。 考慮再三,覺得有必要寫一篇文章,來提醒一部分股民朋友保持清醒、看清本質。若能達此目的,到2005年行情結束的時候,股市中會多一些勝利的股民,這也算我做了一份功德。我也以此文來回報這些年來在網上寫了大量文章的股民(我從那些文章中得到了豐富的知識與智慧,而從未回貼,我真心的感謝他們)下面我就結合我自己的一些經歷,談談我的觀點和對未來的看法,寫上幾段與股民朋友交流。在我看來,要想在股戰中取勝,就必須解決“觀念”、“方法”、“人的自身修養”這三個股民主觀方面的問題。至于“股市”(戰場環境)這個客觀方面的問題則不是散戶的能力所能解決的,你只能去適應(這就是現實你不得不面對)。也不在此文討論范圍,而且由于篇幅的原因,在此我側重談“觀念”這一問題。

      1、股市如戰場,股民要學會用戰爭的觀念來看股戰中的一切問題。轉變觀念、它有利于你跟上形勢的發展,看清問題的本質。有一句話說得好,“換個角度看地球,世界會變得不一樣。”如果你把這句話套用在股市中來看股市,就會發現,股票市場與你平常的感覺上的差別。比如股市中一個常見的現象“造假”,這是股民深惡痛絕的東西,紛紛對此口誅筆伐。但它總是伐而不絕,這是為什么呢?讓我們試著用戰爭的觀念來看這一問題。在戰場上,互為對手的雙方常常用假消息、假信號、假動作等手段來迷惑和欺騙對方,以期達到使對方被騙失誤、出現漏洞,從而保證己方戰役或戰術方面目標的實現。在股票市場上,散戶資金與集團資金、機構與機構、機構與散戶是互為對手的各方。為了達到各自的目的,欺騙與反欺騙是常有的事,這也是股市規律之一。同理,股票的上漲與下跌在很多情況下,它也是因為一些利益集團的需要。(有人說股市無規律,那是不懂的人說的,別信)對于散戶股民來說最要緊的不是去抱怨,而是應當把它當做戰場環境的變化,盡快去學習掌握和利用這一規律,以提高自己的生存能力,你說是不是? 再比如,股市中“賺錢與虧錢”的問題。許多股民朋友目光死訂著自己的帳戶,只知道“炒”字,好象股市中參與各方(中字頭的大機構、私募基金、開放式基金、封閉式基金、上市公司、證券公司、咨詢公司、證券媒體、軟件公司、分析師、散戶等等)都是靠“炒”賺錢。其實不然,股市中各利益團體賺錢的手段多種多樣,粗略的歸納一下就有“炒”、“圈”、“騙”、“挪”、“配”、“稅”、“費”、“增”等等。如果細分,僅是一個“騙”字就可以分出幾十種。正是因為股市中利益主體的多樣性,賺錢方式的多樣性,決定了在股戰中,戰略、戰術的多樣性和復雜性。在實戰中為了達到“配”的目的,經常會“串”起各方力量,使用上“騙”、“炒”的手段這也是常事。反過來你虧錢也不一定就虧在一個“炒”字上,很有可能在“騙”、在“配”、在“費”上,也虧了不少的錢。如果你能通過擴大看問題的視野,更新看問題的觀念,你將來在股戰中預防虧損的能力就會加強,所使用的技戰術手段也會變化,會有更多的選擇,會更接近勝利。

      2、能使股民在股戰中多打勝仗的道理,才是最大的道理。 請朋友們想一想,人們在各種場合表達對政府的不滿,罵證監會無能、股市不公平、黑暗等等。其理由也相當多,有道理沒有?我認為有道理。該不該罵?我認為該罵。可是不該我們散戶去罵。為什么?因為這世上沒有無緣無故的愛,沒有無緣無故的恨,什么事情都有前因后果,任何事情都可以說出一大串道理。如果你這樣做了,不僅偏離了賺錢這一主題,而且也解決不了問題。除了使自己有一種出氣的快感之外,你能得到什么?它能使你的賬戶上的資金增加嗎?它能改變現狀嗎?它能使你保持清醒的頭腦看清問題的本質嗎?它能提高你的實戰能力嗎?我看不能。既然不能,這種費力不討好的事情,為什么還要去做呢?做為散戶股民,應該學會放棄一些本不應該自己去考慮的事情。交給別人去做,這就叫不在其位、不謀其政,各司其職。從而集中有限的時間與精力,去多考慮2005年的股戰該怎么去打?以什么樣的狀態去打?這樣一些實際問題。千萬不要做空談誤國,空談誤已的事情。牢牢記住這句話:“股民在股戰中多打勝仗,發展和壯大自己才是最大的道理”。在股市上,一切工作圍繞這一中心轉。

      3、是人都會過幾道坎,切不可輕言放棄。我是一位93年入市的成都股民。剛開始時的幾年日子過得還算不錯,股市上輸贏不大。我用業余時間,擺地攤、賣吼貨、逐步積累起來的錢開了一家食品批發部(用了差不多十年時間)。單位上的工作也沒有放棄,而且還被提為中層干部。家也有了,孩子也有了。這對于一個從小出生于貧困家庭的30歲年輕人來說也算是比較完美吧。可好景不長,也不知是鬼使還神差,先是我在成都市組織的一次公開招干考試中過關斬將,最終考了第一名,可沒去成(原因嘛、當然是沒有背景咯)。緊接著自己的批發部開始虧損,我只好把它關掉。我是學商企管的,在單位上我管理著一家公司。在怎樣開發市場和管理公司方面與主管領導發生了激烈的沖突,眼看著不得勢了。那些原來信誓旦旦的部下也紛紛反水。我知道自己再留在這個做事的人不多、混飯的人多的群體中已沒有什么實際意義。一紙辭職書,辭了公司的管理工作。人們不知道個中原由、不理解我的想法。以前那些熱情的熟面孔都盡量回避我,熱鬧的門庭很快就冷了下來。那個現實,那個感受真是無法用語言來描述。很快潛伏的家庭矛盾就表面化了。結果是某一天我回到家里發現,除了幾件舊家俱,人沒有了,存款沒有了。我氣得是鐵青著臉,一言不發,在那個房間里站了半天,腦子一片空白,這竟然是一個男人勤奮十來年的結局。這世上還有公道嗎?特別是經過幾個法庭回合的較量,我任然沒有拿回一分屬于自己的錢,這種憤怒的感覺尤其明顯。我是一個性格剛強的人,從小到大還沒吃過這么大的虧。我想到了走極端,我知道那會是一個魚死網破的結局。值得慶幸的是,隨著時間的推移,理智逐步使我放棄了那些想法回復到正常的狀態。過了這么多年,現在想起來還可以清析的感覺到那年發生的一系列事情。金錢、官位、家庭在一瞬間都沒有了。對于我的人生之路來說,的確是一道巨大的坎。現在巨額虧損的股民,其實跟我當年一樣,都是面臨著人生之路上的一道巨大的坎。將來怎么辦?當時我手上已經沒有錢了,只有一輛每天騎的摩托車,還可以變賣。雖然自己有多年經商的經驗,可這本錢太少了也不好做啊。1997年、我經過深思熟慮之后,毅然決定拿著賣摩托車的兩萬多元錢踏進股市。準備從股票市場中殺出一條血路來,重新找回我那失去的第一桶金。我用八仟塊錢買回一臺電腦,安裝上錢龍軟件。剩余的一萬多元錢全部放到股市上。制定了一個五年計劃,決心要搞清楚做股票的來龍去脈,爭取掌握一技之長。接下來是四年多窮居鬧市無人問的日子。我完全沉靜在股市這個海洋之中,與外界的交往幾乎斷絕。凡是能買到的、找到的股市方面的書籍、我都找來看。大量的實戰、統計、分析、總結。再實戰、再總結的過程。看股票、分析股票成了我唯一的愛好。我自己提出一個個的問題,一個個假設,然后去驗證,并且不斷的去實戰。功夫不負有心人,幾年下來,我終于摸索出一整套發現、跟蹤、伏擊集團資金的方法。同時也形成了一些與報刊、電視上完全不同的股市觀念。賬戶上的資金在經過多次起伏之后開始穩步增長長。到了2001年原來的五年計劃提前完成。我開始利用這一專長少量的對外服務,帶了幾名會員。結果是不僅是逃脫了大跌,還在鞍山信托的反抽行情中賺了1塊多錢。可別小看這1塊多錢,就在我們賺這一塊錢的時間里大盤跌去了三百多點。對于一個整天泡在股市里的小股民,這是多么值得高興的事啊。隨后在2002年的“6.24”行情中,我不僅準確判斷了頭部、順利落袋為安,而且還在成都的中信、漢唐、東方等好幾家證券營業部的講評會上告訴大家“這是頭部,一定會跌的,時間三個月以上。”可在那時,各類媒體和分析師狂熱的鼓燥做多的環境之下,我的聲音是那么的渺小。一個毫無名氣的人,誰會理你呢?又不是正規的分析師。不要說別人不信,就是我當時帶的幾個會員也有不信的。其中有兩位,我坐在他們的旁邊督促著把票賣了,還給他們講了半天為什么要賣的道理。第二天在輿論的影響下,又奮不顧身的沖了進去,最后給套得死死的,唉、輿論的力量…唉、不可救藥的人…。雖然當年我的收益很好(超過30%)但我有一種深深的孤獨感,沒有什么談股票的朋友,又沒有與股民交流的平臺。我覺我不應該去這種場合。在證券營業部有許多分析師對我這類的民間人士帶有深深的敵意。曾經還發生過演講講到半途被分析師搶走話筒的事情。后來在現場股民的強烈要求下,才很不情愿的還到我的手中,讓我把話講完。雖然我在各營業部的演講受到了股民的熱烈歡迎。例如在漢唐的演講,時間差不多二小時。我那不帶講稿,完全立足于實戰的新觀念、一目了然地新戰法,深深地吸引了他們。幾百人把大廳坐得滿滿的,沒有嘈雜的聲音,我完全可以不用話筒講話。演講結束的時候,股民朋友用熱烈的掌聲來回報我,還遞來許多寫著各種問題、鼓勵和感謝之類話的字條。我也去聽過別的“名人”或分析師的演講,其間的差別讓我著實感動了一陣子。但我還是決定不再出去演講,自己應該靜下心來,立足于“打”,在股戰中用實力打出名堂。以后在2003年的熊市行情中再創佳績,以30%的戰績被《成都商報》評為“成都市十大股市英雄之一”,還給了個名號叫“斗莊勇士”。當然我自己始終將自己定位于“股戰精兵”。在當年受報社邀請參加了一次“股民英雄與股民的見面會”。在發言中我大膽判斷“行情的最終目標應該會突破6 .24的高點”結果當場還被某位首席分析師譏諷為“沒有專業水準”。我想隨后的實戰,可能已經讓他明白了什么是“專業水準”。 2004年的行情大家都看到了,并不好打,輸的人特別多。就連“東吳證券杯”實盤大戰的參賽者也輸得很慘。從公布的數據來看,只有5%的人有收獲,5%的平盤,90%的人虧損。而我今年的成績到目前為止已接近40%,我認為我已經完成了任務,知足了。 回想這七、八年來所走過的路,所取得的這些成績。真有一種“輕舟已過萬重山”的感覺。如果當年我沒有邁過那道坎,結局可能就會不一樣了。我把這些寫出來,是想告戒那些面臨困境的股民朋友,特別是那些輸了50%以上的股民朋友。你現在可能面臨一道巨大的坎,勇敢的翻過去吧,你會看到另一片光明的世界。如果你真覺得這道坎太高,翻不過去,也許我能給你一些幫助,切不可輕言放棄。

      4、散戶敗得很慘,正規軍也不輕松。四年的熊市行情,使散戶敗得很慘。從許多公布的數據來看90%的虧損率,說明問題的嚴重性。同時也說明了這四年的股戰打得非常慘烈,只有經歷了這四年股戰的人才能真正理解它。幾年下來,輸錢在70%、80%的人大有人在,我知道有一大戶,200多萬元的資金,7塊多的價位,套在st鞍—工上,至今沒有辦法。2003年11月,我去《成都商報》值守熱線,有一股民打進電話,訴說自己在股市中輸掉了2個鋪面一套住房。至今只能居住在母親家里,心里非常絕望,不知道怎么辦。還有一股民把自己下崗的錢和姐姐買房子的錢一共十幾萬全部投進了股市,至今只剩3萬多塊。那個急啊,真象熱鍋上的螞蟻。他看了很多股票方面的書,喜歡短炒,只關心30分鐘、60分鐘K線圖。向我討教有沒有什么短線絕招,我告訴他沒有。短線是高手做的事,你沒這個能力,而且心態也不好。我的都是慢藥,解決不了你的急癥。我認識的人里邊,輸錢最多的是一位女士,幾年下來輸掉了500萬,現在還在股市戰斗,也是唯一的在那么多輸錢的人里邊心態特好的人(我想可能是股市把人給磨煉出來了吧)。諸如此類的例子還有很多,我可以輕易舉出幾十個來。散戶是這個慘樣,那么正規軍又怎么樣呢? 在我看來,正規軍也不輕松。當年在股市上咤叱風云的主力部隊之一“中經開”(集團軍級的)不是被打得灰飛煙滅嗎?當初打下的地盤還不是被別人接管子嗎?還有南方證券(集團軍級)不是也被接管了嗎?還有湘財證券、大連證券、閩發證券、德隆證券以及私募基金中的這個系、那個系。它們那一個不是曾經在股市上戰功卓著,而最后又倒在這個股市上的。如果細細的統計一下家數,這個數目一定不少,損失的資金那一定也是個天文數字。就是那些還未倒下的正規軍,也是傷痕累累,血流遍地。你看看那些裝備精良、實力雄厚的封閉式基金,那些在股市上混戰多年的有地頭蛇之稱的地方性證券公司,整個行業虧損2000多億,就是它們遭受重創的證明。 如果這場熊市中的股戰只是一邊倒的戰爭,那么我都勸你敢緊離開股市。因為在一邊倒的戰爭中你根本沒有機會(就像美國對伊拉克一樣)。但是如果你細細想來,這場四年熊市之戰并不是一邊倒的戰爭。殺敵三千還自損八百呢,股民的損失固然很大,正規軍的損失也是非常大的。正規軍的錢,雖然來源多種多樣,但其中大部分都是國有資產。你說說真正應該著急的是誰?而且這批正規軍在我國證券業的對外開放中還擔負著守疆拓土的責任。政府不想辦法讓它們壯大起來,行嗎?真要愚蠢地等到外國證券公司進來,然后再一個一個的吞掉?有人認為,中國現在全盤西化。股市的漲跌市場說了算,政府不管了。我看說這話的人也太不了解中國了。這么多的國有資金在股市上,這么多的國有企業在依托股市生存。中國股市是個“政策市”這是由國家的體制決定了的,誰來管都只能是“政策市”,除非改朝換代(政策市本質上也是利益問題)。政府不僅會管,而管起來的力度會非常大,看看歷史上的幾次政策性行情,你就會明白。5.19行情只不過是最近的一次。據我觀察分析,真正能炒動大盤的大主力資金其實在2003年的非典行情中就悄然進場。隨后發動的攻擊6.24高點的行情就是它們的杰作之一。只不過由于國家的調控,使行情走向了反面,但這并不重要,重要的是大主力已經進場了。我這兩年的收益之所以會這么好,其中很主要的一條,就是看清了主力機構的動向,所以處處主動,它們發動的幾次行情,我都參與了(我買股票從來不追熱點,賣出時基本上都會是熱點),而且進出機會都把握得很好。對于未來的行情我充滿了希望。請朋友們記住:“真正的政策行情,從來都是大行情”。打仗要知已知彼,不僅要看清楚自己和對手的情況,還要能預見到對手未來的變化。炒股也是同理,這也是我寫這段的用意所在。

      5、客觀認識股市中的基本問題學會獨立思考。人們在股戰中節節敗退,垂頭喪氣。然后又被各種層出不窮的文章、觀點、理論、股評搞得暈頭轉向,叫大家左右為難。什么“股權”問題、“公平”問題、“圈錢”問題、周期理論、波浪理論、箱體突破、主升浪、賭博論、騙子論、吸毒論等等不一而足。當你從報上、電視上、接受這觀點理論的時候,很容易被對方說服,國為它們看起來都有些道理。但是,如果你把這些問題拿過來,用辯證的觀點在自己頭腦中研究一番,結果就大不一樣了。 首先我們來看“騙子論”,持這種觀點的人認為中國股市,從一開始就是一個大騙局,騙走了幾千萬股民上萬億的血汗錢。其實不然,且不說這世界上到底有沒有這種人,能夠一開始就設計一套時間長達十多年的、能騙走上萬億金錢的騙術和完善的計劃。就算這世上有這種能人,難道他的智慧已達到了能使幾千萬股民(大多數都有是有文化、有一定經濟基礎的人)在長達十幾年的時間甘愿被騙而看不清其本來面目的地步?這幾千萬人中就沒有一個智商高的?這可能嗎?用辯證的眼光來看,這種絕對性的結論,本身就否定了自己,所以說是站不住腳的。股票市場出現問題肯定有它的客觀原因,想用走極端的方法來了解它是不行的。在股票市場上,影響股價上下變化的主要因素是人們非常關心的問題,因為它決定了人們選股思路和方向。在一般的教科書和分析師的股評中,告訴大家選股票看股本大小,業績好壞,行業情況,有沒有題材等等。絕大多數散戶也是尋著這個思路去做的。在我看來,這是不對的,或都說不全對。為什么呢?實戰經驗豐富的股民都知道,分析市場上的股票,最少要考慮兩種情況,一種叫做“有莊”,一種叫“無莊”。當一只股票處于無莊狀態的情況下,影響股價上下波動的主要矛盾就是前面所說的股本大小,業績好壞,行業地位等因素。可是,如果這只股票被某一集團資金看上,并且已經進場(就是我們常說的做莊),情況就發生了變化 。原來影響股價的主要矛盾就成了次要矛盾,而主力莊家的中、遠期戰略目標,就上升為主要矛盾。莊家會用手中的資金和籌碼去推高或打壓股價,以保證其戰略目標的實現。所以我常對許多股民朋友說做股票,股本的大小,根本就不需要我們考慮,那是莊家的事情。它沒有足夠的資金它是不敢做莊的。而我們散戶主要還是應該多考慮這只股票是有莊還是無莊?它處于什么狀態?什么階段?是高位還是低位?趨勢如何?等等問題。

      一句話要抓主要矛盾,還要認真分析主次矛盾的變化,才能看清問題。 股市中有一有趣現象大家都知道,就是分析師老去評論、預測行情,又預測不準。這是為什么呢?其實,除了行情的復雜多變的原因以外還有一原因。就是大部分分析師、包括全國百分之七、八十的股民在分析股市的時候,無非依托上證指數、均線理論、波浪理論、黃金分割法、周期理論、K線形態等等這些分析手段。在人們的智商大致相當的前提下,其結論也是相當的或者說是趨勢同的。這種趨同的結論對于主力機構來說是非常了解的,機構與大眾歷來互為對手,它不可能按照大眾的思路來發動行情。結果在實戰中,行情常常出乎人們包括分析師們的預料。早在幾年前我就發現這一問題,并且放棄了對上證指數的跟蹤。轉而用其它手段來觀察大盤(我發現十幾年來在人們心目占地位很高的上證批數,其實經常被機構利用,不能準確反映大盤實際情況),在實戰中放棄了經典理論(不是說它不科學而是跟據實戰情況的一種“變”)。自己從不同的角度搭建了一套系統,解決了許多實戰中的問題。比如識別建倉的問題、真假的問題、出貨的問題等等,這里就不一一細說。總之從實戰的角度來說效果很好。我歷來主張,做股票要學會獨立思考。不能人云亦云,否則會吃虧的。聽消息炒股票,在股市中非常普遍,許多人為此付出了慘重的代價。這方面的例子太多,可能許多人都有切身的體會。在這我就不用舉例,我可以告訴大家的是,我做股票十來年碰見的人里邊,真正靠消息賺了許多錢的不會超過5人,這也是符合實戰情況的。你想想,股市如戰場,在戰場上誰愿意把自己的真實戰略意圖告訴對手,除非他是想找死。我想真正的戰略意圖他連自己的親媽都不會說,別去做那樣的夢了。所以多年來我堅持一條,絕不聽消息做股票。我每天堅持看報、看電視、上網,從主渠道得到各種信息,自己再加以鑒別。也是因為如此,我從來沒有上過這類當。

      當然股市中還有許多基本問題。比如短線、中線、長線的問題,主升浪問題、放量出貨與放量吸籌的問題、箱體運動與趨向運動的問題、漲停與跌停的問題等等。我的看法是,這些基本問題在不同的人、講出的同樣的話中,其標準、含義完全不同。做股票的人如果自己決,不搞清楚,你將很難做好股票。比如“短線”,在我的觀念里是指莊票的主升浪,或指一只熊票的弱極反彈。而人們習慣的短線在我這里劃分為“超短”。這與報刊、電視上的完全不一樣。但我的更實用、更接近實戰。而“主升浪”這一概念也有嚴格的定義,跟許多股評文章中隨便那只票一漲,就鼓吹主升浪來了是兩碼事。而且我非常反感那種來不來就說主升浪開始的人。這類人還很多,顯然是不懂。但他們在電視上那么一鼓吹,又不知多少人被套在里面。“機構建倉”這一詞也是報刊中常見的用語。有許多人,只要見股票經過一波下跌,在相對低位放出巨量并且拉出那么一兩根陽線(或者是小通道),就大力鼓吹是“機構建倉”,建議大家跟進。結果是過一段時間后股價又下了一個臺階。這種建議害了不少的人。由于篇幅的關系,這里我就不細細展開。總之我認為,沒有獨立的思考就沒有獨立于眾人的成績。


      
    6、始終保持清醒的頭腦和敏銳的判斷力,做到冷眼觀全局,不為各種紛亂的表象所迷惑。保持清醒的頭腦和敏銳的判斷力,這是一切勝利的必要保證。實戰中要做到這一點非常難,但要盡力好。2003年8月中旬,我接到一個電話,是湖北黃石的一位股民打來的。他說他聽消息在6.1元附近介入齊魯石化,資金押得比較大。現在一套幾個月,報上說該股是基金中報減倉最多的股票,而且還看見《大眾證券報》記者對齊魯石化的專訪報告。好象結論也是不怎么地。他心中無底,表示想聽聽我的意見。我正好上半年參與過一次揚子石化,對齊魯石化也有所關注。我說,你買的時機不對,現在既然被套,也不用太怕,因為齊魯石化中線還處于上升通道中。況且連主升浪都沒有走出來。當然后邊什么時候發動行情?行情有多高?我也說不死,只是告訴他有機會再過前高,讓他不用擔心(當時我判斷揚子石化也沒有走完,它們之間有聯動)。幾天后他來電話告訴我他割肉了,損失挺大。我當時正好在回家的路上,我隱隱地替他可惜,覺得他應該再堅持一下。沒想到后來該股真的走出大行情。其實仔細分析一下,就會發現該股當時走出中期向上形態,量能也放出來了。各種因素顯示一定是只莊股(雖然當莊股時代結束的說法到處都是),這是其一。其二、從當時中報公布的前十大股東時情況來看,基金持股雖然較大,但還不能完全控盤。其三、基金聯手做莊的可能性太低,那么莊家一定不是基金,而是另有其人。由此我們可以得出齊魯石化中報基金減倉第一名,這只是表象,它并不等于主力莊家退場。至于《大眾證券報》記者文章,那可信度更低。你知道他道底站在那一邊的?(后來我知道齊魯石化對《大眾證券報》的那兩篇文章頗有微詞。)在這個例子里,湖北黃石的這位李先生,就是被表象迷惑了,使他失去了判斷力,騎上了牛股也沒有坐穩,非常可惜. 那么怎樣才能不被迷惑呢? 參與股市的各方,不論是散戶還是機構,都是為“利”而來的這無需諱言,這也是根本目標。股民朋友在分析股市中的各種事物時,一定要抓住這個根本點。任何事物它總是有利有弊的,分析它到底對誰有利對誰有弊,有利于我們看清事物的本質,少受迷惑。2003年以來報刊上常有人寫文章,宣布莊股時代結束了。將來是基金的時代,藍籌股到來時代。這就是一種欺騙性很強的表象。

      它并沒有看清機構做莊的實質。這種憑空認為莊股時代結束的觀點,表面上看理由冠冕堂皇,其實它毫無說服力。股票市場從它誕生的那天起就存在兩種類型的資金。一種是人數眾多的散戶資金,一種是實力強大的集團資金。散戶資金單個數量小、進退容易、選擇性寬,缺點是無組織性、總額雖大沒有戰斗力。而且受情緒波動明顯,屬被動性質的資金,有助漲、助跌作用。而集團資金則正好相反,資金實力強大,計劃性組織性強,一般由水平較高的人掌控,屬主動性資金。可以帶動幾個點甚至一個面的熱炒,有利于活躍股市(當然也有做過頭的時候)。在股票市場“做莊”是最能發揮集團資金優點的盈利模式之一。只要哪個人有實力,為了利益我想誰都愿意選擇最有利于他自己的模式,即使是冒點風險。 “莊股”與“散戶”分則什么都不是,合則可以創造股市的歷史。沒有散戶莊家無法做莊,沒有莊家股市如一潭死水,這是一種辯證的對立統一關系。 說莊股時代結束的觀點,是睜眼說瞎話,實質上是違反辯證法的錯誤觀點。它沒有看清莊家的本質,沒有動態的看“做莊”。其實這幾年做莊的模式已發生了很大的變化,比如“漲停板敢死隊”就是一種變化的做莊形式。象“通寶能源”、“中聯控股”、“長安汽車”、“上海機場”、“齊魯石化”等等那一只不是莊股?不是莊股能走出那樣的行情?這些股票不都有是基金重倉股嗎?難道它不是為利而來? 所以善良的股民朋友切不可被“莊股時代已經結束”這類表象文章所迷惑,牢牢記住小資金跟著大資金才有機會,跟莊應該理直氣壯。要想保持清醒的頭腦和敏銳的判斷力,還必須解決好定性與定量的關系。要參與一只股票的炒做,就必須對其進行詳細的分析。而其中最重要的是“定性”。比如這只股票價位如何?高還是低?基本面如何?趨勢怎樣?有莊進場沒有?處于什么階段?量能怎樣?未來有什么題材等等。

      解決了這些問題心中才有底。下一步就是“定量”問題,比如這只股票將來上漲空間有多大?什么時候漲?買賣點的選擇等等。定量的問題我只要求自己做到心中有數,從不強求。但定性是必須做好的。2003年3月,我在與一證券營業部經理的交流中,談到了“東方鍋爐”這只票,當時他剛好賣出,價位大概在9塊多錢。他問我怎么看?我說從中線角度看,這只票才剛剛突破,量能也不大,屬慢牛走勢。未來可看到15~18元。但時間不好說,也許半年,也許更長。當然判斷的原因還有別的理由,這里不說。從后來該股的實戰來看。我當時的定性是準確的,而定量我說過只做到心中有數,有賺就行了,從不強求(我認為我當時判斷會到15~18元已經夠大膽了,與我交流的經理他根本不相信)。定性的問題解決好了,可以保證我們走正確的道路,保證我們賺錢,至于賺多少則不可以苛求。 這么多年,我都堅持這樣做,使我受益多多。

      7、股戰是綜合實力的較量,要善于掌握股戰中的主動權。說起炒票人們經常會說自己是“技術派”,某某人是“基本面派”。象這種把同一個問題割裂開來看的人還有很多,包括許多分析師(我曾經問過幾個分析師為什么這樣看?,他們說教科書就是這樣講的)。其實這也是一個錯誤的觀點,“基本面派”它研究的是上市公司和大的政經環境,“技術派”它研究的是股票的價、量、時、空,角度不同而已。上市公司和股票互為表現形式,互為因果關系。實戰經驗豐富的股民都知道,莊家做票時從來都是基本面要利用,技術面也要利用。有時是交替利用,有時是綜合利用。所以經驗豐富的股民不論是從基本面還是技術面都能發現莊家的蛛絲螞跡。更多的時候是綜合分析,綜合利用。要做好綜合利用,就需股民的綜合實力。而且從實戰的角度來看,真正的較量的是綜合實力。我以前經常跟一位朋友下橡棋,從交手的情況來看我經常[在盤面上占盡先機,殺得對方落花流水。按理說我的棋力比他高點,那么我的勝率就該高吧?其實不然,下十盤棋經常都是7:3的結局,他7勝3負。剛開始我很不服輸,還笑對方靠磨時間取勝,為什么呢?一般是布局階段我略占優。中盤階段,我的殺伐套路多、攻擊變化靈活,他防守嚴密,略為被動。這一階段我一般會多吃掉對方一子,占多子之利。殘局階段,對方優勢明顯,防守嚴密,反守為攻,常有殺著。行棋特慢、步步相連沒有漏洞。而我行棋浮燥,漏洞較多優勢轉弱勢,大都在這一階段。后來細細一想,也服輸。對方行棋慢,但符合規則。他的棋看似平淡,然而絲絲相連、環環相扣。平靜的心態,保證了他不出大的錯招,使對手沒有地方下刀,你連下刀的機會都沒怎么可能贏他?我輸就輸在綜合實力不如他。這已是很多年以前的事了,但我常用這件事提醒自己。股市中的輸贏靠的就是一個人的綜合實力,沒有什么投機取巧的方法。綜合實力的提升,需要搞好四方面的能力:

      a、提高自己用科學的新視野、新觀念、認識問題的能力。

      b、要總結一套符合自己情況的戰法。

      c、解決好自身的素養問題。

      d、股市中很多東西是不能簡單量化,用科技手段去分析的,它需要我們人的管理藝術。在股戰中還需注意的一個問題就是要善于掌握股戰中的主動權。這一點非常重要,所以在這里特別提醒,在很多情況下主動權易手就預示著勝負已經易手,對于高手來說結局已出來了。下過象棋、圍棋的人對這一點體會可能深一點。對于炒股的人,要切記“寧可不賺錢,或者少輸點錢,決不放棄主動權”。實戰中,大批股民總是有意識無意識的放棄了主動權,最終成為深套一族,亦悔之晚已。至于怎么去“善于掌握主動權”這里就不多說了,各人的理解也不一樣。

      8、不迷信經典和權威,要學習別人的長處。股票市場十幾年來,西方經典理論在中國得到了大量的普及與推廣。許多人都能說出一些來,至于是否真的對他有用,那就不一定了,而且分歧還很大。有人說無用,有人說有用,我這七八年也看了不少這方面的書籍,有些還下了一些死功夫。從我的實戰經歷來看對我的幫助不大(當然我不是說這些經典不科學,也許是我的確沒領會其間的真蒂)。但的確開了我的眼界和思路,在這方面是非常有益的。我們國家許多分析師(包括許多股民)企圖通過所學到的西方經典理論,比如波浪理論、周期理論等等去精確的推算我國股市未來能漲到某某點位,或者是跌到某某點位,這種好笑的行為還非常普遍。實質上是本未倒置,不把“定性”的問題搞清楚,反而先考慮“定量”,實在是沒有讀懂原作者的本意。當然他們推斷出的數字也經常與實踐相背離。象這類經典權威的迷信者,自我感覺良好。在股市分析理論的實踐中沒有創新精神,不敢走出西方經典的圈子,實在是中國股市理論發展的悲哀,實在是中國證券咨詢業的悲哀。對于廣大股民來說迷信經典還不如自創寶典,也許這更實用。 在股票市場上,一切理論,一切觀點最終都得經過實戰的檢驗,西方的理論經歷過西方的實踐拿到中國股市來,還得經過實踐的檢驗。不要輕易的認為既然是理論就放之四海都是真理,那不一定。這幾年熊市股市輸錢的人很多,如果你問他們為什么輸錢?他們會說出成百上千條理由或原因,歸納起來大體上有這幾類:

      a、炒短線,追熱點被套。

      b、贏利后未對現,太貪被套。

      c、聽消息高位買入被套。

      d、搶反彈被套。

      e、未及時止損被深套。

      f、底部放量,以為建倉介入被套。

      g、基本面好的股票除權缺口較大,除權后放量介入被套等等。如果再細細分析,還會發現即使是輸錢的股民也不是什么都不行(只有少部分股民完全不了解股市),有許多股民談起炒股還非常專業,也有許多非常好的心得和見解。這說明有一部分輸錢的股民只要再加把力,只要把這最后的臨門一腳踢好,一樣可以站到勝利者一邊來。而股市中賺錢的人呢?你如果走近他們就會發現,他們大多有獨立思考的習慣,有自己獨到見解,有一套應付股市變化的辦法。而且大都能夠堅持自己的行為。在全國3500萬股民中,按5%勝率計算,都有175萬勝利者,這些人分布在全國各地,算下來全國每個證券營業部都有不少這樣的人。如果你不恥下問,向你身邊的這些民間高手請教,一定會有很大的收獲。據我所知,這些人中的高手一般都不愿意白教,要學習是要收學費的,不過這也很正常。一方面別人花了許多的精力和代價,別一方面想想報刊上,電視上那些不花錢的東西管用嗎?想想自己在股市上幾萬、幾十萬輸掉的錢,花點錢學本事是值得的。以上拉拉雜雜、寫了那么多,就到此吧。你閱讀,你的關心。
    posted @ 2005-09-21 11:51 子玉 閱讀(1159) | 評論 (2)編輯 收藏
    javamail
    海風 發表于 2005-7-13 23:04:29

    http://www.javachina.cn/Commend.jsp

    從Sun的官方網站上下載到JavaMail類文件包。除
    此之外還需要Sun的JAF(JavaBeans Activation Framework ),否則JavaMail將不能運行。

    HTML郵件表格

      JSP最大的特色之一就是能把項目分類或劃分成許多組件,從而提高了組件的重利用率,
    也降低了編程的難度。因此我們在編程的時候也要想著如何把大的問題劃分成一個個模塊:
        模塊一 一個HTML表單,能把電子郵件信息傳送給JSP程序

      模塊二 一個處理和發送郵件的JSP頁面

    JavaMail的基礎知識

      使用JavaMail是發送電子郵件所需要的組件 。

      JavaMail的機構使處理電子郵件非常容易。下面列出了一些我們需要的類:

      1.Properties

      JavaMail需要Properties來創建一個session對象。它將尋找字符串"mail.smtp.host",
    屬性值就是發送郵件的主機,如:

       Properties props = new Properties ();

       props.put("mail.smtp.host", "smtp.abcd.com");//可以換上你的smtp主機名。

      2.Session

      這個Session類代表JavaMail 中的一個郵件session. 每一個基于 JavaMail的應用程序
    至少有一個session但是可以有任意多的session。 在這個例子中, Session對象需要知道用
    來處理郵件的SMTP 服務器。為了做到這一點,你可以參照下面的例子用Properties 來創建
    一個Session 對象

      Session sendMailSession;

      sendMailSession = Session.getInstance(props, null);

      3.Transport

      郵件是既可以被發送也可以被受到。JavaMail使用了兩個不同的類來完成這兩個功能:
    Transport 和 Store。 Transport 是用來發送信息的,而Store用來收信。對于這的教程我
    們只需要用到Transport對象。Store的用法請參看Sun的JavaMail文檔。

      用法:Transport transport;

       transport = sendMailSession.getTransport("smtp");

      用JavaMail Session對象的getTransport 方法來初始化Transport。傳過去的字符串申
    明了對象所要使用的協議,如"smtp"。這將為我們省了很多時間。因為JavaMail以境內置了
    很多協議的實現方法。

      注意: JavaMail并不是絕對支持每一個協議,目前支持IMAP、 SMTP和 POP3。

      4.Message

      Message對象將存儲我們實際發送的電子郵件信息,Message對象被作為一個MimeMessag
    e對象來創建并且需要知道應當選擇哪一個JavaMail session。

      使用方法是:Message newMessage = new MimeMessage(sendMailSession);

      JavaMail結合JSP

      一、構建JSP程序

      前面我們建造了一個HTML表單用來發送郵件信息,又介紹了JavaMail中的一些對象和方
    法。現在我們將把這些組件集合起來來構成我們的郵件系統。

      第一步也是最重要的一步,確信在page指令中導入了需要的類。除了JavaMail的相關的
    類和JAF外,不要忘了導入java.util.date ,因為我們需要它來給郵件蓋上時間戳。

      <%

       @ page import= " javax.mail.*, javax.mail.internet.*, javax.activation.*,
    java.util.*"

      %>

    下一步,創建郵件發送出去的確認信息,如"你的郵件已發送,請返回"

      二、創建并發送Message對象

      創建Message 對象的方法我們在第三課中就以討論過了,我們可以用Message來處理消息
    了,就像在Message對象上使用get和set屬性一樣簡單。在這一部分使用了很多request.get
    Parameter()。

      newMessage.setFrom(new InternetAddress(request.getParameter("from")));

      newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(reques
    t.getParameter("to")));

      newMessage.setSubject(request.getParameter("subject"));

      newMessage.setSentDate(new Date());

      newMessage.setText(request.getParameter("text"));

      現在終于可以把消息發送出去了:

      transport.send(newMessage);

    三、完整的程序

      上面的都是一些零零碎碎的代碼,現在我們把它們寫成一個完整的JSP程序。注意要捕捉
    任何錯誤并把它們顯示給用戶。

      源程序二:JavaMail 電子郵件發送系統的JSP實現程序代碼:

      <%@ page

       import=" javax.mail.*, javax.mail.internet.*, javax.activation.*,java.util
    .*"

      %>

      <html>

      <head>

       <TITLE>JavaMail 電子郵件發送系統</TITLE>

      </HEAD>

      <BODY>

      <%

       try{

        Properties props = new Properties();

        Session sendMailSession;

        Store store;

        Transport transport;

        sendMailSession = Session.getInstance(props, null);

        props.put("mail.smtp.host", "smtp.abcd.com");

        Message newMessage = new MimeMessage(sendMailSession);

        newMessage.setFrom(new InternetAddress(request.getParameter("from")));

        newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(re
    quest.getParameter("to")));

        newMessage.setSubject(request.getParameter("subject"));

        newMessage.setSentDate(new Date());

        newMessage.setText(request.getParameter("text"));

        transport = sendMailSession.getTransport("smtp");

        transport.send(newMessage);

      %>

      <p>你的郵件已發送,請返回。</p>

      <%

       }

        catch(MessagingException m)

        {

          out.println(m.toString());

         }

       %>

      </BODY>

      </HTML>

    posted @ 2005-09-07 11:24 子玉 閱讀(472) | 評論 (0)編輯 收藏
    通過JavaMail訪問Hotmail郵箱
    作者: zhaozexin
    出處: blog
    責任編輯: 方舟
    [ 2005-02-12 10:40 ]

      相信許多人都有MSN聊天工具的帳號,例如abc@hotmail.com ,這個賬號其實也是一個郵件地址,可以進行正常的郵件收發功能,你可以通過網址 http://www.hotmail.com 來訪問和操作這個郵箱進行郵件的收發。但是這個郵箱有一個限制就是它并不提供POP3或者SMTP服務,也就是說一般的郵件客戶端工具無法使用這個郵箱,雖然現在有不少的郵件工具可以支持Hotmail郵箱,但是如果我們需要在我們的Java項目中增加對Hotmail郵箱的支持,那往往會不知從什么地方開始入手,因為SUN公司提供的JavaMail 本身并不提供對除了POP3/IMAP以及SMTP外其他協議的支持。

      但事實上,JavaMail只是定義了一組平臺無關、獨立于通訊協議的郵件程序框架,或者說是接口,它是作為Java的可選包存在的。因此可以這樣說:JavaMail并不關心所使用的協議,不管是POP3、SMTP、IMAP當然還有Hotmail用的HTTP協議。對于JavaMail的客戶端而言也是這樣的,下圖就是一個最簡單的JavaMail結構圖,通過Transport進行郵件的發送,通過Store實現對郵件的收取,而不同協議的實現,JavaMail里的概念叫做Provider,只需要根據JavaMail定義的接口實現自己的Provider即可。


      為了實現通過JavaMail訪問Hotmail郵箱,我們就需要架起JavaMail接口與Hotmail服務所提供的訪問接口之間的橋梁。在這之前我們必須首先了解Hotmail所使用的接口協議。

      Hotmail通過地址 http://services.msn.com/svcs/hotmail/httpmail.asp 提供基于HTTP協議的服務,它不同于我們通過瀏覽器訪問 http://www.hotmail.com 的這個地址,后面這個地址是提供給用戶一個基于瀏覽器的訪問界面以便對郵箱進行操作,你當然可以通過編寫HTTP客戶端程序來解析頁面并獲取郵件的信息,但是這樣做不僅實現的復雜程度非常高,而且每次頁面風格發生變化后程序都要做相應的調整,因此不具備通用性,顯然是不可行的。而地址 http://services.msn.com/svcs/hotmail/httpmail.asp 則不同,它提供了固定的應用程序接口。當你使用瀏覽器訪問該地址的時候,會彈出下面要求登錄的窗體:


      而當輸入正確的用戶名和口令后會再彈出一次或兩次該提示窗口,但提示信息不同,操作完成后出現頁面無法顯示的錯誤,錯誤碼是 405 (資源不允許)。因此該服務并不允許通過瀏覽器來訪問。

      事實上Hotmail使用的是WebDAV來提供基于HTTP協議的應用編程接口,WebDAV(Web 分布式創作和版本控制)已經成為重要的 Web 通訊協議。WebDAV所要解決的問題是:

      1.改寫保護:HTTP 1.1 無法確保客戶端可以保護資源,并且可以在其他客戶端同時編輯它們的情況下進行更改。 使用 WebDAV,可以通過多種方式來鎖定資源,以便讓其他客戶端知道您對所討論的資源感興趣,或者防止其他客戶端訪問該資源。

      2.資源管理:HTTP 只能直接訪問單個資源。 WebDAV 提供一種更有效地組織數據的方法。 WebDAV 引入了可包含資源 的集合(類似于文件系統文件夾)概念。 通過 WebDAV 進行的資源管理包括如下功能:創建、移動、復制和刪除集合,以及集合中的資源或文件。

      3.文檔屬性:不同類型的數據具有唯一的屬性,這有助于描述數據。 例如,在電子郵件中,這些屬性可能是發件人的姓名和接收郵件的時間。 在協作文檔中,這些屬性可能是文檔原始作者的姓名和最后一個編輯者的姓名。 因為人們使用的文檔類型各不相同,所以可能的屬性類型列表也變得無限大。 XML 是 WebDAV 所需的一種可擴展通訊工具。

      關于WebDAV的更多資料可以參閱本文最后的參考資料。

      相對于自行解析Hotmail的瀏覽器頁面而言,基于特定協議WebDAV的接口使Hotmail郵件客戶端程序的實現更加穩定和可靠。在了解了JavaMail API的基本接口以及Hotmail所提供接口的協議,本文的題目就變得非常具體了,就是如果編寫基于WebDAV的JavaMail Provider(JavaMail提供者)并使用這個提供者來實現Hotmail郵件收發功能,但這題目太大而且已經超過了一篇文章所能敘述的范圍,因此我們接下來將引入一個開放源碼項目JDAVMail,并詳細介紹如何通過這個項目實現Hotmail郵件的收發功能。

      JDAVMail 是一個開放源碼的JavaMail的提供者項目,可以通過它來訪問基于WebDAV協議的郵件服務,有如Hotmail郵箱。你可以到 http://sourceforge.net/projects/jdavmail 這個網址下載到最新版本的程序。JDAVMail使用了Jakarta上的commons httpclient 作為HTTP客戶端組件與服務器進行通訊,同時使用了jdom進行XML數據的解析,另外由于httpclient項目用到了commons logging進行日記的輸出,因此commons-logging也是必須的,這三個組件都可以在JDAVMail的壓縮包中的lib目錄中找到,壓縮包中同時還包括已編譯的jar文件以及所有的源碼。
    為了讓大家對JDAVMail有個大概的認識,下面我們給出兩段代碼用于Hotmail郵件的收發:

      1. 郵件收取

    /*
    * 文件名:HotmailDemo.java
    * 創建時間:2004-9-14
    * 創建者:liudong
    */
    package com.clickcom.mail;

    import java.util.Date;
    import java.util.Properties;

    import javax.mail.Folder;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Store;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;

    /**
    * Hotmail郵件的收發器
    * @author liudong
    */
    public class HotmailDemo {
     public static void main(String[] args) {
      receive();
     }

     /**
     * 郵件接收
     */

      protected static void receive() {
      try {
       Properties prop = new Properties();
       Session ses = Session.getInstance(prop);
       //使用JDAVMail Provider
       Store store = ses.getStore("davmail");
       //無需指定服務器地址
       store.connect(null, "你的帳號","密碼");
       if (store.isConnected()) {
        Folder inbox = store.getFolder("INBOX");
        if (inbox.exists()) {
         inbox.open(Folder.READ_ONLY);
         int nCount = inbox.getMessageCount();
         System.out.println("Inbox contains " + nCount + " messages");
         // 依次顯示收件箱中的每封郵件
         for(int i=1;i<=nCount;i++){
          MimeMessage msg = (MimeMessage) inbox.getMessage(i);
          System.out.println("Subject : " + msg.getSubject());
          System.out.println("From : " + msg.getFrom()[0].toString());
          System.out.println("Content type : " + msg.getContentType());
          System.out.println(msg.getContent());
         }
        }
       }
      } catch (Exception ex) {
       ex.printStackTrace();
      }
     }
    }

      從上面這段代碼我們發現除了 Store store = ses.getStore("davmail"); 這個語句,同時不需要指定服務器地址外,其他的都跟一個普通的JavaMail應用程序沒有兩樣,也沒有引入任何跟JDAVMail有關的類。沒有指定服務器地址這個比較容易理解,因為Hotmail提供HttpMail服務的地址是固定的。事實上僅有getStore這個語句跟常規郵件客戶端程序有點不同的是它使用davmail字符串作為參數,而我們在使用JavaMail連接POP3服務器的時候指定參數值為pop3。怎么回事呢?因為JavaMail是通過協議名來加載Provider類的。打開JDAVMail.0.9.006.jar這個jar文件就會發現在META-INF目錄下有一個文件javamail.providers,該文件內容如下:

    protocol=davmail;
    type=store; class=com.posisoft.jdavmail.JDAVMailStore;
    vendor=Positive Software;
    protocol=davmail_xmit;
    type=transport;
    class=com.posisoft.jdavmail.JDAVMailTransport;
    vendor=Positive Software;

      因此當我們指定協議名為davmail時,JavaMail就會自動加載com.posisoft.jdavmail.JDAVMailStore類進行處理,因此通過傳入davmail字符串所得到的store實例實際上是類com.posisoft.jdavmail.JDAVMailStore的一個實例,這樣我想大家應該了解了前面這段程序的工作原理。

      我們再來看JDAVMail發送郵件的代碼片段:

    /**
    * 郵件發送
    */
    protected static void send() {
     try {
      Properties prop = new Properties();
      //郵件發送者地址
      prop.setProperty("mail.davmail.from","abc@hotmail.com");
      Session ses = Session.getInstance(prop);
      //獲得JDAVMail的郵件發送實例
      Transport transport = ses.getTransport("davmail_xmit");
      //連接到Hotmail服務器,請替換為自己的用戶名和口令
      transport.connect(null, "用戶名","口令");

      // 準備要發送的郵件
      MimeMessage txMsg = new MimeMessage(ses);
      txMsg.setSubject("This is the subject");

      //郵件發送者地址
      InternetAddress addrFrom = new InternetAddress("abc@hotmail.com");
      txMsg.setFrom(addrFrom);

      //郵件接收者地址
      InternetAddress addrTo = new InternetAddress("cdef@hotmail.com", "cdef");
      txMsg.addRecipient(Message.RecipientType.TO, addrTo);

      //郵件內容
      txMsg.setText("Hello world !");
      txMsg.setSentDate(new Date());

      //發送郵件
      transport.sendMessage(txMsg, txMsg.getAllRecipients());
     } catch (Exception ex) {
      ex.printStackTrace();
     }
    }

      同樣這段代碼使用了davmail_xmit協議來獲取JDAVMail的郵件發送實例,通過前面提到的javamail.providers文件不難知道JDAVMail使用類com.posisoft.jdavmail.JDAVMailTransport進行郵件的發送處理。

      在實際測試中發現不管是JDAVMail還是其他的郵件工具,使用Hotmail進行郵件的發送速度比較慢,差不多有幾分鐘后才能收到相應的信息,因此如果測試中發現該問題請耐心等待。

      我想通過本文介紹如何利用JDAVMail收發Hotmail郵件,以及研究JDAVMail的源碼,不僅可以更加深入了解JavaMail的體系結構,對編寫JavaMail Provider也有更加具體的參照。另外希望為正困撓于如何在Java程序中訪問Hotmail郵件的朋友們排憂解難。同時也非常歡迎通過我的網站 http://www.javayou.com 跟我交流在使用中遇到的問題。
     
    posted @ 2005-09-07 11:23 子玉 閱讀(456) | 評論 (0)編輯 收藏

    javamail中的demo都是不要身份驗證的
    我看了幾遍http://java.sun.com/products/javamail/1.2/docs/javadocs/index.html
    還是不知道怎么改!!!


    回答:
    這樣使用即可:
    props.put("mail.smtp.auth", "true");


    Transport transport = session.getTransport("smtp");
    transport.connect(host, username, password);

    posted @ 2005-09-07 11:18 子玉 閱讀(480) | 評論 (0)編輯 收藏

    利用 Java Mail 來收發郵件 閱讀次數645

    出處 不詳     


    隨著網絡應用的不斷推廣,電子郵件越來越多的被大家使用。雖然我們往往將電子郵件與 Foxmail、Outlook 這樣的電子郵件客戶端聯系起來,但是往往我們也需要自己編程實現發送接收郵件,例如在一個網站注冊用戶后網站發出的回執mail,或者在網絡購物的時候,在完成訂單后的幾分鐘之內發送確認電子郵件。對于這樣的需求,我們不能通過已有的郵件客戶端而需要自己編寫郵件發送或者處理程序。在這里向大家講解一下如何利用JavaMail來實現郵件的收發。

    注意:本文只打算討論JavaMail收發帶附件郵件的一些技巧,所以只是給出部分代碼
    1.發送帶附件的郵件

    我們平時發送的郵件主要可以分解成2大部分,一個是發信人,接信人,主題等郵件標頭,另外一部分是郵件內容,它包括了郵件的附件。我們在發送普通郵件的時候content設置的類型是"text/html",帶上附件后,我們需要把content的類型設置成Multipart,這時content包括了附件和"text/html"類型的正文。下面的這個告訴大家如何把附件放置到郵件中。
    private Multipart getMultipart() throws MessagingException,UnsupportedEncodingException {
    MimeMultipart mp = new MimeMultipart();
    try
    {
    //設置content里的內容
    MimeBodyPart contentMbp = new MimeBodyPart();
    //請指定字符集,否則會是亂碼
    contentMbp.setContent(_mailContent.getContent(),
    "text/html; charset=GB2312");
    mp.addBodyPart(contentMbp);
    //添加附件
    for (int i=0;i<_mailAttachment.getAttachPath().size();i++)
    {
    MimeBodyPart mbp = new MimeBodyPart();
    FileDataSource fds = new FileDataSource((String)
    _mailAttachment.getAttachPath().get(i));
    mbp.setDataHandler(new DataHandler(fds));
    mbp.setFileName(MimeUtility.encodeWord(fds.getName(),
    "GB2312",null));
    mp.addBodyPart(mbp);
    }
    }
    catch(MessagingException ie)
    {
    System.out.println("Set Content Message error..."+ie.getMessage());
    throw ie;
    }
    catch(UnsupportedEncodingException ie)
    {
    System.out.println("Encode the fileName error..."+ie.getMessage());
    throw ie;
    }
    return mp;
    }
    放置附件的注意事項如下:
    在發mail時需要注意字符集的問題。不但content里要設置,而且文件名也需要設置。如果我們去掉mbp.setFileName(MimeUtility.encodeWord(fds.getName(),"GB2312",null));這句話,那么你選中的附件還是會帶到郵件里,但是在附件里看不到。我們可以通過查看郵件大小知道。我們利用這個特點來實現發送content中寫的是html語言,而且包含圖片信息的郵件。

    2.發送content中包含html頁面的郵件

    大家都知道html語言可以帶上圖片鏈接(),那么我們在發送郵件的時候就需要對這些鏈接的圖片做特殊處理。否則在對方接收到郵件的時候會看不到圖片。我們特殊處理的方法就是把它們當成附件發送,但不顯示在附件里。要做到這些就首先需要對輸入的content進行解析,找到所帶圖片的路徑。然后把content中這段代碼變成。我們在發送附件的時候用mbp1.setHeader("Content-ID","IMG") 來把圖片和附件對應上。如何具體解析content的操作我就不贅述了,我現在給出如何把修改好的content發送出去的例子。
    //對于發送html類型的content。里邊包括圖片。
    for(int i=0;i<_mailContent.getImgHash().size();i++)
    {
    MimeBodyPart mbp1 = new MimeBodyPart();
    //得到圖片的數據
    FileDataSource fds = new FileDataSource(
    (String)_mailContent.getImgHash().get("IMG"+i));
    //設置到MimeBodyPart中
    mbp1.setDataHandler(new DataHandler(fds));
    //設置圖片附件和html的對應關系
    mbp1.setHeader("Content-ID","IMG"+i);
    mp.addBodyPart(mbp1);
    }

    3.郵件的狀態

    我們在閱讀完郵件后可以給郵件設置刪除標志,然后在關閉FOLDER的時候用true來清空已經被標志為刪除的郵件。郵件的狀態是在類FLAGS.FLAG中定義的。包括如下幾種:
    Flags.Flag.ANSWERED
    Flags.Flag.DELETED
    Flags.Flag.DRAFT
    Flags.Flag.FLAGGED
    Flags.Flag.RECENT
    Flags.Flag.SEEN
    Flags.Flag.USER

    我們可以根據不同的需要進行設置,但是需要注意的是,不是所有的服務器都支持這些狀態。我們在做操作之前可以用getPermanentFlags方法來得到Message中的狀態。參考下面代碼
    Message m = folder.getMessage(1);
    // set the DELETED flag
    m.setFlag(Flags.Flag.DELETED, true);
    // Check if DELETED flag is set of this message
    if (m.isSet(Flags.Flag.DELETED))
    System.out.println("DELETED message");
    // Examine ALL system flags for this message
    Flags flags = m.getFlags();
    Flags.Flag[] sf = flags.getSystemFlags();
    for (int i = 0; i < sf.length; i++)
    {
    if (sf[i] == Flags.Flag.DELETED)
    System.out.println("DELETED message");
    else if (sf[i] == Flags.Flag.SEEN)
    System.out.println("SEEN message");
    }

    4.接收帶附件的郵件

    在帶有附件的郵件中,消息的內容是Multipart型,這樣我們就需要解析它來得到content和附件(它是發送帶附件的郵件的逆向過程)。大家在使用outlook、foxmail這些電子郵件客戶端的時候會發現,我們的郵件被從服務器上下載下來并且保存到本地硬盤上了,這種方式方便我們離線瀏覽郵件。在下面的范例中我們也把服務器上的郵件保存到本地。如果有興趣大家可以編寫一個客戶端的圖形界面來讀取保存下來的郵件。
    在下面的例子里,我只是向大家介紹如何解析附件。
    private void getAttachFile(Part messagePart,BufferedOutputStream writeAttachObj)
    throws IOException, MessagingException
    {
    Object content = messagePart.getContent() ;
    try
    {
    //這種情況下的郵件都是用multi模式發送的,
    // 這種模式包括有附件的郵件和用html表示content的郵件
    if (content instanceof Multipart)
    {
    Multipart contentTmp = (Multipart) content ;
    //如果是MULTI模式發送的,BodyPart(0).getContent()肯定就是content
    System.out.println("content==" + contentTmp.getBodyPart(0).getContent()) ;
    //getCount()可以得到content中bodyPart的個數,content就是第一個
    //bodyPart,其它的附件按照順序類推。但是有的時候附件就是另外一個郵件,
    //而這個郵件里邊可能有其他的附件。下面代碼用循環對嵌套情況進行解析。
    for (int i = 0 ; i < contentTmp.getCount() ; i++)
    {
    if (contentTmp.getBodyPart(i).isMimeType("multipart/*"))
    {
    Multipart multipart = (Multipart)
    contentTmp.getBodyPart(i).getContent() ;
    //這個地方增加循環是為了解決嵌套附件的情況。
    for (int k = 0 ; k < multipart.getCount() ; k++)
    {
    //content也會存在于INPUTSTREAM中。
    saveAttacheFile(multipart.getBodyPart(k).getContentType(),
    multipart.getBodyPart(k).getDisposition(),
    multipart.getBodyPart(k).getFileName(),
    multipart.getBodyPart(k).getInputStream(),
    writeAttachObj);
    }
    }
    else
    {
    saveAttacheFile(contentTmp.getBodyPart(i).getContentType(),
    contentTmp.getBodyPart(i).getDisposition(),
    contentTmp.getBodyPart(i).getFileName(),
    contentTmp.getBodyPart(i).getInputStream(),
    writeAttachObj);
    }
    }
    }
    //這種情況中郵件是純文本形式,并且沒有附件
    else
    {
    writeAttachObj.write(("content = "+content+"
    ").getBytes());
    writeAttachObj.flush();
    }
    }
    catch (Exception ie)
    {
    System.out.println("exception====" + ie.getMessage()) ;
    }
    }
    posted @ 2005-09-07 11:14 子玉 閱讀(962) | 評論 (0)編輯 收藏
    <2005年9月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    常用鏈接

    留言簿(7)

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最近的免费中文字幕视频 | 国产在线观看免费视频播放器| 91在线亚洲精品专区| 久久精品国产这里是免费| 久久精品国产亚洲综合色| 日本免费一区二区久久人人澡| 久久夜色精品国产嚕嚕亚洲av| 精品国产麻豆免费人成网站| 亚洲成AV人片一区二区| 91青青国产在线观看免费| 亚洲色欲或者高潮影院| 99精品国产免费久久久久久下载| 456亚洲人成影院在线观| 国产美女无遮挡免费视频网站| 精品亚洲福利一区二区| 免费A级毛片无码久久版| 一级一级一级毛片免费毛片| 亚洲VA中文字幕无码一二三区| 日韩在线不卡免费视频一区| 亚洲专区一路线二| 国产免费AV片无码永久免费| h视频在线免费观看| 一区二区三区亚洲| 高清国语自产拍免费视频国产| 免费无码专区毛片高潮喷水| 久久91亚洲人成电影网站| 91精品免费在线观看| 美女羞羞免费视频网站| 亚洲国产另类久久久精品黑人 | 亚洲精品亚洲人成在线麻豆| 午夜宅男在线永久免费观看网| 国产精品亚洲色图| 亚洲国产精品一区第二页| 无人在线观看免费高清视频| 色网站在线免费观看| 亚洲成熟xxxxx电影| 国产精品久免费的黄网站| 成人网站免费看黄A站视频| 亚洲一久久久久久久久| 国产亚洲一区二区三区在线不卡| 国产精品免费网站|