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

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

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

    sharky的點滴積累

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      56 隨筆 :: 104 文章 :: 10 評論 :: 0 Trackbacks

    2005年10月2日 #

    1。有識有膽,有膽有識,知識與膽量是互相促進的。

    2。體育鍛煉可以(有時可以迅速)使人樂觀(科學(xué)實驗證明)。

    3。勤奮,機會,樂觀是成功的三要素。(注意:傳統(tǒng)觀念認為勤奮和機會是成功的要素,但是經(jīng)過統(tǒng)計學(xué)和成功人士的分析得出,樂觀是成功的第三要素)

    4。自信是人格的核心。

    5。獲得的成功越大,就越令人高興。(野心是使人勤奮的原因,節(jié)制使人枯萎)

    6。熱愛你所擁有的。——列夫·托爾斯泰

    7。(一般情況下)不想三年以后的事,只想現(xiàn)在的事。(現(xiàn)在有成就,以后才能更輝煌)

    8。把問題看寬廣些,沒有解決不了的事。(真理路廣,人欲路窄;當(dāng)然不要超越時代去想現(xiàn)在任何人都解決不了的事)

    9。不問收獲,只問耕耘。(如同種樹,先有根莖,再有枝葉,爾后花實,好好勞動,不要想太多,那樣只會使人膽小、懶惰,因為不實踐,甚至不接觸社會,難道你是野人?!(暴笑))

    10。忍耐和信仰(鄧小平認為自己能三起三落的原因,比較難達到,不過現(xiàn)代社會簡單的事都由機器做了,白領(lǐng)越來越多,需要注意哦)

    11。有恒則斷無不成之事。

    12。智慧之泉必須暢飲才能使人清醒。(引自新英語教材,那些頭痛英語的哥么大概沒看吧,提醒一下大家)

    13。生活的樂趣的大小取決于我們對生活的關(guān)心程度。

    14。不要怕,不要悔(雖然只有六個字,但是常看常新)

    15。機遇對于有準(zhǔn)備的頭腦有特別的親和力。

    16。守業(yè)最好的辦法就是不斷的發(fā)展

    17。心急吃不了熱湯圓

    18。必死則生,幸生則死——《吳子兵法》(武經(jīng)典籍中僅次于《孫子兵法》)

    19。要改變命運,首先改變自己

    20。走自己的路,讓別人說去吧!

    21。學(xué)習(xí)的關(guān)鍵——重復(fù)

    22。只為成功找方法,不為失敗找借口(蹩腳的工人總是說工具不好)

    23。困難就是機遇——溫斯頓·丘吉爾

    24。我奮斗,所以我快樂——格林斯潘(挽救東南亞金融危機的人,我的偶像)

    25。好奇者,知識之門

    26。生氣是用別人的錯誤懲罰自己。——康德(這個哲學(xué)家讓人眉開眼笑)

    27。失去金錢的人損失甚少,失去健康的人損失極多,失去勇氣的人損失一切。

    28。只要下定決心克服恐懼,便幾乎能克服任何恐懼。因為,請記住,除了在腦海中,恐懼無處藏身。——戴爾·卡耐基

    29。害怕時,把心思放在必須做的事情上,如果曾經(jīng)徹底準(zhǔn)備,便不會害怕。——戴爾·卡耐基

    30。“不可能”這個字(法語是一個字),只在愚人的字典中找得到。——拿破侖

    31。去做你害怕的事,害怕自然就會消失。——羅夫·華多·愛默生

    32。這世上的一切都借希望而完成。農(nóng)夫不會播下一粒玉米,如果他不曾希望它長成種籽;單身漢不會娶妻,如果他不曾希望有小孩;商人或手藝人不會工作,如果他不曾希望因此而有收益。——馬丁·路德

    33。目標(biāo)的堅定是性格中最必要的力量泉源之一,也是成功的利器之一。沒有它,天才也會在矛盾無定的迷徑中,徒勞無功。——查士德斐爾爵士

    34。要冒一次險!整個生命就是一場冒險。走得最遠的人,常是愿意去做,并愿意去冒險的人。“穩(wěn)妥”之船,從未能從岸邊走遠。——戴爾·卡耐基

    35。當(dāng)一個青年人站起來面對這個大莽漢——這個世界——并勇敢地抓住他的胡須時,常會吃驚地發(fā)現(xiàn),胡須脫落在他手上,原來它只是系上去嚇唬膽怯的冒險者的。——羅夫·華多·愛默生

    36。勇氣很有理由被當(dāng)作人類德性之首,因為這種德性保證了所有其余的德性。——溫斯頓·丘吉爾
    posted @ 2005-11-22 17:12 sharky的點滴積累 閱讀(343) | 評論 (0)編輯 收藏

    Web service到底是什么;在什么情況下你應(yīng)該使用Web service。

    分布式應(yīng)用程序和瀏覽器

    研究一下當(dāng)前的應(yīng)用程序開發(fā),你會發(fā)現(xiàn)一個絕對的傾向:人們開始偏愛基于瀏覽器的瘦客戶應(yīng)用程序。這當(dāng)然不是因為瘦客戶能夠提供更好的用戶界面,而是因為它能夠避免花在桌面應(yīng)用程序發(fā)布上的高成本。發(fā)布桌面應(yīng)用程序成本很高,一半是因為應(yīng)用程序安裝和配置的問題,另一半是因為客戶和服務(wù)器之間通信的問題。

    傳統(tǒng)的Windows富客戶應(yīng)用程序使用DCOM來與服務(wù)器進行通信和調(diào)用遠程對象。配置好DCOM使其在一個大型的網(wǎng)絡(luò)中正常工作將是一個極富挑戰(zhàn)性的工作,同時也是許多IT工程師的噩夢。事實上,許多IT工程師寧愿忍受瀏覽器所帶來的功能限制,也不愿在局域網(wǎng)上去運行一個DCOM。在我看來,結(jié)果就是一個發(fā)布容易,但開發(fā)難度大而且用戶界面極其受限的應(yīng)用程序。極端的說,就是你花了更多的資金和時間,卻開發(fā)出從用戶看來功能更弱的應(yīng)用程序。不信?問問你的會計師對新的基于瀏覽器的會計軟件有什么想法:絕大多數(shù)商用程序用戶希望使用更加友好的Windows用戶界面。

    關(guān)于客戶端與服務(wù)器的通信問題,一個完美的解決方法是使用HTTP協(xié)議來通信。這是因為任何運行Web瀏覽器的機器都在使用HTTP協(xié)議。同時,當(dāng)前許多防火墻也配置為只允許HTTP連接。

    許多商用程序還面臨另一個問題,那就是與其他程序的互操作性。如果所有的應(yīng)用程序都是使用COM或.NET語言寫的,并且都運行在Windows平臺上,那就天下太平了。然而,事實上大多數(shù)商業(yè)數(shù)據(jù)仍然在大型主機上以非關(guān)系文件(VSAM)的形式存放,并由COBOL語言編寫的大型機程序訪問。而且,目前還有很多商用程序繼續(xù)在使用C++、Java、Visual Basic和其他各種各樣的語言編寫。現(xiàn)在,除了最簡單的程序之外,所有的應(yīng)用程序都需要與運行在其他異構(gòu)平臺上的應(yīng)用程序集成并進行數(shù)據(jù)交換。這樣的任務(wù)通常都是由特殊的方法,如文件傳輸和分析,消息隊列,還有僅適用于某些情況的的API,如IBM的"高級程序到程序交流(APPC)"等來完成的。在以前,沒有一個應(yīng)用程序通信標(biāo)準(zhǔn),是獨立于平臺、組建模型和編程語言的。只有通過Web Service,客戶端和服務(wù)器才能夠自由的用HTTP進行通信,不論兩個程序的平臺和編程語言是什么。

    什么是Web Service

    對這個問題,我們至少有兩種答案。從表面上看,Web service 就是一個應(yīng)用程序,它向外界暴露出一個能夠通過Web進行調(diào)用的API。這就是說,你能夠用編程的方法通過Web來調(diào)用這個應(yīng)用程序。我們把調(diào)用這個Web service 的應(yīng)用程序叫做客戶。例如,你想創(chuàng)建一個Web service ,它的作用是返回當(dāng)前的天氣情況。那么你可已建立一個ASP頁面,它接受郵政編碼作為查詢字符串,然后返回一個由逗號隔開的字符串,包含了當(dāng)前的氣溫和天氣。要調(diào)用這個ASP頁面,客戶端需要發(fā)送下面的這個HTTP GET請求:

    http://host.company.com/weather.asp?zipcode=20171

    返回的數(shù)據(jù)就應(yīng)該是這樣:

    21,晴

    這個ASP頁面就應(yīng)該可以算作是Web service 了。因為它基于HTTP GET請求,暴露出了一個可以通過Web調(diào)用的API。當(dāng)然,Web service 還有更多的東西。

    下面是對Web service 更精確的解釋: Web services是建立可互操作的分布式應(yīng)用程序的新平臺。作為一個Windows程序員,你可能已經(jīng)用COM或DCOM建立過基于組件的分布式應(yīng)用程序。COM是一個非常好的組件技術(shù),但是我們也很容易舉出COM并不能滿足要求的情況。

    Web service平臺是一套標(biāo)準(zhǔn),它定義了應(yīng)用程序如何在Web上實現(xiàn)互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Web service ,只要我們可以通過Web service標(biāo)準(zhǔn)對這些服務(wù)進行查詢和訪問。

    新平臺

    Web service平臺需要一套協(xié)議來實現(xiàn)分布式應(yīng)用程序的創(chuàng)建。任何平臺都有它的數(shù)據(jù)表示方法和類型系統(tǒng)。要實現(xiàn)互操作性,Web service平臺必須提供一套標(biāo)準(zhǔn)的類型系統(tǒng),用于溝通不同平臺、編程語言和組件模型中的不同類型系統(tǒng)。在傳統(tǒng)的分布式系統(tǒng)中,基于界面(interface)的平臺提供了一些方法來描述界面、方法和參數(shù)(譯注:如COM和COBAR中的IDL語言)。同樣的,Web service平臺也必須提供一種標(biāo)準(zhǔn)來描述Web service,讓客戶可以得到足夠的信息來調(diào)用這個Web service。最后,我們還必須有一種方法來對這個Web service進行遠程調(diào)用。這種方法實際是一種遠程過程調(diào)用協(xié)議(RPC)。為了達到互操作性,這種RPC協(xié)議還必須與平臺和編程語言無關(guān)。下面幾個小節(jié)就簡要介紹了組成Web service平臺的這三個技術(shù)。

    XML和XSD

    可擴展的標(biāo)記語言(XML)是Web service平臺中表示數(shù)據(jù)的基本格式。除了易于建立和易于分析外,XML主要的優(yōu)點在于它既是平臺無關(guān)的,又是廠商無關(guān)的。無關(guān)性是比技術(shù)優(yōu)越性更重要的:軟件廠商是不會選擇一個由競爭對手所發(fā)明的技術(shù)的。

    XML解決了數(shù)據(jù)表示的問題,但它沒有定義一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,更沒有說怎么去擴展這套數(shù)據(jù)類型。例如,整形數(shù)到底代表什么?16位,32位,還是64位?這些細節(jié)對實現(xiàn)互操作性都是很重要的。W3C制定的XML Schema(XSD)就是專門解決這個問題的一套標(biāo)準(zhǔn)。它定義了一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,并給出了一種語言來擴展這套數(shù)據(jù)類型。Web service平臺就是用XSD來作為其數(shù)據(jù)類型系統(tǒng)的。當(dāng)你用某種語言(如VB.NET或C#)來構(gòu)造一個Web service時,為了符合Web service標(biāo)準(zhǔn),所有你使用的數(shù)據(jù)類型都必須被轉(zhuǎn)換為XSD類型。你用的工具可能已經(jīng)自動幫你完成了這個轉(zhuǎn)換,但你很可能會根據(jù)你的需要修改一下轉(zhuǎn)換過程。在第二章中,我們將深入XSD,學(xué)習(xí)怎樣轉(zhuǎn)換自定義的數(shù)據(jù)類型(例如類)到XSD的類型。

    SOAP

    Web service建好以后,你或者其他人就會去調(diào)用它。簡單對象訪問協(xié)議(SOAP)提供了標(biāo)準(zhǔn)的RPC方法來調(diào)用Web service。實際上,SOAP在這里有點用詞不當(dāng):它意味著下面的Web service是以對象的方式表示的,但事實并不一定如此:你完全可以把你的Web service寫成一系列的C函數(shù),并仍然使用SOAP進行調(diào)用。SOAP規(guī)范定義了SOAP消息的格式,以及怎樣通過HTTP協(xié)議來使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的數(shù)據(jù)編碼方式。第三章我們會討論SOAP,并結(jié)識SOAP消息的各種元素。

    WSDL

    你會怎樣向別人介紹你的Web service有什么功能,以及每個函數(shù)調(diào)用時的參數(shù)呢?你可能會自己寫一套文檔,你甚至可能會口頭上告訴需要使用你的Web service的人。這些非正式的方法至少都有一個嚴重的問題:當(dāng)程序員坐到電腦前,想要使用你的Web service的時候,他們的工具(如Visual Studio)無法給他們提供任何幫助,因為這些工具根本就不了解你的Web

    service。解決方法是:用機器能閱讀的方式提供一個正式的描述文檔。Web service描述語言(WSDL)就是這樣一個基于XML的語言,用于描述Web service及其函數(shù)、參數(shù)和返回值。因為是基于XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的,這將是一個很大的好處。一些最新的開發(fā)工具既能根據(jù)你的Web service生成WSDL文檔,又能導(dǎo)入WSDL文檔,生成調(diào)用相應(yīng)Web service的代碼。

    摘侄: http://lsz.c1c5.com/feed.asp?q=comment&id=55
    posted @ 2005-11-22 17:11 sharky的點滴積累 閱讀(286) | 評論 (0)編輯 收藏

    點擊此處下載WebLogic Workshop 8.1 簡體中文包(20.2M)

     

    簡體中文版

    http://download2.bea.com/pub/platform/81/platform812_zh_CN_win32.exe

    WebLogic Workshop 8.1 簡體中文包安裝指南

    設(shè)置 WebLogic Workshop IDE 字體

    1.運行Weblogic Workshop,從“工具”菜單中打開“IDE 屬性”。
    2.選中“顯示”,設(shè)置窗口字體為“Dialog”,大小為12;源代碼視圖字體為“DialogInput”,大小為12。
    3.退出Weblogic Workshop。

    安裝WebLogic Workshop 8.1 簡體中文包
    1.使用命令“jar xf fw811-zh_CN.jar”展開 fw811-zh_CN.jar 。
    2.拷貝“server/lib/knex-L10N.jar”到“/weblogic81/server/lib”。
    3.拷貝“workshop/L10N”目錄到“/weblogic81/workshop”。
    4.備份“/weblogic81/workshop/templates”。
    5.拷貝“workshop/templates”到“/weblogic81/workshop”。

    設(shè)置系統(tǒng)語言環(huán)境
    1.在Windows 2000/XP中,打開“區(qū)域和語言選項”控制面板,選擇“區(qū)域選項”選項板,然后設(shè)置“標(biāo)準(zhǔn)和格式”為“中文(中國)”,位置為“中國”。
    2.在UNIX/Linux中,選擇中文環(huán)境(如:zh_CN)登入。

    重新運行WebLogic Workshop 8.1
    WebLogic Workshop 8.1 國際化概述

    在 WebLogic Workshop 8.1 中,必須實現(xiàn)一些功能才能在簡體中文環(huán)境下使用。盡管,在 beta 版中對使用簡體中文存在許多限制,但在此版本中對簡體中文的支持已大為改進。
    WebLogic Workshop 工作在 WebLogic Server 環(huán)境中。因此,WebLogic Server 中存在的限制也會對使用 WebLogic Workshop 開發(fā)的應(yīng)用程序產(chǎn)生影響。

    SOAP 消息和編碼

    接收 SOAP 消息
    WebLogic Server 的 Web Service 功能在編碼處理方面遵從 SOAP 1.1 和 1.2 規(guī)范。SOAP 1.1 HTTP/SOAP 消息的媒體類型為“text/xml”,其編碼處理定義為 RFC2376。SOAP 1.2 HTTP/SOAP 消息的媒體類型為“application/soap+xml”,其編碼處理定義為 RFC3023。這些 RFC 規(guī)范定義了以下行為:

    SOAP 1.1
    HTTP/SOAP 請求的字符集由 HTTP 頭中 ContentType 的 charset 參數(shù)決定。而忽略 SOAP 消息的 XML 聲明部分中定義的 encoding 特性。如果未指定 ContentType 的 charset 參數(shù),則將其作為 US-ASCII 處理。

    SOAP 1.2
    HTTP/SOAP 請求的字符集由 HTTP 頭中 ContentType 的 charset 參數(shù)決定。而忽略 SOAP 消息的 XML 聲明部分中定義的 encoding 特性。如果未指定 ContentType 的 charset 參數(shù),則使用 XML 聲明部分中定義的 encoding 特性。如果 ContentType charset 參數(shù)和 XML 聲明的 encoding 特性均未定義,則將其作為 UTF-8 處理。

    WebLogic Server 8.1 行為是基于此規(guī)范的,因此,WebLogic Workshop 行為也基于此規(guī)范。如果您的客戶端通過 HTTP/SOAP 調(diào)用使用 WebLogic Workshop 開發(fā)的 Web service,請確保 ContentType charset 指定正確。

    發(fā)送 SOAP 消息
    默認情況下,WebLogic Server 以 UTF-8 編碼生成 HTTP/SOAP 消息,并將“encoding=UTF-8”追加到 SOAP 消息的 ContentType 頭中。

    注意:如果使用英語區(qū)域設(shè)置(如在 Unix 中使用 LANG=C)啟動 WebLogic Server,則您的 SOAP 消息只能使用 us-ascii字符,而不支持其他字符。如果您要在 Web service 中使用簡體中文字符,請以簡體中文區(qū)域設(shè)置啟動 WebLogic Server。

    如果您要在以英語區(qū)域設(shè)置啟動的 WebLogic Server 中使用非 us-ascii 字符,則要在 WebLogic Server 啟動腳本文件中定義以下啟動選項。這樣,即使是在英語區(qū)域設(shè)置環(huán)境中,WebLogic Server 也可以以 UTF-8 生成消息。

    注意:強烈建議為 SOAP 消息使用 UTF-8 編碼。

    -IWeblogic.webservice.i18n.charset=utf-8

    Workshop IDE 中的文件和編碼

    (1) 通道文件(擴展名:channel)

    默認編碼:UTF-8

    指定位置:xml 聲明的 encoding 特性

    示例:<?xml version="1.0" encoding="UTF-8" ?>

    (2) HTML 文件(擴展名:html)
    默認編碼:ISO-8859-1

    指定位置:頁面標(biāo)記

    示例:<META http-equiv="Content-Type" content="text/html;charset=GB2312">

    (3) JSP 文件(擴展名:jsp)
    默認編碼:ISO-8859-1

    指定位置:頁面標(biāo)記

    示例:<%@ page language="java" contentType="text/html;charset=UTF-8" %>

    指定位置:weblogic.xml

    示例:

    <jsp-param>

    <param-name>encoding</param-name>

    <param-value>UTF-8></param-value>

    <jsp-param>

    注意:如果在頁面標(biāo)記和 weblogic.xml 中指定的編碼不同,則使用頁面標(biāo)記中的值。

    (4) JSP 片斷(擴展名:jspf)
    默認編碼:ISO-8859-1

    指定位置:weblogic.xml

    示例:

    <jsp-param>

    <param-name>encoding</param-name>

    <param-value>UTF-8</param-value>

    </jsp-param>

    (5) WSDL 文件(擴展名:wsdl)
    默認編碼:UTF-8

    指定位置:xml 聲明的 encoding 特性

    示例:<?xml version="1.0" encoding="UTF-8" ?>

    (6) XML 文件(擴展名:xml)
    默認編碼:UTF-8

    指定位置:xml 聲明的 encoding 特性

    示例:<?xml version="1.0" encoding="UTF-8" ?>

    (7) XML Schema(擴展名:xsd)
    默認編碼:UTF-8

    指定位置:xml 聲明的 encoding 特性

    示例:<?xml version="1.0" encoding="UTF-8"? >

    (8) 其他文件
    使用 Java VM 的默認編碼。不能指定其他任何編碼。

    Web 應(yīng)用程序的編碼
    默認情況下,Web 應(yīng)用程序使用 UTF-8 編碼。

    如果要在您的 Web 應(yīng)用程序中使用其他編碼,可以使用“工具”->“應(yīng)用程序?qū)傩浴?>“編碼”菜單命令進行指定。

    此處指定的值將寫入 weblogic-application.xml 文件的 webapp.encoding.default 參數(shù)。

    注意:此屬性只適用于 HTTP 請求的編碼,而不適用于 HTTP 響應(yīng)。

    WebLogic Server 8.1 中包括的 Workshop 8.1 Beta 注意事項
    可能已經(jīng)在主目錄中創(chuàng)建了 Workshop 首選項文件 (.workshop.pref),對于 Windows 環(huán)境,該主目錄為 <啟動驅(qū)動器>:Documents and Settings<用戶名>。

    在啟動此 Workshop 8.1 版本之前,您可以重命名或刪除該文件,這樣,將會重新生成新的設(shè)置首選項文件,該文件使用適用于簡體中文環(huán)境的簡體中文字體的新設(shè)置。

    如果啟動此 Workshop 8.1 版本之前未重命名或刪除該文件,將使用帶有舊字體設(shè)置的舊首選項文件,則您在 IDE 屏幕上可能會看到一些亂碼。

    局限
    Java 控件 (.jcx) 文件名的多字節(jié)字符

    Java 控件 (.jcx) 文件名不能使用多字節(jié)字符。如果該文件名包含任何多字節(jié)字符,則其他 Web service 將無法訪問該控件。

    Java 控件 (.jcx) 描述
    屬性編輯器中顯示的 Java 控件的描述全是英文的。

    使用 wlwBuild 命令編譯應(yīng)用程序后的錯誤日志
    如果使用 wlwBuild 命令生成 Workshop 應(yīng)用程序,則下列錯誤將記錄到 workshop_errors.log 文件中:

    [AntTarget:build][]: Exception getting Server and Domain info, weblogic.management.ManagementError: [Management:141113] The Management subsystem was accessed before the initialization.
    [AntTarget:build][]: Unable to obtain server tempdir, J2EEApplicationService not available!
    [AntTarget:build][]: Error accessing WLS Management subsystem

    Xscript 的局限
    不能在 XScript 中使用多字節(jié)字符。

    編譯期間的錯誤消息
    在開發(fā)環(huán)境中編譯 java、jsp、jws、jpd、jdx、dtf、xq 或其他文件時,錯誤消息以英文顯示。

    EJB 方法名稱
    在 EJB 設(shè)計視圖中,如果您試圖使用包含多字節(jié)字符的方法名稱,將顯示錯誤對話框“無效的方法簽名”,并且您無法創(chuàng)建該方法。如果您要在方法名稱中使用多字節(jié)字符,請直接使用源代碼視圖編輯代碼。

    從數(shù)據(jù)庫創(chuàng)建 EJB 的局限
    此版本不支持從表名或列名包含多字節(jié)字符的數(shù)據(jù)庫表創(chuàng)建 EJB。

    可視化開發(fā)環(huán)境的局限(僅 Linux)
    不支持面向可視化的開發(fā)功能,不能在設(shè)計視圖中為 HTML 或 JSP 文件使用 WYSIWYG 編輯功能。

    窗口字體和字號(僅 Linux)
    由于對話框尺寸限制,要在創(chuàng)建新應(yīng)用程序時顯示所有描述文本,必須將窗口字體和字號分別設(shè)置為“默認值”以及 10 或更大值。

    這不會影響任何功能。如果要顯示所有描述文本,必須根據(jù)需要設(shè)置窗口字體的字體和字號。

    已知問題
    WebLogic Workshop JSP 編譯器問題
    使用 WebLogic Workshop JSP 編譯器編譯 JSP 文件時,如果該文件靜態(tài)包含包括多字節(jié)字符的文件,則多字節(jié)字符將顯示為亂碼。

    解決方法:編輯 weblogic.xml 文件以注釋掉包含 jspServlet 參數(shù)的塊。這樣,就會使用 WebLogic Server JSP 編輯器,即可避免該問題。

    <!-- Comment the jspServlet param out to go back to weblogic's jspc -->

    <jsp-param>

    <param-name>jspServlet</param-name>

    <param-value>weblogic.servlet.WlwJSPServlet</param-value>

    </jsp-param>

    Web Service (.jws) 文件的文件名包含多字節(jié)字符時的 Java 代理下載問題
    從 Workshop 測試瀏覽器的“概要”選項卡下載 Java 代理客戶端時,如果 Web Service (.jws) 文件的文件名包含多字節(jié)字符,則文件對話框中的文件名可能顯示為亂碼。

    解決方法:直接在文件對話框中輸入下載文件的文件名。

    應(yīng)用程序?qū)傩灾?WebLogic Server 的設(shè)置
    盡管該設(shè)置可以自動從存儲在服務(wù)器主目錄中的 config.xml 文件中加載,但主機名總是設(shè)置為“l(fā)ocalhost”。如果 config.xml 中 ListenAddress 屬性被設(shè)置為其他值,則必須手動編輯此屏幕中的該屬性值。

    域配置向?qū)⒅鳈C名設(shè)置為非“l(fā)ocalhost”值導(dǎo)致的問題
    在 stopWebLogic.cmd 或 stopWebLogic.sh 的 ADMIN_URL 定義中,“l(fā)ocalhost”值是硬編碼的。如果需要,必須直接編輯該值,方法如下:

    由:set ADMIN_URL="t3://localhost:7001"

    至:set ADMIN_URL="t3://test.beasys.com:7001"

    使用 javac 命令編譯 Web Service 客戶端
    使用 javac 命令編譯 Web Service 客戶端時,如果為 Java 代理客戶端使用可以從 WebLogic 測試瀏覽器的“概要”選項卡下載的 JAR 文件,請確保使用“-sourcepath”選項編譯它。如果編譯時未使用該選項,您將收到“源文件不可用”錯誤,并將產(chǎn)生編譯失敗。這是由 Sun JDK 造成的。

    如果您使用 ant 的 javac 任務(wù)或 servlet 容器(如果使用 JSP 創(chuàng)建 Web Service),將不會有同樣的問題。

    WebLogic Server 啟動控制臺亂碼(僅 Linux)
    WebLogic Server 啟動控制臺未啟用多字節(jié)字符。可以從“工具”菜單、WebLogic Server 和“啟動 WebLogic Server”訪問啟動控制臺。如果從簡體中文區(qū)域設(shè)置環(huán)境啟動 WebLogic Server,則服務(wù)器控制臺上的輸出消息將為亂碼。

    解決方法:使用啟用多字節(jié)字符的控制臺(如 kterm)和手動啟動 WebLogic Server。

    不同數(shù)據(jù)類型的 XQuery 映射
    可以從設(shè)置視圖打開 XQuery 編輯屏幕,在該屏幕中,不能通過拖放操作在不同的數(shù)據(jù)類型之間進行映射,如 (int) 和 (short) 之間,或者 (string) 和 (int) 之間。

    解決方法:要在不同的數(shù)據(jù)類型之間映射,可以使用折疊高級選項面板的編輯函數(shù)或在源代碼視圖中直接編輯 XQuery 映射。

    posted @ 2005-11-21 20:19 sharky的點滴積累 閱讀(1484) | 評論 (0)編輯 收藏

    Jdon的struts目錄樹
    http://www.jdon.com/jive/article.jsp?forum=62&thread=9732

    面向?qū)ο蟮膉avascript目錄樹控件設(shè)計與應(yīng)用
    http://cnbie.net/print_146048m52726.html

    http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=18043&tstart=148


    posted @ 2005-11-18 21:11 sharky的點滴積累 閱讀(249) | 評論 (0)編輯 收藏

    在使用Firefox的過程中,你是否遇到過很多這樣或者那樣的問題卻一直找不到答案,或者你想精通對Firefox瀏覽器的功能使用,那么下邊列舉的使用技巧將有助你快速掌握Firefox的使用。   
      
      問:怎樣提高Firefox的瀏覽速度?    
      
       答:在地址欄里輸入about:config,打開Firefox的設(shè)置。將network.http.pipelining和 network.http.proxy.pipelining都設(shè)置為true,將 network.http.pipelining.maxrequests設(shè)為8或更大,之后速度就將大有改觀。  
      
      問:關(guān)于標(biāo)簽Tab的問題?   
      
      答:Firefox是不需要插件即可支持的。可以使用熱鍵Ctrl+T,Ctrl+W來打開和關(guān)閉標(biāo)簽。另外可以通過自定義工具欄的方式把按鈕放到工具欄上。  
      
      Firefox的設(shè)置以及擴展和書簽是保存在什么地方的?   
      
       Firefox的插件是安裝在Windows系統(tǒng)用戶配置目錄里面的,通常這個目錄叫:“C:Documents and SettingsAdmin-istratorApplication DataMozillaFirefoxProfilesnq1y0aa.默認用戶” (這個目錄有可能因為你Windows的安裝設(shè)置不同而不同),如果你重裝系統(tǒng)前備份這個目錄,重裝系統(tǒng)后就不用重新安裝插件了,另外也有專門保存擴展和 設(shè)置的插件可供選擇。   
      
      問:Firefox怎樣實現(xiàn)像Maxthon那樣的Tab分頁瀏覽功能?   
      
       答:Firefox本身內(nèi)置分頁瀏覽功能,你可以按住Ctrl鍵點擊或者直接用鼠標(biāo)中鍵點擊鏈接便能在新Tab中打開新頁面,如果你覺得這樣太麻煩, Firefox也有許多Tab瀏覽的擴展可以供你選擇。這里推薦一款TabExtensions,它為你提供的Tab瀏覽功能比Maxthon的還要強大 得多。
      
      問:Firefox怎樣使用FlashGet等下載工具下載?     
      
      答: Firefox自身提供了強大的下載管理器,支持續(xù)傳,在管理器中直接打開下載文件等功能,但是有的朋友還是希望能夠使用FlashGet等專業(yè)下載軟 件,F(xiàn)irefox有許多擴展插件能夠完成這樣的功能,我向你推薦FlashGot,安裝后會擴展你的 右鍵菜單,你在下載鏈接上直接點右鍵便可以選擇用FlashGet下載了。     
      
      問:Firefox怎樣安裝XPI擴展插件?    
      
       答:在Firefox的菜單中選擇“文件→打開”,然后選擇要安裝的XPI擴展插件文件。稍后就可以看到Firefox會詢問你是否要安裝這個插件,點 擊“是”即可,注意新安裝的插件必須在重啟FireFox后才能生效(關(guān)閉所有的Firefox窗口,包括擴展,主題等窗口)。  
      
      問:Firefox怎樣安裝 Jar 主題文件?   
      
       答:有一些主題下載后是 .Jar 包壓縮的,如果要安裝,先打開 Firefox,然后打開 Tools - Themes 主題管理窗口,然后再把 .jar 文件直接拖放到這個窗口,就會開始安裝。安裝完成后,重啟 Firefox 即可。同樣的,你想要謝恢魈獾幕埃?也可以在Theme窗口中選擇你需要的主題,然后重啟Firefox即可。   
      
      問:怎樣讓Firefox使用多配置文件?   
      
       答:在Firefox啟動的時候后面加上 /p 參數(shù),你就可以打開Firefox的配置文件管理器,你能夠在這里添加刪除并且選擇你的配置文件。這樣你就可以使用不同的配置來 進行沖浪了。注意,不同的配置文件里面插件和主題也是獨立的。也就是說,你可以在兩個不同的配置文件里安裝兩套不同的插件。   
      
      在缺省安裝的情況下,在Windows的開始-運行對話框里輸入下面的命令就可以了。你可以根據(jù)你的Firefox的安裝位置的不同來進行更改:"C:Program FilesMozilla FirefoxFirefox.exe "/p   
      
      問:怎樣改變網(wǎng)頁中文字的大小?   
      
      答:在Friefox菜單中選擇 工具 選項 基本信息 字體和顏色 語言編碼選擇簡體中文,最小字體設(shè)置成12,確定后再看看網(wǎng)頁上的文字就會不一樣了。 或者使用快捷鍵ctrl+“+”/“-”改變字體網(wǎng)頁大小。  
      
      問:如何自定義Firefox的臨時文件存放地址?    
      
       答:打開Firefox地址欄輸入about:config 后回車,就會出現(xiàn)Firefox的詳細配置頁面。用右鍵新建一個字符串名為browser.cache.disk.parent_directory 然后輸入新的臨時文件的路徑即可。例如: D:Temp Files    
      
      問:安裝插件的時候遇到版本錯誤怎么辦?   
      
      答:在地址欄輸入:about:config 打開Firefox詳細配置頁面,找到: app.extentions.version 后面數(shù)字就是版本號,改成插件所支持的版本號,然后裝插件即可。
    posted @ 2005-11-17 19:12 sharky的點滴積累 閱讀(287) | 評論 (0)編輯 收藏

    Rediscover the Web

             就象FireFox的口號一樣,FireFox瀏覽器給人們?yōu)g覽網(wǎng)頁時的新的發(fā)現(xiàn)&選擇,免費,定制,人性化是Firefox瀏覽器給我的感覺.的確也如此,嶄新的遷移系統(tǒng)給人一種體貼的關(guān)心,明白的是在把使用IE的用戶拉向FireFox,FireFox的定制,免費的特性是軟件領(lǐng)域的新氣象,猶如Eclipse,同樣是一款定制,免費的IDE,更可說是一個平臺,正在逐漸吞噬Jbuilder等專業(yè)javaIDE的領(lǐng)地.相對MS的IE或許暴露除了他的不足,也給MS提出了挑戰(zhàn),用戶需求就是市場導(dǎo)向這是不變的真理.
     
    看看FireFox的feature:

    阻止彈出式窗口
    和惱人的彈出式廣告說再見吧! Firefox 可以有效阻止未經(jīng)許可的彈出窗口。
    分頁瀏覽
    使用這個節(jié)省時間的功能,您可以在同一窗口內(nèi)查看多個網(wǎng)頁。將鏈接在后臺標(biāo)簽頁中打開,當(dāng)您準(zhǔn)備好要閱讀其他頁面時,它們已經(jīng)載入完畢,您無需花費時間等待。
    隱私及安全
    Firefox 關(guān)心您的隱私及安全,不加載有害的 ActiveX 控件,不讓惡意的間諜程序入侵您的計算機。多種保護隱私的工具,讓您能掌控自己在網(wǎng)絡(luò)上的一舉一動。
    智能化的搜索功能
    在工具欄中已經(jīng)內(nèi)建了 Google 搜索功能,此外還有眾多搜索工具如 "關(guān)鍵字" 以及新的 "查找工具欄" 等功能。在地址欄輸入 "dict (要查詢的單詞)" 便可查閱字典,而隨手輸入網(wǎng)頁上的文字,F(xiàn)irefox 便會將您帶往該處。
    實時書簽
    整合 RSS,方便您訂閱最新頭條及網(wǎng)站更新信息。
    下載文件方便
    您下載的文件可自動置于桌面上,容易尋找。減少問東問西的情形,讓下載更流暢快速。
    體貼用戶
    簡單又直觀的 Firefox 擁有符合您習(xí)慣的完整功能:除了書簽、瀏覽歷史、全屏等工具之外,還可以自由縮放文字,符合您閱讀上的需求。
    放大縮小,隨心所欲
    Firefox 是世上最容易定制的瀏覽器了!您可定制工具欄添加按鈕,可以安裝新的擴展軟件來增加新功能,可以安裝符合個人風(fēng)格的主題外觀,還可以自行從難以計數(shù)的搜尋引擎中挑選適合的使用。Firefox 的功能多少、體態(tài)大小,由您決定。
    簡單容易的安裝方式
    Firefox 增強版 僅僅 5.7 MB,以寬帶下載僅需幾分鐘時間。安裝程序讓您迅速安裝 Firefox,而嶄新的遷移系統(tǒng)可將您的收藏夾、儲存密碼以及其它各種設(shè)置等數(shù)據(jù)從 Internet Explorer 及其它瀏覽器中導(dǎo)入 Firefox,您立刻能在網(wǎng)絡(luò)上四處游玩。
    開發(fā)者最好的朋友
    Firefox 擁有一組開發(fā)者使用的工具,包括強大的 JavaScript/CSS 控制臺、文件查看器等,提供您洞察網(wǎng)頁運作詳情的能力。

    FireFox提速




    posted @ 2005-11-16 21:01 sharky的點滴積累 閱讀(240) | 評論 (0)編輯 收藏

    今天申請了Gmail,早就聽說大名,今天聲請了個用用:
    聲請方法:
    .1) http://gmail.unitedemailsystems.com/

    在頁面的橫線下,右部,添入自己的email地址,然后點擊下面的 "add me", 免費Gmail賬號的邀請函就發(fā)到信箱了。

    (2)
    http://isnoop.net/gmail/

    輸入 Anti-bot key, 然后輸入自己的 有效Email地址,然后點擊"Request Inviation"即可。稍后Gmail邀請將被發(fā)到郵箱中。

    兩種都可以得到GMAIL~


    收發(fā)設(shè)置(FOXMAIL等各類收發(fā)程序)
    SMTP 端口465
    POP3 端口995
    必須都要求安全連接

    還有個簡單的辦法
    進入www.bytetest.com即可,無需邀請,象申請其他免費郵箱一樣簡單!

    初用了以下,感覺跟別的電子郵件不一樣哦
    使用Gmail郵箱常遇到的問題及解答
    Google的電子郵箱Gmail從入門到精通

    posted @ 2005-11-16 20:27 sharky的點滴積累 閱讀(329) | 評論 (0)編輯 收藏

    TELESYNC (TS) -
    A telesync is the same spec as a CAM except it uses an external audio source (most likely an audio jack in the chair for hard of hearing people). A direct audio source does not ensure a good quality audio source, as a lot of background noise can interfere. A lot of the times a telesync is filmed in an empty cinema or from the projection booth with a professional camera, giving a better picture quality. Quality ranges drastically, check the sample before downloading the full release. A high percentage of Telesyncs are CAMs that have been mislabeled.

      除了使用外置的音源(一般是影院座椅上為聽力不好的人設(shè)的耳機孔),TELESYSNC(TS) 和CAM的標(biāo)準(zhǔn)是相同的。這個直接的音源并不能保證是好的音源,這是它因為受到很多背景噪音的干擾。很多時候TS是在空的影院錄制,或是用專業(yè)攝像機在投影室錄制,所以圖象質(zhì)量可能比CAM好。質(zhì)量的起伏可能很大,在下載前最好查看SAMPLE。很大比例的TS是從CAM錯誤標(biāo)記成。

    TELECINE (TC) -
    A telecine machine copies the film digitally from the reels. Sound and picture should be very good, but due to the equipment involved and cost telecines are fairly uncommon. Generally the film will be in
    correct aspect ratio, although 4:3 telecines have existed. A great example is the JURASSIC PARK 3 TC done last year. TC should not be confused with TimeCode , which is a visible counter on screen throughout the film.

      TELECINE (TC) 使用電視電影機從膠片直接數(shù)字拷貝,其圖象和聲音質(zhì)量應(yīng)該很好。但由于使用的設(shè)備和費用很高,TC很少見。通常會使用正確的高寬比,但有時也有4:3的TC。去年的侏羅紀公園III是一個很好的例子。不應(yīng)將TC和TimeCode(時間碼)混淆,時間碼是一個在屏幕上可見的計數(shù)器。

    posted @ 2005-11-12 22:03 sharky的點滴積累 閱讀(248) | 評論 (0)編輯 收藏

    上篇講了如何安裝并測試MySQL,環(huán)境建好后就可以繼續(xù)我們的學(xué)習(xí)了。本篇主要熟悉一寫常用命令。

        1、啟動MySQL服務(wù)器

        實際上上篇已講到如何啟動MySQL。兩種方法: 一是用winmysqladmin,如果機器啟動時已自動運行,則可直接進入下一步操作。 二是在DOS方式下運行 d:mysqlbinmysqld

        2、進入mysql交互操作界面

        在DOS方式下,運行: d:mysqlbinmysql

        出現(xiàn): mysql 的提示符,此時已進入mysql的交互操作方式。

        如果出現(xiàn) "ERROR 2003: Can′t connect to MySQL server on ′localhost′ (10061)“,

    說明你的MySQL還沒有啟動。

        3、退出MySQL操作界面

        在mysql>提示符下輸入quit可以隨時退出交互操作界面:
        mysql> quit
        Bye
        你也可以用control-D退出。

        4、第一條命令

    mysql> select version(),current_date();
    +----------------+-----------------+
    | version() | current_date() |
    +----------------+-----------------+
    | 3.23.25a-debug | 2001-05-17 |
    +----------------+-----------------+
    1 row in set (0.01 sec)
    mysql>



        此命令要求mysql服務(wù)器告訴你它的版本號和當(dāng)前日期。嘗試用不同大小寫操作上述命令,看結(jié)果如何。結(jié)果說明mysql命令的大小寫結(jié)果是一致的。

        練習(xí)如下操作:

    mysql>Select (20+5)*4;
    mysql>Select (20+5)*4,sin(pi()/3);
    mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名為Result)
    &nbsp;&nbsp;&nbsp;&nbsp;<B>5、多行語句</B>
    &nbsp;&nbsp;&nbsp;&nbsp;一條命令可以分成多行輸入,直到出現(xiàn)分號“;”為止:
    <ccid_nobr>
    <table width="400" border="1" cellspacing="0" cellpadding="2"
    bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
    <tr>
        <td bgcolor="e6e6e6" class="code" style="font-size:9pt">
        <pre><ccid_code>  mysql> select
    -> USER()
    -> ,
    -> now()
    ->;
    +--------------------+---------------------+
    | USER() | now() |
    +--------------------+---------------------+
    | ODBC@localhost | 2001-05-17 22:59:15 |
    +--------------------+---------------------+
    1 row in set (0.06 sec)
    mysql>



        注意中間的逗號和最后的分號的使用方法。

        6、一行多命令

        輸入如下命令:

    mysql> SELECT USER(); SELECT NOW();
    +------------------+
    | USER() |
    +------------------+
    | ODBC@localhost |
    +------------------+
    1 row in set (0.00 sec)

    +---------------------+
    | NOW() |
    +---------------------+
    | 2001-05-17 23:06:15 |
    +---------------------+
    1 row in set (0.00 sec)
    mysql>



        注意中間的分號,命令之間用分號隔開。

        7、顯示當(dāng)前存在的數(shù)據(jù)庫

    mysql> show databases;
    +----------+
    | Database |
    +----------+
    | mysql |
    | test |
    +----------+
    2 row in set (0.06 sec)
    mysql>



        8、選擇數(shù)據(jù)庫并顯示當(dāng)前選擇的數(shù)據(jù)庫

    mysql> USE mysql
    Database changed
    mysql>
    (USE 和 QUIT 命令不需要分號結(jié)束。)
    mysql> select database();
    +---------------+
    | database() |
    +---------------+
    | mysql |
    +---------------+
    1 row in set (0.00 sec)



        9、顯示當(dāng)前數(shù)據(jù)庫中存在的表
        mysql> SHOW TABLES;

        10、顯示表(db)的內(nèi)容
    mysql>select * from db;

        11、命令的取消

        當(dāng)命令輸入錯誤而又無法改變(多行語句情形)時,只要在分號出現(xiàn)前就可以用 c來取消該條命令

    mysql> select
    -> user()
    -> c
    mysql>



        這是一些最常用的最基本的操作命令,通過多次練習(xí)就可以牢牢掌捂了。(T111)


    posted @ 2005-11-01 20:37 sharky的點滴積累 閱讀(230) | 評論 (0)編輯 收藏

    如果MySQL正在運行,首先殺之: killall -TERM mysqld。

    啟動MySQL:bin/safe_mysqld --skip-grant-tables &

    就可以不需要密碼就進入MySQL了。

    然后就是

    >use mysql

    >update user set password=password("new_pass") where user="root";

    >flush privileges;

    重新殺MySQL,用正常方法啟動MySQL
    posted @ 2005-11-01 20:28 sharky的點滴積累 閱讀(290) | 評論 (0)編輯 收藏

    [Linux入門]
    http://www.yesky.com/SoftChannel/72348973209223168/20030306/1655510.shtml

    linux常用命令:
    http://www.c51bbs.com/c51blog/user1/4098/archives/2005/1992.shtml
    [chinaitlabLinux專題]
    http://linux.chinaitlab.com/
    posted @ 2005-10-29 22:43 sharky的點滴積累 閱讀(202) | 評論 (0)編輯 收藏

    【疑難問題】
    雖然按照找的解決方案做了,但是還是出現(xiàn)如下錯誤提示:
    -- Cannot start Java debug process VM --

    com.sun.jdi.connect.VMStartException: VM initialization failed for:
    ERROR: transport error 202: connect failed: Connection refused ["tra
    ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT
    JDWP exit error JVMTI_ERROR_INTERNAL(113): No transports initialized

    百思不得其解,RUN模式?jīng)]問題,Debug模式就出來,看來不光是環(huán)境JDK路徑的問題,
    向大家求助一下

    posted @ 2005-10-29 22:24 sharky的點滴積累 閱讀(1345) | 評論 (1)編輯 收藏

    最近在JB2006上寫WebAPP時,在啟動服務(wù)器調(diào)試程序時,總是JB這樣報錯:
    -- Cannot start Java debug process VM --

    com.sun.jdi.connect.VMStartException: VM initialization failed for: F:\Borland\JBuilder2006\jdk1.5\bin\javaw -classpath "F:\Borland\JBuilder2006\thirdparty\jakarta-tomcat-5.5.9\bin\bootstrap.jar;F:\Borland\JBuilder2006\jdk1.5\lib\tools.jar"  "-Dcatalina.home=F:/Borland/JBuilder2006/thirdparty/jakarta-tomcat-5.5.9"  -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=yuchao-home:1123,suspend=y org.apache.catalina.startup.Bootstrap -config F:\jworkspace\GuestBook\Tomcat\conf\server8080.xml start
    ERROR: transport error 202: connect failed: Connection refused ["transport.c",L41]
    ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) ["debugInit.c",L497]
    JDWP exit error JVMTI_ERROR_INTERNAL(113): No transports initialized

    上網(wǎng)搜索了一下找到了原因:
    原處:http://blog.aspcool.com/zephyr/articles/2025.html

    我用JBuilder8以及JBuilder2005開發(fā)Web項目時, 不管使用自帶的Tomcat4還是Tomcat5,均無法進入Debug模式, 提示:
    -- Cannot start Java debug process VM --

    com.sun.jdi.connect.VMStartException: VM initialization failed for: C:\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\bin\bootstrap.jar;C:\JBuilder2005\jdk1.4\lib\tools.jar"  "-Dcatalina.home=C:/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27"  -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=suzpcssdgs613:2381,suspend=y org.apache.catalina.startup.Bootstrap -config D:\abc\Tomcat\conf\server8080.xml start
    Transport dt_socket failed to initialize, rc = 509.


    Goolge了一番后,終于找到了原因:
    由于我的機器上安裝了多個JDK,而且在環(huán)境變量%PATH%中, 第一個出現(xiàn)的Java路徑是"D:\jdk1.5\jre\bin",而JB使用的Java是"C:\JBuilder2005\jdk1.4\bin\ javaw",因而導(dǎo)致了"Connector"的問題.

    顯然, 解決的方法無非是以下二者之一::
    一. 設(shè)置Path變量的Java路徑, 使之指向JB的Java
    二. 設(shè)置Jbuilder's JDK路徑,使之同Path里面的JDK路徑一致 (我的做法). 具體方法:
     a. Tool->Configure->JDK, 把 "D:\jdk1.5" 加進去.
     b. Project->Project Properties->Run, 依次選擇 "Server" runtime configuration, "Edit", "JDK", use the "specified jdk" , select the jdk1.5

    然后, 啟動Debug模式, OK. 從以下的輸出可以看出不同(注意下劃線部分)
    D:\jdk1.5\bin\javaw -classpath "C:\JBuilder2005\thirdparty\jakarta-tomcat-5.0.27\bin\bootstrap.jar;D:\jdk1.5\lib\tools.jar"  "-Dcatalina.home=C:/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27"  -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=suzpcssdgs613:2779,suspend=y org.apache.catalina.startup.Bootstrap -config D:\abc\Tomcat\conf\server8080.xml start
    Mar 15, 2005 11:26:12 AM org.apache.coyote.http11.Http11Protocol init
    http://forum.java.sun.com/thread.jspa?threadID=577610&messageID=3025506

    問題分析:
    Java的調(diào)試是通過所謂的JPDA架構(gòu)(Java Platform Debugger Architecture) 和JDWP協(xié)議(Java Debug Wire Protocol), 來實現(xiàn)的. 在JPDA下, 調(diào)試器與被調(diào)試的VM(Target VM) 通過Transport來通信. Sun實現(xiàn)了兩種Transport: 基于Socket的TCP/IP Transport和共享內(nèi)存的Transport. 基于Socket的方式可以實現(xiàn)跨平臺的遠程調(diào)試, 而共享內(nèi)存的方式只能在Windows平臺下的同一臺機器上.
    在JPDA下, 調(diào)試器通過封裝了Transport的Connector來建立同Target VM的連接, 而Target VM上也有一個VM本身內(nèi)置的封裝了Transport的Agent來接受連接.

    具體到SUN的VM實現(xiàn), 為了啟動JDWP Agent以被調(diào)試, 在運行Target VM的時候需要加入以下參數(shù): -Xdebug(啟動Debugging) 和 -Xrunjdwp:(配置Connector)

    -Xrunjdwp需要transport屬性指明Connector類型(Socket還是Shared Memory), server屬性指明主動還是被動(server='y', 被動監(jiān)聽Debugger的連接, server='n', 主動連接到Debugger, 默認是'n'), Address屬性(當(dāng)server='y'的時候, 表明監(jiān)聽得端口, 當(dāng)server=n的時候,表明Debugger的地址.

    回到JB的問題上, 對照JB給出的啟動調(diào)試的命令行參數(shù):-Xrunjdwp:transport=dt_socket,address=suzpcssdgs613:2381 可以知道:JB使用socket方式的Connector啟動Tomcat5(org.apache.catalina.startup.Bootstrap), 主動連接到2381端口上的調(diào)試器.

    posted @ 2005-10-29 14:48 sharky的點滴積累 閱讀(790) | 評論 (0)編輯 收藏

    現(xiàn)在開發(fā)應(yīng)用程序經(jīng)常使用一些所見即所得的開發(fā)環(huán)境,使得用戶界面的制作非常方便。然而,用戶界面是最容易發(fā)生需求變更的部分,用戶界面發(fā)生變化,經(jīng)常對業(yè)務(wù)模塊產(chǎn)生影響。并且,用戶界面是不利于自動測試的。一旦某些代碼依賴用戶界面,這樣的代碼就很難在別的模塊中調(diào)用了,因此業(yè)務(wù)邏輯不能在界面層次中進行,否則會造成不能復(fù)用,不能復(fù)用自然會增加復(fù)制粘貼的代碼,造成錯誤的擴散,放大需求變更的影響。在程序設(shè)計中,應(yīng)該盡量做到用戶界面和底層的業(yè)務(wù)模型分離。

    用戶界面和業(yè)務(wù)模塊的互動方式,在程序設(shè)計中經(jīng)常采用MVC模式。MVC模式并不是一個特別的模式,而是一些特定模式的組合。基本上包括三個對象:業(yè)務(wù)模塊(Model)、用戶界面(View)和控制器(Controller),關(guān)系如下:



    圖中實線表示高耦合的依賴關(guān)系,虛線表示低耦合的消息關(guān)系。業(yè)務(wù)模塊是不依賴用戶界面的,這樣就隔離了用戶界面的變更對業(yè)務(wù)程序的影響。用戶界面負責(zé)收集用戶的輸入,顯示用戶需要的數(shù)據(jù);控制器負責(zé)將用戶的請求調(diào)用到實際的業(yè)務(wù)程序,也將業(yè)務(wù)程序處理的結(jié)果回送給用戶界面;業(yè)務(wù)程序具體處理業(yè)務(wù)操作。同時業(yè)務(wù)模塊可能主動發(fā)送消息到用戶界面,通知界面顯示數(shù)據(jù)。

    在具體的環(huán)境下,這些因素可能發(fā)生一些變化。比如,在web開發(fā)中,由于web應(yīng)用程序的性質(zhì),用戶界面是在瀏覽器上運行的,而界面的控制和業(yè)務(wù)模塊在瀏覽器上運行,所以在web應(yīng)用中通常采用這種典型的MVC模式。并且在Web應(yīng)用中,不存在服務(wù)器主動向客戶端“推”數(shù)據(jù),因此從Model到View之間的虛線也是不存在的。在windows窗體程序中,控制器和界面經(jīng)常是合并在一起的,比如MFC框架中使用的Document-View模式,其中的Document對應(yīng)MVC中的Model,負責(zé)保存業(yè)務(wù)數(shù)據(jù),處理業(yè)務(wù)邏輯,View相當(dāng)于MVC中的View+Controller,負責(zé)用戶界面的顯示、用戶輸入的收集和畫面的跳轉(zhuǎn)控制。

    好的設(shè)計和壞的設(shè)計有時候需要寫的代碼是一樣多的,但是這些代碼放的位置不一樣。MVC中最重要的一點就是清楚Controller應(yīng)該處于什么樣的地位,應(yīng)該完成什么樣的功能。下面用一個web應(yīng)用程序的例子來說明一下。

    Jsp編程有一些MVC的框架,比如Struts,Struts控制器的工作如下:首先是一個請求分派機制,負責(zé)監(jiān)聽請求和分配請求,然后是一個Command模式的實現(xiàn),負責(zé)處理請求。首先收到服務(wù)器收到客戶端的http請求,交給控制器分析其中的地址,在一個配置文件中尋找對應(yīng)的處理者(一個Action的子類),建立這個類的實例,隨后執(zhí)行其execute方法,Action類中調(diào)用業(yè)務(wù)模塊進行實際業(yè)務(wù)的處理(在處理之前進行必要的準(zhǔn)備,比如分析請求的參數(shù),將其轉(zhuǎn)化為業(yè)務(wù)模型了解的對象),得到處理結(jié)果,根據(jù)處理的結(jié)果決定需要顯示的View。這個需要顯示的View在Struts框架中也是在文件中配置的。

    這是一種集中式的控制器,應(yīng)用程序使用一個統(tǒng)一的Controller。不僅使業(yè)務(wù)和界面分離開,并且界面的流程完全由同一個對象來控制。最重要的是,使得功能的修改和追加變得比較方便,控制器成為業(yè)務(wù)模塊的緩沖,減輕了需求變化對業(yè)務(wù)模塊的影響。

    很多windows窗體程序也采用這樣的控制器。有一個開放源碼的.Net開發(fā)工具,叫做SharpDev,本身也是用c#開發(fā)的,采用的就是這樣的集中控制方式。SharpDev是用add-in的方式進行增量開發(fā)的,程序中的功能,如打開文件、保存文件、運行某個向?qū)У裙δ芏际且粋€個獨立的add-in,使用了Command模式。程序運行過程大致如下:應(yīng)用程序初始化的時候,讀取配置文件中所有名稱為*.add-in的文件,得到程序中所有的add-in,可以把這些add-in看作一個ICommand接口的實現(xiàn)。根據(jù)配置文件建立這些ICommand的實例,綁定在對應(yīng)的菜單項和工具欄按鈕上。當(dāng)用戶點擊這些菜單項和工具欄按鈕的時候,由一個任務(wù)分派的對象將請求定位到一個Command上,執(zhí)行其Run方法。Command執(zhí)行的時候可能要調(diào)用業(yè)務(wù)程序,業(yè)務(wù)程序是通過一系列的Service對外提供功能的,不直接向外界暴露。Controller就是負責(zé)定向用戶操作到具體Command的分派器。

    窗體應(yīng)用程序還有一個特點:有時候業(yè)務(wù)改變的時候,需要用戶界面作出相應(yīng)的變化。比如:當(dāng)代碼編輯器中的文字發(fā)生變更的時候,工具欄上的保存按鈕要置為可用狀態(tài),當(dāng)保存后,保存按鈕又要置為灰色。這樣的功能是通過一個Observeor模式來實現(xiàn)的,這就避免了業(yè)務(wù)模塊對用戶界面的依賴,并且這樣的模式也便于同時將消息發(fā)送給多個對象,比如保存按鈕不僅要在工具欄上出現(xiàn),也要在菜單上出現(xiàn),這樣的變化是不會影響業(yè)務(wù)模塊的。在SharpDev中,這個交互的過程也是在業(yè)務(wù)模塊對外提供的Service中通過delegate來實現(xiàn)的。

    很多應(yīng)用程序采用的是另一種控制模式:每個畫面和窗口使用自己的控制器。在窗體程序中,這樣的方式實際上就將用戶界面和控制器融合在一起了,比如MFC中的Document-View,View不僅實現(xiàn)用戶數(shù)據(jù)的展示和輸入數(shù)據(jù)的收集,還要將用戶的輸入進行基本的處理,轉(zhuǎn)變?yōu)闃I(yè)務(wù)模塊了解的類型,調(diào)用業(yè)務(wù)模塊進行處理,最后跳轉(zhuǎn)到別的窗口。

    在ASP.NET中使用code behide的編程框架,實際上也是為每一個用戶界面采用了一個獨立的Controller,aspx文件就是用戶界面,對應(yīng)的code behide代碼就是他的控制器。這樣的框架減少了程序的靈活性,但是在一般情況下可以使應(yīng)用程序的框架變得簡單和直接。

    原文出處:http://www.cnblogs.com/lane_cn/articles/155254.html
    posted @ 2005-10-23 17:34 sharky的點滴積累 閱讀(191) | 評論 (0)編輯 收藏

    有空需要好好讀讀的書:
    《程序員修煉之道》
    《Effective Java 中文版》Java經(jīng)典之作
    《高級TCP/IP編程》雖然很老,但是很有價值。
    《Java Development with Spring Framework》








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

    很多人推薦的書,現(xiàn)在出了中文版
    s1095559.jpg


    經(jīng)典的J2ee design patterns方面的書
    s1371848.jpg


    -------------------
    很少看到關(guān)于寫CSS的書,不知道這本書給CSS設(shè)計帶來什么
    Zen:禪,我想是一些CSS設(shè)計的規(guī)律
    s1429062.jpg


    ---------------------------
    無意之間知道的書,看封面不錯,有空找來看看
    s1327824.jpg

    posted @ 2005-10-13 20:58 sharky的點滴積累 閱讀(149) | 評論 (0)編輯 收藏

    Statement 接口提供了三種執(zhí)行 SQL 語句的方法:executeQuery、executeUpdate 和 execute。使用哪一個方法由 SQL 語句所產(chǎn)生的內(nèi)容決定。
    
    方法 executeQuery 用于產(chǎn)生單個結(jié)果集的語句,例如 SELECT 語句。
    
    方法 executeUpdate 用于執(zhí)行 INSERT、UPDATE 或 DELETE 語句以及 SQL DDL(數(shù)據(jù)定義語言)語句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或DELETE 語句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一個整數(shù),指示受影響的行數(shù)(即更新計數(shù))。對于 CREATE TABLE 或DROP TABLE 等不操作行的語句,executeUpdate 的返回值總為零。
    
    方法 execute 用于執(zhí)行返回多個結(jié)果集、多個更新計數(shù)或二者組合的語句。因為多數(shù)程序員不會需要該高級功能,所以本概述后面將在單獨一節(jié)中對其進行介紹。
    
    執(zhí)行語句的所有方法都將關(guān)閉所調(diào)用的 Statement 對象的當(dāng)前打開結(jié)果集(如果存在)。這意味著在重新執(zhí)行 Statement 對象之前,需要完成對當(dāng)前ResultSet 對象的處理。
    
    ?wèi)?yīng)注意,繼承了 Statement 接口中所有方法的 PreparedStatement 接口都有自己的 executeQuery、executeUpdate 和 execute 方法。Statement 對象本身不包
    SQL 語句,因而必須給 Statement.execute 方法提供 SQL 語句作為參數(shù)。PreparedStatement 對象并不將 SQL 語句作為參數(shù)提供給這些方法,因為它們已
    經(jīng)包含預(yù)編譯 SQL 語句。CallableStatement 對象繼承這些方法的
    PreparedStatement 形式。對于這些方法的 PreparedStatement 或CallableStatement 版本,使用查詢參數(shù)將拋出 SQLException。
    
    
    4.1.3 語句完成
    
    當(dāng)連接處于自動提交模式時,其中所執(zhí)行的語句在完成時將自動提交或還原。語句在已執(zhí)行且所有結(jié)果返回時,即認為已完成。對于返回一個結(jié)果集的 executeQuery 方法,在檢索完 ResultSet 對象的所有行時該語句完成。對于方法executeUpdate,當(dāng)它執(zhí)行時語句即完成。但在少數(shù)調(diào)用方法 execute 的情況中,在檢索所有結(jié)果集或它生成的更新計數(shù)之后語句才完成。
    
    有些 DBMS 將已存儲過程中的每條語句視為獨立的語句;而另外一些則將整個過程視為一個復(fù)合語句。在啟用自動提交時,這種差別就變得非常重要,因為它影響什么時候調(diào)用 commit 方法。在前一種情況中,每條語句單獨提交;在后一種情況中,所有語句同時提交。
    
    
    4.1.4 關(guān)閉 Statement 對象
    
    Statement 對象將由 Java 垃圾收集程序自動關(guān)閉。而作為一種好的編程風(fēng)格,應(yīng)在不需要 Statement 對象時顯式地關(guān)閉它們。這將立即釋放 DBMS 資源,有助于避免潛在的內(nèi)存問題。
    
    
    4.1.5 Statement 對象中的 SQL 轉(zhuǎn)義語法
    
    Statement 可包含使用 SQL 轉(zhuǎn)義語法的 SQL 語句。轉(zhuǎn)義語法告訴驅(qū)動程序其中的代碼應(yīng)該以不同方式處理。驅(qū)動程序?qū)呙枞魏无D(zhuǎn)義語法,并將它轉(zhuǎn)換成特定數(shù)據(jù)庫可理解的代碼。這使得轉(zhuǎn)義語法與 DBMS 無關(guān),并允許程序員使用在沒有轉(zhuǎn)義語法時不可用的功能。
    
    
    轉(zhuǎn)義子句由花括號和關(guān)鍵字界定:
    
    {keyword . . . parameters . . . }
    
    該關(guān)鍵字指示轉(zhuǎn)義子句的類型,如下所示。
    
    
    escape 表示 LIKE 轉(zhuǎn)義字符
    
    字符“%”和“_”類似于 SQL LIKE 子句中的通配符(“%”匹配零個或多個字符,而“_”則匹配一個字符)。為了正確解釋它們,應(yīng)在其前面加上反斜杠(“”),它是字符串中的特殊轉(zhuǎn)義字符。在查詢末尾包括如下語法即可指定用作轉(zhuǎn)義字符的字符:
    
    {escape 'escape-character'}
    
    
    例如,下列查詢使用反斜杠字符作為轉(zhuǎn)義字符,查找以下劃線開頭的標(biāo)識符名:
    
    stmt.executeQuery("SELECT name FROM Identifiers WHERE Id LIKE `\_%' {escape `'};
    
    fn 表示標(biāo)量函數(shù)
    
    
    幾乎所有 DBMS 都具有標(biāo)量值的數(shù)值、字符串、時間、日期、系統(tǒng)和轉(zhuǎn)換函數(shù)。要使用這些函數(shù),可使用如下轉(zhuǎn)義語法:關(guān)鍵字 fn 后跟所需的函數(shù)名及其參數(shù)。例如,下列代碼調(diào)用函數(shù) concat 將兩個參數(shù)連接在一起:
    
    {fn concat("Hot", "Java")};
    
    可用下列語法獲得當(dāng)前數(shù)據(jù)庫用戶名:
    
    {fn user()};
    
    
    標(biāo)量函數(shù)可能由語法稍有不同的 DBMS 支持,而它們可能不被所有驅(qū)動程序支持。各種 DatabaseMetaData 方法將列出所支持的函數(shù)。例如,方法getNumericFunctions 返回用逗號分隔的數(shù)值函數(shù)列表,而方法getStringFunctions 將返回字符串函數(shù),等等。
    
    驅(qū)動程序?qū)⑥D(zhuǎn)義函數(shù)調(diào)用映射為相應(yīng)的語法,或直接實現(xiàn)該函數(shù)。
    
    
    d、t 和 ts 表示日期和時間文字
    
    DBMS 用于日期、時間和時間標(biāo)記文字的語法各不相同。JDBC 使用轉(zhuǎn)義子句支持這些文字的語法的 ISO 標(biāo)準(zhǔn)格式。驅(qū)動程序必須將轉(zhuǎn)義子句轉(zhuǎn)換成 DBMS 表示。
    
    例如,可用下列語法在 JDBC SQL 語句中指定日期:
    
    {d `yyyy-mm-dd'}
    
    
    在該語法中,yyyy 為年代,mm 為月份,而 dd 則為日期。驅(qū)動程序?qū)⒂玫葍r的特定于 DBMS 的表示替換這個轉(zhuǎn)義子句。例如,如果 '28- FEB-99' 符合基本數(shù)據(jù)庫的格式,則驅(qū)動程序?qū)⒂盟鎿Q {d 1999-02-28}。
    
    對于 TIME 和 TIMESTAMP 也有類似的轉(zhuǎn)義子句:
    
    {t `hh:mm:ss'}
    {ts `yyyy-mm-dd hh:mm:ss.f . . .'}
    
    TIMESTAMP 中的小數(shù)點后的秒(.f . . .)部分可忽略。
    
    
    call 或 ? = call 表示已存儲過程
    
    
    
    如果數(shù)據(jù)庫支持已存儲過程,則可從 JDBC 中調(diào)用它們,語法為:
    
    {call procedure_name[(?, ?, . . .)]}
    
    
    或(其中過程返回結(jié)果參數(shù)):
    
    {? = call procedure_name[(?, ?, . . .)]}
    
    
    方括號指示其中的內(nèi)容是可選的。它們不是語法的必要部分。
    
    輸入?yún)?shù)可以為文字或參數(shù)。有關(guān)詳細信息,參見 JDBC 指南中第 7 節(jié),“CallableStatement”。
    
    
    可通過調(diào)用方法 DatabaseMetaData.supportsStoredProcedures 檢查數(shù)據(jù)庫是否支持已存儲過程。
    
    
    
    oj 表示外部連接
    
    
    
    外部連接的語法為
    
    {oj outer-join}
    
    
    其中 outer-join 形式為
    
    table LEFT OUTER JOIN {table / outer-join} ON search-condition
    
    
    外部連接屬于高級功能。有關(guān)它們的解釋可參見 SQL 語法。JDBC 提供了三種DatabaseMetaData 方法用于確定驅(qū)動程序支持哪些外部連接類型:supportsOuterJoins、supportsFullOuterJoins 和supportsLimitedOuterJoins
    。
    
    
    方法 Statement.setEscapeProcessing 可打開或關(guān)閉轉(zhuǎn)義處理;缺省狀態(tài)為打開。當(dāng)性能極為重要時,程序員可能想關(guān)閉它以減少處理時間。但通常它將出于打開狀態(tài)。應(yīng)注意: setEscapeProcessing 不適用于 PreparedStatement 對象,因為在調(diào)用該語句前它就可能已被發(fā)送到數(shù)據(jù)庫。有關(guān)預(yù)編譯的信息,參見PreparedStatement。
    
    
    4.1.6 使用方法 execute
    
    execute 方法應(yīng)該僅在語句能返回多個 ResultSet 對象、多個更新計數(shù)或ResultSet 對象與更新計數(shù)的組合時使用。當(dāng)執(zhí)行某個已存儲過程或動態(tài)執(zhí)行未知 SQL 字符串(即應(yīng)用程序程序員在編譯時未知)時,有可能出現(xiàn)多個結(jié)果的情況,盡管這種情況很少見。例如,用戶可能執(zhí)行一個已存儲過程(使用 CallableStatement 對象 - 參見第 135 頁的 CallableStatement),并且該已存儲過程可執(zhí)行更新,然后執(zhí)行選擇,再進行更新,再進行選擇,等等。通常使用已存儲過程的人應(yīng)知道它所返回的內(nèi)容。
    
    因為方法 execute 處理非常規(guī)情況,所以獲取其結(jié)果需要一些特殊處理并不足為怪。例如,假定已知某個過程返回兩個結(jié)果集,則在使用方法 execute 執(zhí)行該過程后,必須調(diào)用方法 getResultSet 獲得第一個結(jié)果集,然后調(diào)用適當(dāng)?shù)膅etXXX 方法獲取其中的值。要獲得第二個結(jié)果集,需要先調(diào)用 getMoreResults方法,然后再調(diào)用 getResultSet 方法。如果已知某個過程返回兩個更新計數(shù),則首先調(diào)用方法 getUpdateCount,然后調(diào)用 getMoreResults,并再次調(diào)用getUpdateCount。
    
    對于不知道返回內(nèi)容,則情況更為復(fù)雜。如果結(jié)果是 ResultSet 對象,則方法execute 返回 true;如果結(jié)果是 Java int,則返回 false。如果返回 int,則意味著結(jié)果是更新計數(shù)或執(zhí)行的語句是 DDL 命令。在調(diào)用方法 execute 之后要做的第一件事情是調(diào)用 getResultSet 或 getUpdateCount。調(diào)用方法 getResultSet可以獲得兩個或多個 ResultSet 對象中第一個對象;或調(diào)用方法 getUpdateCount 可以獲得兩個或多個更新計數(shù)中第一個更新計數(shù)的內(nèi)容。
    
    當(dāng) SQL 語句的結(jié)果不是結(jié)果集時,則方法 getResultSet 將返回 null。這可能意味著結(jié)果是一個更新計數(shù)或沒有其它結(jié)果。在這種情況下,判斷 null 真正含義的唯一方法是調(diào)用方法 getUpdateCount,它將返回一個整數(shù)。這個整數(shù)為調(diào)用語句所影響的行數(shù);如果為 -1 則表示結(jié)果是結(jié)果集或沒有結(jié)果。如果方法getResultSet 已返回 null(表示結(jié)果不是 ResultSet 對象),則返回值 -1 表示沒有其它結(jié)果。也就是說,當(dāng)下列條件為真時表示沒有結(jié)果(或沒有其它結(jié)果):
    
    ((stmt.getResultSet() == null) && (stmt.getUpdateCount() == -1))
    如果已經(jīng)調(diào)用方法 getResultSet 并處理了它返回的 Resul
    posted @ 2005-10-12 20:24 sharky的點滴積累 閱讀(1033) | 評論 (0)編輯 收藏

    首先我們要明白用response.sendRedirect做轉(zhuǎn)向的原理,它其實是向瀏覽器發(fā)送一個特殊的Header,
    然后由瀏覽器來做轉(zhuǎn)向,轉(zhuǎn)到指定的頁面,所以用sendRedirect時,瀏覽器的地址欄上可以看到地址的變化。
    用則不同,它是直接在server做的,瀏覽器并不知道,也不和瀏覽器打交道,
    這從瀏覽器的地址并不變化可以看出。
    所以使用response.sendRedirect時就需要注意以下兩點:
    1,在使用response.sendRedirect時,前面不能有HTML輸出。
    這并不是絕對的,不能有HTML輸出其實是指不能有HTML被送到了瀏覽器。事實上現(xiàn)在的server都有cache機制
    ,一般在8K(我是說JSP  SERVER),這就意味著,除非你關(guān)閉了cache,
    或者你使用了out.flush()強制刷新,那么在使用sendRedirect之前,
    有少量的 HTML輸出也是允許的。
    如果報錯說,“一些信息已經(jīng)被submitted”(原文忘了),那么,你就要注意看了,前面是不是有過多的HTML輸出了。
    
    2,在response.sendRedirect之后,應(yīng)該緊跟一句return;
    我們已經(jīng)知道response.sendRedirect是通過瀏覽器來做轉(zhuǎn)向的,所以只有在頁面處理完成后,
    才會有實際的動作。既然你已經(jīng)要做轉(zhuǎn)向了,那么后的輸出還有什么意義呢?而且有可能會因為后面的輸出導(dǎo)致轉(zhuǎn)向失敗。
    
    # posted by lazio1900 @ 2005-09-08 08:10 評論(0)
    posted @ 2005-10-12 20:22 sharky的點滴積累 閱讀(1344) | 評論 (0)編輯 收藏

    POST是表單提交,GET是字符串提交
    
    post是隱式地提交你的表單數(shù)據(jù)
    get是顯示地提交你的表單數(shù)據(jù)所有數(shù)據(jù)都在url里會顯示出來
    
    Post 與Get的真正區(qū)別是其作用上的不同,Post是被設(shè)計用來向上放東西的(就像其名字所暗示的那樣);而Get是被設(shè)計用來從服務(wù)器取東西的,它所以也能夠向服務(wù)器傳送較少的數(shù)據(jù),是以為當(dāng)你取東西時,你需要指明取什么,而我們有時候利用指明取什么的機制來向服務(wù)器放東西。
    基于以上原因,Post與Get在http中傳送的方式是不同的,Get的參數(shù)是在http的頭部傳送的,而Post的數(shù)據(jù)則是在http請求的內(nèi)容里傳送的,一般來說,我們沒有看到這中間的差別,那是因為編程環(huán)境幫(如servlet)我們隱藏了其不同
    GET方法將數(shù)據(jù)打包放置在環(huán)境變量QUERY_STRING中作為URL整體的一部分傳遞給服務(wù)器。 POST做很多類似GET同樣的事情, 不同的地方就是它是分離地傳遞數(shù)據(jù)給腳本. 你的腳本通過標(biāo)準(zhǔn)輸入獲取這些數(shù)據(jù). QUERY_STRING環(huán)境變量將不再設(shè)置.因此POST有更好的安全性,尤其如果你的表單中有很多數(shù)據(jù)的話. 當(dāng)你用GET, 這個服務(wù)器就分配變量QUERY_STRING給所有的表單數(shù)據(jù), 但是這個變量可存儲量是有限的. 換句話說,如果你有很多數(shù)據(jù)但是你又用GET,你會丟失很多數(shù)據(jù)。 如果你用POST, 你可以盡可能多地使用數(shù)據(jù), 因為這些數(shù)據(jù)從來也不分配到一個變量里。此外用post傳遞數(shù)據(jù)還有一個好處,它不會象get那樣把你傳送的數(shù)據(jù)暴露在瀏覽器的地址欄中,而且由于 HTTP/GET常見于Web鏈接,懷有惡意的人可能利用它實施欺騙,使別人在不知不覺中用自己的安全標(biāo)識調(diào)用Web服務(wù),卻還以為自己在點擊Web鏈接。比如象下面這種:form.php?name=genius&pwd=123456 ,明白了吧?所以還是用post讓人安心一點啦
    posted @ 2005-10-12 20:20 sharky的點滴積累 閱讀(639) | 評論 (2)編輯 收藏

    Vector和ArrayList在使用上非常相似,都可用來表示一組數(shù)量可變的對象應(yīng)用的集合,并且可以隨機地訪問其中的元素
     Vector的方法都是同步的(Synchronized),是線程安全的(thread-safe),而ArrayList的方法不是,由于線程的同步必然要影響性能,因此,ArrayList的性能比Vector好
     當(dāng)Vector或ArrayList中的元素超過它的初始大小時,Vector會將它的容量翻倍,而ArrayList只增加50%的大小,這樣,ArrayList就有利于節(jié)約內(nèi)存空間。


      Hashtable和HashMap區(qū)別
     Hashtable和HashMap它們的性能方面的比較類似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。


    ArrayList和LinkedList區(qū)別
     對于處理一列數(shù)據(jù)項,Java提供了兩個類ArrayList和LinkedList,ArrayList的內(nèi)部實現(xiàn)是基于內(nèi)部數(shù)組Object[],所以從概念上講,它更象數(shù)組,但LinkedList的內(nèi)部實現(xiàn)是基于一組連接的記錄,所以,它更象一個鏈表結(jié)構(gòu),所以,它們在性能上有很大的差別。
     從上面的分析可知,在ArrayList的前面或中間插入數(shù)據(jù)時,你必須將其后的所有數(shù)據(jù)相應(yīng)的后移,這樣必然要花費較多時間,所以,當(dāng)你的操作是在一列數(shù)據(jù)的后面添加數(shù)據(jù)而不是在前面或中間,并且需要隨機地訪問其中的元素時,使用ArrayList會提供比較好的性能
     而訪問鏈表中的某個元素時,就必須從鏈表的一端開始沿著連接方向一個一個元素地去查找,直到找到所需的元素為止,所以,當(dāng)你的操作是在一列數(shù)據(jù)的前面或中間添加或刪除數(shù)據(jù),并且按照順序訪問其中的元素時,就應(yīng)該使用LinkedList了。
     如果在編程中,1,2兩種情形交替出現(xiàn),這時,你可以考慮使用List這樣的通用接口,而不用關(guān)心具體的實現(xiàn),在具體的情形下,它的性能由具體的實現(xiàn)來保證。

     配置集合類的初始大小
     在Java集合框架中的大部分類的大小是可以隨著元素個數(shù)的增加而相應(yīng)的增加的,我們似乎不用關(guān)心它的初始大小,但如果我們考慮類的性能問題時,就一定要考慮盡可能地設(shè)置好集合對象的初始大小,這將大大提高代碼的性能。
     比如,Hashtable缺省的初始大小為101,載入因子為0.75,即如果其中的元素個數(shù)超過75個,它就必須增加大小并重新組織元素,所以,如果你知道在創(chuàng)建一個新的Hashtable對象時就知道元素的確切數(shù)目如為110,那么,就應(yīng)將其初始大小設(shè)為110/0.75=148,這樣,就可以避免重新組織內(nèi)存并增加大小。
    posted @ 2005-10-12 19:40 sharky的點滴積累 閱讀(2991) | 評論 (1)編輯 收藏

    Eclipse的WTP Project發(fā)表了最新的兩個Tutorial。 一個是來自于IBM developerWorks的 Building Web Applications with Eclipse, WTP, and Derby,介紹如何使用WTP來開發(fā)Derby應(yīng)用程序(Derby是IBM貢獻個Apache的一個源碼開放的數(shù)據(jù)庫系統(tǒng),它的商用版本就是IBM Cloudscape)。 另一個是Building a CMP Based School Schedule Web Application,介紹了如何使用WTP,JBoss和XDoclet開發(fā)一個基于CMP的EJB項目。 這兩個都可以作為學(xué)習(xí)WTP不錯的教材。
    摘至kukooBlog
    posted @ 2005-10-04 20:54 sharky的點滴積累 閱讀(165) | 評論 (0)編輯 收藏

     How do I make SWT show the Windows XP skins?
    A: In order for an application to show the Windows XP skins, there must be a manifest file located in the same place as the executable that launches the application. Here is a sample manifest file to download.

    The name of the manifest file must match the name of the executable. In the case of eclipse, the executable is javaw.exe and the manifest file must have the name javaw.exe.manifest. The manifest file must be in the jre\bin folder for the VM you use to launch Eclipse. Note: the eclipse.exe executable does not launch Eclipse; eclipse.exe displays a splash screen and then invokes the Java VM.

    文件:
    javaw.exe.manifest
    摘至 The SWT  FAQ
    原來的eclipse樣子
    eclipse02.jpg


    更改后的樣子,注意按鈕的樣式的變化
    eclipse01.jpg


    一定要記得javaw.exe.manifest放在eclipse.VM環(huán)境變量的javaw的目錄下
    也可以使用類似的辦法,不過,要把javaw.exe.manifest拷貝為java.exe.manifest才可以.
    posted @ 2005-10-04 20:49 sharky的點滴積累 閱讀(326) | 評論 (0)編輯 收藏

    今天查找有關(guān)編輯器的問題,找到兩檔不錯的文本編譯器,提供聯(lián)想功能而且小巧,都才1-2M,第一個是PHP Designer 2005,另一個是HTMLGate FREE,PHP Designer好像快發(fā)布2006版本。想來這個PHP編輯器不錯。感覺比Editplus強大許多。當(dāng)然最重要的一點,這些都是免費的。(:
    缺點:占用系統(tǒng)資源雖然不是很多,但是更EditPlus比起來,呵呵還是多了點。個人覺得就HTML/JS編輯,Editplus還是經(jīng)典許多。

    MPS HTMLGate  HTMLGate

    Snap1.jpg

    [翻譯摘錄]
          最高效而強大的網(wǎng)頁編輯器,不管是經(jīng)驗豐富的網(wǎng)頁專家,還是一個網(wǎng)站制作新手。
    會幫助你在最短的時間內(nèi),作出完美的網(wǎng)站。
          語法支持的優(yōu)秀代碼特性能幫助你快速創(chuàng)建編輯并發(fā)布HTML,4HTML 4, XHTML 2, JavaScript 1.2, VBScript, DHTML, CSS 2.0, PHP 5, ASP, XML, JSP, SSI, WML 1.1, HDML 3.0, SMIL, PERL, SQL 和 WebTV網(wǎng)頁。
           所建即所得的特性值得關(guān)注,任務(wù)面板包含了七種不同代碼庫,包括標(biāo)簽庫,工程管理,兩個文件瀏覽器,HTML分析器和其他實用的任務(wù)工具。
           這款編輯器還支持自己定義界面和屬性,比如XP風(fēng)格。
          下載地址:HTMLGate FREE
           如果官網(wǎng)不能下,搜下,很多網(wǎng)站提供下載

    PHP Designer 2005

    預(yù)覽界面
    Snap2.jpg

    [翻譯]
    特性:1.支持PHP, HTML, XHTML, CSS, Perl, C#, JavaScript, VB, Java and SQL (Ingres, Interbase, MSSQL, MySQL, Oracle, Sybase 和 標(biāo)準(zhǔn)SQL的語法高亮支持,最重要的是支持PHP的編譯和調(diào)試,方便許多。
               2.還有自動縮進,參數(shù)提示,代碼/腳本訪問,PHP在線指南等功能
               3.提供FTP管理器,工程管理器,文件管理器,任務(wù)標(biāo)簽管理器,代碼模板,片斷管理,多文件格式導(dǎo)出(LaTex,HTML,RTF...)
               4.提供18種編輯器界面主題風(fēng)格。
                5.此軟件免費
    下載地址:PHP Designer 2005

    我想要寫PHP代碼的朋友可以試試,應(yīng)該的蠻爽的。

     

    posted @ 2005-10-04 18:14 sharky的點滴積累 閱讀(1495) | 評論 (0)編輯 收藏

          這個插件很早就裝上了,裝的時候用了一下,能直接訪問數(shù)據(jù)庫,進行SqL數(shù)據(jù)庫操作,先前裝了jfacedbc,感覺一摸一樣,剛開始懷疑是同一個東東。一個SQL瀏覽器。

    介紹SQLExplorer的使用文章 Onjava上的,Matrix的中文翻譯

    SQlExplorer的主頁

    大胃的SQLExplorer的介紹

    posted @ 2005-10-03 23:09 sharky的點滴積累 閱讀(238) | 評論 (0)編輯 收藏

    插件名稱:JSEclipse
    插件分類:Editor
    插件版本:1.1.0
    插件主頁:http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/
    插件介紹:JSEclipse是個Eclipse下的免費Javascript腳本編輯器,最大的特點就是對js的自動完成功能非常完美,支持普通DOM對象的點取,如document對象,screen對象,這些對象都是通過外置的xml文件配置進行工作的,所以用戶完全可以根據(jù)自己需要配置更詳細的DOM對象的xml文件。除過基本的DOM對象支持外,JSEclipse對js文件內(nèi)的Class和Function也能完美地支持自動完成,看我的截圖。這個插件還支持JavaDoc的編輯時自動完成,不過我一般都在用MyEclipse套件,所以這個功能對我到意義不大。除過自動完成功能外,該插件還支持JS的語法高亮,錯誤和警告提示等等,我已經(jīng)把js文件默認打開方式選擇為JSEclipse了,MyEclipse那個太慢了,唯一遺憾的就是沒有調(diào)試功能,希望下一個版本把javascript腳本調(diào)試加入進來,這樣才算是一個真正意義上的js開發(fā)插件。
    該插件支持Eclipse 3.X,不過得需要JRE1.5。如果你在安裝此插件前還安裝了WTP、MyEclipse等插件,請更改.js文件的默認打開方式為JSEclipse才能啟用這個插件。
    點選自定義類的屬性和方法
    posted @ 2005-10-03 22:33 sharky的點滴積累 閱讀(285) | 評論 (0)編輯 收藏

    今天國慶黃金周過了3天了,今天做了終于把簡歷做好了,還差一個大項目沒加
    JSP看到內(nèi)置對象了,繼續(xù)努力

    posted @ 2005-10-03 19:41 sharky的點滴積累 閱讀(151) | 評論 (0)編輯 收藏

          網(wǎng)上關(guān)于String類一些有關(guān)問題的討論很多,在這里自我總結(jié)一下。希望對剛開始學(xué)Java的朋友一對幫助。

    【問題一:字符串的引用比較問題】
    先看個例子,大家預(yù)測下結(jié)果:
    例1
    package base;

    public class StringTest
    {
        public static void main(String[] args) 
       {
        String A = "test";
        String B = "test";
        String C = new String("test");
        String D = new String("test");
        System.out.println("A==B?" + (A == B));
        System.out.println("C==D?" + (C == D));
        System.out.println("C==A?" + (C == A));
        System.out.println("C equals D?" + (C.equals(D)));

      }
    }

    運行結(jié)果:
    A==B? true
    C==D?false
    C==A?false
    C equals D?true

    幾點認識:

    1.引用之間的“=="操作符,表示比較兩邊引用是否相等,即是否指向同一個對象。
    2.對于"String A = "test""這樣建立的字符串對象,如果在下次"String B = "test"",如果內(nèi)容一樣,JVM就不會在創(chuàng)建新的對象,而是簡單地把新的引用指向已經(jīng)存在的對象(編譯時)。(即便是在不同的包中)
    3.String.equals(String)是比較字符串的內(nèi)容。

    理解這幾點,通過分析,很快得出上例結(jié)果。
    這里再給出個例子
    例2.

    String s1 = "I love Java";
    String s2 = "I love ";
    String s3 = "Java";
    String s4 = s2 + s3;
    String s5 = "I love "+"Java";

    if (s1 == s4) System.out.println("yes");
    else System.out.println("no");

    if (s1 == s5) System.out.println("yes");
    else System.out.println("no");

    運行結(jié)果:
    no
    yes

    分析:s2+s3雖然其內(nèi)容也是"I love Java",但是s4 的值是運行后出來的,不是編譯的時候。JVM只是把編譯時 "=" 方式創(chuàng)建的 String 對象優(yōu)化為內(nèi)容相同時指向相同的對象實體。而當(dāng)一個字符串由多個字符串常量連接而成時,在編譯期就解析為一個字符串常量。s5就是這樣,自然打出"yes"。
            有的說String+String中的"+"時JVM自動重載的,用于連接字符串,String s1="java"是對"="的重載,重載為創(chuàng)建一個對象,并把對象地址賦給引用。本質(zhì)是一樣。




    ----------------------------------
    【問題二:Java的參數(shù)傳遞問題】
    引出:論壇上一個朋友提出的一道華為的面試題:

    例3:
    package test;

    public class TestString {
    public TestString() {
    }

    public static void main(String[] args) {
    String s=new String("Hello");
    modify(s);
    System.out.println("s = "+s);
    }

    public static void modify(String s)
    {
    s+="world";
    }
    }


    運行結(jié)果:
    s = Hello
    為什么是輸出Hello,而不是Helloworld?謝謝

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

    首先要確認的幾點認識:
    1.引用不是對象,它沒有屬性和方法,而是指向某一個對象的變量,跟基本數(shù)據(jù)類型的變量意義一樣。(引用是C中指針的隱藏化)

    例4:
                 String a ="Hello World";
                String b =a;

    分析:a,b是不同的引用變量,但是都是指向同一個對象,即對象"String World"。a,b都是存放了同一個對象的地址,而這個地址指向內(nèi)存域存放的是"Hello World".

    2.Java中的參數(shù)傳遞都是值傳遞,都是拷貝式的,基本數(shù)據(jù)類型是這樣,不用多說,當(dāng)傳入的參數(shù)是一個對象的引用時,也時值傳遞,只不過傳遞的"值",非對象本身,而是對象雜在內(nèi)存中的地址。
           所以在例1中:modify(String s)的"s"得到是String s=new String("Hello")中的"s"的引用值拷貝.

    3. String是常量性的,看看JDK文檔里面怎么說String的吧,“Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared”。String的內(nèi)容是無法改變的,如果需要改變,要考慮用StringBuffer。

    例5:
             1、 String s = "Hello";
             2、 String s1 = s;
             3、 s1 += "World!";

    分析:
          1->2步:s1和s這兩個引用,都指向同一個字符串對象"Hello",此時有2個引用,1個對象
         第3步:   由于String的不可更改性,所以“+=”操作后面操作是:返回一個新的字符串"HelloWorld",并把這個新的字符串的地址給引用s1,而引用s仍然引用原來的"Hello"。
    此時,有2個引用("s","s1"),兩個字符串對象("Hello","HelloWorld")。大家要記住:String的值的改變其實是創(chuàng)建一個新的String對象.
     即:
                s1 += "World!";

               s1 = new String("HelloWold")
    語義上是等價。

    何為語義?   簡單的說就是”你這條語句背后到底讓編譯器做了些什么?“

    這里在提及一個例子
    例6.

    public class Test
    {
      StringBuffer a ;
      public static void main(String[] args)
      {
       Test test = new Test();
       test.a = new StringBuffer("Hello");
       test.test(test.a);
       
       System.out.println("a is "+ test.a);
       
      }
      
      public  void test(StringBuffer strbuf)
      {
       strbuf.append("World");
       System.out.println(strbuf == a);

      }

    運行結(jié)果:

    true
    a is HelloWorld

             那這里"strbuf==a",怎么又為true了呢,并且"a is HelloWorld"了,按上面的道理,不是不會修改數(shù)據(jù)源嗎?注意我們這里運用的是StringBuffer,不同于String,它能修改自己的內(nèi)容。test方法中傳入的strbuf引用的值為a引用值的拷貝值,但是strbuf.append("World")這句話,是通過引用的值,修改了該值指向?qū)ο蟮膬?nèi)容,a可以調(diào)用append修改,strbuf自然也可以。所以,最后打印出a的值是strbuf修改后的對象的值。好比往test方法中傳入的一個可以操作a所指對象的"句柄",可以讓方法里的代碼操作目的對象。

             如果理解上面幾點,理解起來例3為什么是"Hello",我想就比較容易了。
    所以通過這個問題,也告訴我們,在學(xué)習(xí)語言基礎(chǔ)的時候,不光要讀懂這個語句怎么寫,更應(yīng)該通過現(xiàn)象看本質(zhì),了解語句背后編譯器做了些什么,尤其是內(nèi)存分配上的操作。雖然Java淡化了內(nèi)存有關(guān)的概念,但是了解更多機制,會幫我對計算機編譯代碼的了解更深一個層次。

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

    相關(guān)問題的參考:
    http://www.ideagrace.com/html/doc/2005/09/19/00626.html

    http://www.matrix.org.cn/thread.shtml?forumId=1&topicId=1142&page=1

    http://www.matrix.org.cn/thread.shtml?forumId=1&topicId=27155&page=1

    posted @ 2005-10-02 12:17 sharky的點滴積累 閱讀(321) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲精品高清国产一久久| 免费的一级片网站| 亚洲熟妇无码乱子AV电影| 免费在线看v网址| 亚洲国产成人一区二区精品区| 亚洲国产天堂在线观看| 中文字幕免费人成乱码中国| 91香蕉在线观看免费高清| 亚洲av无码片在线播放| 亚洲日韩一中文字暮| 性盈盈影院免费视频观看在线一区| 亚洲伦理一二三四| 毛片免费在线播放| 亚洲AV无码乱码国产麻豆| 久久aⅴ免费观看| 亚洲欧洲高清有无| 在线免费观看一级毛片| 无码色偷偷亚洲国内自拍| 亚洲AV成人精品日韩一区18p| 一级做a爰片久久免费| 国语成本人片免费av无码| 亚洲日本va在线视频观看| 十八禁在线观看视频播放免费| 亚洲AV日韩AV永久无码免下载| 亚洲丰满熟女一区二区哦| 亚洲精品在线免费观看| 国产亚洲精品久久久久秋霞| 成在人线av无码免费高潮喷水| 久久国产亚洲高清观看| 日批视频网址免费观看| 亚洲人成无码网WWW| 亚洲av永久无码天堂网| A级毛片高清免费视频在线播放| 亚洲免费精彩视频在线观看| 丁香花免费完整高清观看| 亚洲欧洲第一a在线观看| 一二三四在线观看免费高清中文在线观看| 亚洲熟妇AV一区二区三区宅男| 国产成人精品曰本亚洲79ren| 最近免费2019中文字幕大全| 最新亚洲人成无码网www电影|