javaGrowing

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            92 隨筆 :: 33 文章 :: 49 評論 :: 0 Trackbacks

          #

          在oracle 9i中可以方便的把數據導出為文件,或者從文件導入。通過oracle的管理服務器(oracle management server,oms)可以方便的實現,整個操作過程中有很多地方需要解釋說明,但是完整的指導資料不多。各大論壇上很多所謂的高手,對該主題的回答往往 是,高手是不用oms的,用exp/impl吧。如果你執意追問,他多半會告訴你,其實我也不知道。如果有一份文檔可以傻瓜式的指導他們如何來做,大多數 人會欣喜若狂且若無其事的下載保存,回去慢慢研究。對于這樣自以為高手的人,只送他們兩個字:鄙視。

           使用Enterprise Manager Console登陸的時候,會有兩個選項:獨立啟動和登陸到Oracle Management Server。前者可以讓我們執行一些普通的管理工作,比如管理帳戶、數據庫對象等,只有后者才能為我們提供備份的功能。不過在登陸到oms之前,你必須 首先安裝oms服務。

            啟動oracle universal installer,查看已安裝產品,展開oracle主目錄--oraHome92,如果沒有oracle9i management and integration,表示你尚未安裝。安裝方法是:

            在oracle universal installer的可用產品列表中,選擇安裝oracle 9i management and integration?oracle management server即可。

             安裝完成后,你需要配置一個管理資料庫,啟動:Configuration and Migration tools-Enterprise Manager Configuration Assistant。在配置操作中選擇配置本地的oracle management server-創建一個新的資料庫檔案-典型。系統將會創建一個名為oemrep的數據庫,保存管理信息,其中你需要指定sys和system帳號的密 碼。

            安裝完成后,啟動manage server服務,windows下你可以到后臺服務中直接啟動,它的名字是OracleOraHome92ManagementServer。同時請保證其他自動啟動的oracle服務也是啟動的。

             然后可以用Enterprise Manaer Console登陸了,帳號sysman 密碼oem_temp。第一次登陸后系統會要求你輸入新的sysman密碼。如果在登陸的時候出現”身份證明不正確”的提示,請確認你使用的登陸帳號是 sysman,如果帳號無誤卻始終出現該錯誤,請刪除剛才建立的資料庫,重新建一個。

            如果你使用windows,備份數據之前,首先需要建立一個操作系統的用戶,專門用于oracle備份,比如建立用戶oracle_back,隸屬于Administrator組和ora_dba組。然后需要在本地策略中給該用戶賦一個批處理權限。方法是:

            控制面板-管理工具-本地安全策略-本地策略-用戶權利指派-作為批處理作業登陸,在該權限下面增加剛才建立的oracle_back用戶。


             回到Enterprise Manager Console,打開配置?首選項?首選身份證明,在目標名中找到你的機器名,同時它的目標類型為節點,在下面的身份證明中輸入oracle_back和 它的密碼。然后找到你要備份的數據庫名,它的目標類型是數據庫,在身份證明中輸入dba帳號。Ok,現在你可以備份數據了。在任意一張表中點右鍵,選擇數 據管理?導出,你就可以在作業中看到這個任務。

          posted @ 2006-10-19 16:19 javaGrowing 閱讀(307) | 評論 (0)編輯 收藏

          <!--?Example?Server?Configuration?File?-->
          <!--?Tomcat服務器配置示例文件?-->

          <!--?Note?that?component?elements?are?nested?corresponding?to?their
          ?????parent-child?relationships?with?each?other?-->
          <!--?注意,這些組件的構成是根據相互之間的父子關系進行嵌套的。-->

          <!--?A?"Server"?is?a?singleton?element?that?represents?the?entire?JVM,
          ?????which?may?contain?one?or?more?"Service"?instances.?The?Server
          ?????listens?for?a?shutdown?command?on?the?indicated?port.

          ?????Note:?A?"Server"?is?not?itself?a?"Container",?so?you?may?not
          ?????define?subcomponents?such?as?"Valves"?or?"Loggers"?at?this?level.
          ?-->
          <!--?一個“Server”是一個提供完整的JVM的獨立組件,它可以包含一個或多個
          ?????“Service”實例。服務器在指定的端口上監聽shutdown命令。
          ?????
          ?????注意:一個“Server”自身不是一個“Container”(容器),因此在這里你
          ?????不可以定義諸如“Valves”或者“Loggers”子組件
          -->

          <Server?port="8005"?shutdown="SHUTDOWN"?debug="0">


          ??<!--?Comment?these?entries?out?to?disable?JMX?MBeans?support?-->
          ??<!--?這些指令組件關閉JMX?MBeans支持?-->
          ??
          ??<!--?You?may?also?configure?custom?components?(e.g.?Valves/Realms)?by?
          ???????including?your?own?mbean-descriptor?file(s),?and?setting?the?
          ???????"descriptors"?attribute?to?point?to?a?';'?seperated?list?of?paths
          ???????(in?the?ClassLoader?sense)?of?files?to?add?to?the?default?list.
          ???????e.g.?descriptors="/com/myfirm/mypackage/mbean-descriptor.xml"
          ??-->
          ??<!--?你也可以通過包含你自己的mbean描述文件配置自定義的組件,然后設置
          ???????“descriptors”屬性為以“;”為分隔的文件名列表嚴將它添加到默認列表
          ???????中,例如:descriptors="/com/myfirm/mypackage/mbean-descriptor.xml"。
          ?-->
          ???????
          ??<Listener?className="org.apache.catalina.mbeans.ServerLifecycleListener"
          ????????????debug="0"/>
          ??<Listener?className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
          ????????????debug="0"/>

          ??<!--?Global?JNDI?resources?-->
          ??<!--?全局JNDI資源?-->
          ??<GlobalNamingResources>

          ????<!--?Test?entry?for?demonstration?purposes?-->
          ????<!--?出于示例目的的測試入口?-->
          ????<Environment?name="simpleValue"?type="java.lang.Integer"?value="30"/>

          ????<!--?Editable?user?database?that?can?also?be?used?by
          ?????????UserDatabaseRealm?to?authenticate?users?-->
          ????<!--?可編輯的,用來通過UserDatabaseRealm認證用戶的用戶數據庫?-->
          ????
          ????<Resource?name="UserDatabase"?auth="Container"
          ??????????????type="org.apache.catalina.UserDatabase"
          ???????description="User?database?that?can?be?updated?and?saved">
          ????</Resource>
          ????<ResourceParams?name="UserDatabase">
          ??????<parameter>
          ????????<name>factory</name>
          ????????<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
          ??????</parameter>
          ??????<parameter>
          ????????<name>pathname</name>
          ????????<value>conf/tomcat-users.xml</value>
          ??????</parameter>
          ????</ResourceParams>

          ??</GlobalNamingResources>

          ??<!--?A?"Service"?is?a?collection?of?one?or?more?"Connectors"?that?share
          ???????a?single?"Container"?(and?therefore?the?web?applications?visible
          ???????within?that?Container).?Normally,?that?Container?is?an?"Engine",
          ???????but?this?is?not?required.

          ???????Note:?A?"Service"?is?not?itself?a?"Container",?so?you?may?not
          ???????define?subcomponents?such?as?"Valves"?or?"Loggers"?at?this?level.
          ???-->
          ??<!--?一個“Service”是一個或多個共用一個單獨“Container”(容器)的“Connectors”
          ???????組合(因此,應用程序在容器中可見)。通常,這個容器是一個“Engine”
          ???????(引擎),但這不是必須的。
          ???????
          ???????注意:一個“Service”自身不是一個容器,因此,在這個級別上你不可定義
          ???????諸如“Valves”或“Loggers”子組件。
          ??-->

          ??<!--?Define?the?Tomcat?Stand-Alone?Service?-->
          ??<!--?定義Tomcat的標準獨立服務?-->
          ??<Service?name="Catalina">

          ????<!--?A?"Connector"?represents?an?endpoint?by?which?requests?are?received
          ?????????and?responses?are?returned.?Each?Connector?passes?requests?on?to?the
          ?????????associated?"Container"?(normally?an?Engine)?for?processing.

          ?????????By?default,?a?non-SSL?HTTP/1.1?Connector?is?established?on?port?8080.
          ?????????You?can?also?enable?an?SSL?HTTP/1.1?Connector?on?port?8443?by
          ?????????following?the?instructions?below?and?uncommenting?the?second?Connector
          ?????????entry.?SSL?support?requires?the?following?steps?(see?the?SSL?Config
          ?????????HOWTO?in?the?Tomcat?5?documentation?bundle?for?more?detailed
          ?????????instructions):
          ?????????*?If?your?JDK?version?1.3?or?prior,?download?and?install?JSSE?1.0.2?or
          ???????????later,?and?put?the?JAR?files?into?"$JAVA_HOME/jre/lib/ext".
          ?????????*?Execute:
          ?????????????%JAVA_HOME%\bin\keytool?-genkey?-alias?tomcat?-keyalg?RSA?(Windows)
          ?????????????$JAVA_HOME/bin/keytool?-genkey?-alias?tomcat?-keyalg?RSA?(Unix)
          ???????????with?a?password?value?of?"changeit"?for?both?the?certificate?and
          ???????????the?keystore?itself.

          ?????????By?default,?DNS?lookups?are?enabled?when?a?web?application?calls
          ?????????request.getRemoteHost().?This?can?have?an?adverse?impact?on
          ?????????performance,?so?you?can?disable?it?by?setting?the
          ?????????"enableLookups"?attribute?to?"false".?When?DNS?lookups?are?disabled,
          ?????????request.getRemoteHost()?will?return?the?String?version?of?the
          ?????????IP?address?of?the?remote?client.
          ????-->
          ????<!--?一個“Connector”(連接器)代表一個請求被接收和應答所需要的端點。每個連
          ?????????接器通過相關的“Container”(容器)處理請求。
          ?????????
          ?????????默認情況下,一個非SSL的HTTP/1.1的連接器被綁定在端口8080。你也可以通過
          ?????????根據后面的使用說明并取消第二個連接器入口的注釋,在端口8443上建立一個
          ?????????SSL?HTTP/1.1的連接器。開放SSL支持需要下面幾步(參見Tomcat?5文檔中怎樣
          ?????????配置SSL的說明以取得更多的詳細信息):
          ?????????*?如果你的JDK是1.3或1.3以前的版本,下載安裝JSSE?1.0.2或以后版本,并放
          ???????????置JAR文件到“$JAVA_HOME/jre/lib/ext”目錄下。
          ?????????*?帶一個“changeit”的口令值執行:
          ?????????????%JAVA_HOME%\bin\keytool?-genkey?-alias?tomcat?-keyalg?RSA?(Windows)
          ?????????????$JAVA_HOME/bin/keytool?-genkey?-alias?tomcat?-keyalg?RSA?(UNIX)
          ???????????來生成它自己的證書私鑰。
          ???????????
          ?????????默認情況下,當一個web應用程序調用請求時,DNS查詢是可行的。這將對性能造
          ?????????成一些不利的影響,因此,你可以將“enableLookups”設置為“false”來關閉DNS
          ?????????查詢。當DNS查詢被關閉時,request.getRemoteHost()將返回包含遠程客戶IP地
          ?????????址的字符串。
          ??-->

          ????<!--?Define?a?non-SSL?Coyote?HTTP/1.1?Connector?on?port?8080?-->
          ????<!--?在8080端口上定義一個非SSL的HTTP/1.1連接器?-->
          ????<Connector?port="8080"
          ???????????????maxThreads="150"?minSpareThreads="25"?maxSpareThreads="75"
          ???????????????enableLookups="false"?redirectPort="8443"?acceptCount="100"
          ???????????????debug="0"?connectionTimeout="20000"?
          ???????????????disableUploadTimeout="true"?/>
          ????<!--?Note?:?To?disable?connection?timeouts,?set?connectionTimeout?value
          ?????to?0?-->
          ????<!--?注意,要關閉連接超時,將connectionTimeout設置為0?-->

          <!--?Note?:?To?use?gzip?compression?you?could?set?the?following?properties?:

          compression="on"?
          compressionMinSize="2048"?
          noCompressionUserAgents="gozilla,?traviata"?
          compressableMimeType="text/html,text/xml"
          -->
          <!--?注意:要使用gzip壓縮需要設置如下屬性:

          compression="on"
          compressionMinSize="2048"
          noCompressionUserAgents="gozilla,traviata"
          compressableMimeType="text/html,text/xml"
          -->

          ????<!--?Define?a?SSL?Coyote?HTTP/1.1?Connector?on?port?8443?-->
          ????<!--?在端口8443上定義一個SSL的HTTP/1.1的連接器?-->
          ????<!--
          ????<Connector?port="8443"?
          ???????????????maxThreads="150"?minSpareThreads="25"?maxSpareThreads="75"
          ???????????????enableLookups="false"?disableUploadTimeout="true"
          ???????????????acceptCount="100"?debug="0"?scheme="https"?secure="true"
          ???????????????clientAuth="false"?sslProtocol="TLS"?/>
          ????-->

          ????<!--?Define?a?Coyote/JK2?AJP?1.3?Connector?on?port?8009?-->
          ????<!--?在端口8009上定義一個Coyote/JK2?AJP?1.3連接器?-->
          ????<Connector?port="8009"?
          ???????????????enableLookups="false"?redirectPort="8443"?debug="0"
          ???????????????protocol="AJP/1.3"?/>

          ????<!--?Define?a?Proxied?HTTP/1.1?Connector?on?port?8082?-->
          ????<!--?在8082端口上定義一個代理HTTP/1.1連接器?-->
          ????<!--?See?proxy?documentation?for?more?information?about?using?this.?-->
          ????<!--?參見代理文檔以取得這里使用屬性的更多的信息。?-->
          ????<!--
          ????<Connector?port="8082"?
          ???????????????maxThreads="150"?minSpareThreads="25"?maxSpareThreads="75"
          ???????????????enableLookups="false"
          ???????????????acceptCount="100"?debug="0"?connectionTimeout="20000"
          ???????????????proxyPort="80"?disableUploadTimeout="true"?/>
          ????-->

          ????<!--?An?Engine?represents?the?entry?point?(within?Catalina)?that?processes
          ?????????every?request.?The?Engine?implementation?for?Tomcat?stand?alone
          ?????????analyzes?the?HTTP?headers?included?with?the?request,?and?passes?them
          ?????????on?to?the?appropriate?Host?(virtual?host).?-->
          ????<!--?一個“Engine”(引擎)代表處理每個請求的入口點(在Catalina內)。這個Tomcat
          ?????????的標準獨立引擎實現分析包含在請求中的HTTP頭信息,并將請求傳送到適當的主機
          ?????????或虛擬主機上。-->

          ????<!--?You?should?set?jvmRoute?to?support?load-balancing?via?JK/JK2?ie?:
          ????<Engine?name="Standalone"?defaultHost="localhost"?debug="0"?jvmRoute="jvm1">?
          ????-->?
          ????<!--?你應該這樣設置jvmRoute以便在JK/JK2通道上支持負載平衡:
          ????<Engine?name="Standalone"?defaultHost="localhost"?debug="0"?jvmRoute="jvm1">
          ????-->
          ?????????
          ????<!--?Define?the?top?level?container?in?our?container?hierarchy?-->
          ????<!--?在我們的容器體系中定義最高級別的容器?-->
          ????<Engine?name="Catalina"?defaultHost="localhost"?debug="0">

          ??????<!--?The?request?dumper?valve?dumps?useful?debugging?information?about
          ???????????the?request?headers?and?cookies?that?were?received,?and?the?response
          ???????????headers?and?cookies?that?were?sent,?for?all?requests?received?by
          ???????????this?instance?of?Tomcat.?If?you?care?only?about?requests?to?a
          ???????????particular?virtual?host,?or?a?particular?application,?nest?this
          ???????????element?inside?the?corresponding?<Host>?or?<Context>?entry?instead.

          ???????????For?a?similar?mechanism?that?is?portable?to?all?Servlet?2.4
          ???????????containers,?check?out?the?"RequestDumperFilter"?Filter?in?the
          ???????????example?application?(the?source?for?this?filter?may?be?found?in
          ???????????"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").

          ???????????Request?dumping?is?disabled?by?default.?Uncomment?the?following
          ???????????element?to?enable?it.?-->
          ??????<!--?請求轉儲器值轉儲非常有用的通過Tomcat這個實例接收到的所有請求的,關于
          ???????????接收到的請求頭和cookies,以及發送出的回應頭和cookies的調試信息。如果
          ???????????你只在意一個特定的虛擬主機或者一個特定應用程序的請求,在對應的<Host>
          ???????????或<Context>入口中套用這個元素。
          ???????????
          ???????????對于所有的Servlet(小服務程序)2.4來所,在示例程序中檢驗
          ???????????“RequestDumperFilter”過濾是非常容易的(這個過濾器源代碼可以在
          ???????????“$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters”下找到。
          ???????????
          ???????????請求轉儲默認情況下是關閉的,如果要使用它,取消下面行的注釋符。-->
          ??????<!--
          ??????<Valve?className="org.apache.catalina.valves.RequestDumperValve"/>
          ??????-->

          ??????<!--?Global?logger?unless?overridden?at?lower?levels?-->
          ??????<!--?全局日志設置,除非在更低的級別上覆蓋它的設置?-->
          ??????<Logger?className="org.apache.catalina.logger.FileLogger"
          ??????????????prefix="catalina_log."?suffix=".txt"
          ??????????????timestamp="true"/>

          ??????<!--?Because?this?Realm?is?here,?an?instance?will?be?shared?globally?-->
          ??????<!--?因為這個Realm(區域)在這兒,因此這個實例將被全局共享。?-->

          ??????<!--?This?Realm?uses?the?UserDatabase?configured?in?the?global?JNDI
          ???????????resources?under?the?key?"UserDatabase".?Any?edits
          ???????????that?are?performed?against?this?UserDatabase?are?immediately
          ???????????available?for?use?by?the?Realm.?-->
          ??????<!--?這個Realm(區域)使用在全局JNDI資源下,由“UserDatabase”配置的用戶
          ???????????數據庫。通過使用Realm將使對于這個用戶數據庫的任何編輯都將會立即可用
          ??????<Realm?className="org.apache.catalina.realm.UserDatabaseRealm"
          ?????????????????debug="0"?resourceName="UserDatabase"/>

          ??????<!--?Comment?out?the?old?realm?but?leave?here?for?now?in?case?we
          ???????????need?to?go?back?quickly?-->
          ??????<!--?注釋掉舊有的Realm以便我們能很快速的恢復舊有配置。?-->
          ??????<!--
          ??????<Realm?className="org.apache.catalina.realm.MemoryRealm"?/>
          ??????-->

          ??????<!--?Replace?the?above?Realm?with?one?of?the?following?to?get?a?Realm
          ???????????stored?in?a?database?and?accessed?via?JDBC?-->
          ??????<!--?下面的屬性用于從儲存在數據庫或從JDBC通道中得到的Realm以取代上面的
          ???????????Realm配置。-->

          ??????<!--
          ??????<Realm?className="org.apache.catalina.realm.JDBCRealm"?debug="99"
          ?????????????driverName="org.gjt.mm.mysql.Driver"
          ??????????connectionURL="jdbc:mysql://localhost/authority"
          ?????????connectionName="test"?connectionPassword="test"
          ??????????????userTable="users"?userNameCol="user_name"?userCredCol="user_pass"
          ??????????userRoleTable="user_roles"?roleNameCol="role_name"?/>
          ??????-->

          ??????<!--
          ??????<Realm?className="org.apache.catalina.realm.JDBCRealm"?debug="99"
          ?????????????driverName="oracle.jdbc.driver.OracleDriver"
          ??????????connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
          ?????????connectionName="scott"?connectionPassword="tiger"
          ??????????????userTable="users"?userNameCol="user_name"?userCredCol="user_pass"
          ??????????userRoleTable="user_roles"?roleNameCol="role_name"?/>
          ??????-->

          ??????<!--
          ??????<Realm?className="org.apache.catalina.realm.JDBCRealm"?debug="99"
          ?????????????driverName="sun.jdbc.odbc.JdbcOdbcDriver"
          ??????????connectionURL="jdbc:odbc:CATALINA"
          ??????????????userTable="users"?userNameCol="user_name"?userCredCol="user_pass"
          ??????????userRoleTable="user_roles"?roleNameCol="role_name"?/>
          ??????-->

          ??????<!--?Define?the?default?virtual?host
          ???????????Note:?XML?Schema?validation?will?not?work?with?Xerces?2.2.
          ???????-->
          ??????<!--?定義默認的虛擬主機
          ???????????注意:XML模式確認將不能與Xerces?2.2同工作。
          ??????-->
          ??????<Host?name="localhost"?debug="0"?appBase="webapps"
          ???????unpackWARs="true"?autoDeploy="true"
          ???????xmlValidation="false"?xmlNamespaceAware="false">

          ????????<!--?Defines?a?cluster?for?this?node,
          ?????????????By?defining?this?element,?means?that?every?manager?will?be?changed.
          ?????????????So?when?running?a?cluster,?only?make?sure?that?you?have?webapps?in?there
          ?????????????that?need?to?be?clustered?and?remove?the?other?ones.
          ?????????????A?cluster?has?the?following?parameters:
          ?????????????為這個結點定義一個群集,通過定義這個元素,意味著每個管理員都將被改變。
          ?????????????因此,當運行一個群集時,只有確認在必須被聚集和移除其他的地方有你的
          ?????????????web軟件。
          ?????????????一個群集有下面這些參數:

          ?????????????className?=?the?fully?qualified?name?of?the?cluster?class
          ?????????????className?=?這個群集類的全限定名

          ?????????????name?=?a?descriptive?name?for?your?cluster,?can?be?anything
          ?????????????name?=?你的群集的描述名,可以是任何描述

          ?????????????debug?=?the?debug?level,?higher?means?more?output
          ?????????????debug?=?調試級別,更高意味著更多的輸出

          ?????????????mcastAddr?=?the?multicast?address,?has?to?be?the?same?for?all?the?nodes
          ?????????????mcastAddr?=?多播地址,所有的節點都必須有同樣的多播地址

          ?????????????mcastPort?=?the?multicast?port,?has?to?be?the?same?for?all?the?nodes
          ?????????????mcastPort?=?多播端口,對所有的節點都必須有同樣的多播端口
          ?????????????
          ?????????????mcastBindAddr?=?bind?the?multicast?socket?to?a?specific?address
          ?????????????mcastBindAddr?=?綁定多播套接字到一個指定的地址
          ?????????????
          ?????????????mcastTTL?=?the?multicast?TTL?if?you?want?to?limit?your?broadcast
          ?????????????mcastTTL?=?多播生存期,如果你想要限制你的廣播的話
          ?????????????
          ?????????????mcastSoTimeout?=?the?multicast?readtimeout
          ?????????????mcastSoTimeout?=?多播讀取超時

          ?????????????mcastFrequency?=?the?number?of?milliseconds?in?between?sending?a?"I'm?alive"?heartbeat
          ?????????????mcastFrequency?=?發送“I'm?alive”(我還活著)信息的間隔毫秒數

          ?????????????mcastDropTime?=?the?number?a?milliseconds?before?a?node?is?considered?"dead"?if?no?heartbeat?is?received
          ?????????????mcastDropTime?=?多長時間沒有收到“I'm?alive”就將這個節點標識為死節點(單位:毫秒)

          ?????????????tcpThreadCount?=?the?number?of?threads?to?handle?incoming?replication?requests,?optimal?would?be?the?same?amount?of?threads?as?nodes?
          ?????????????tcpThreadCount?=?用于處理重復引入請求的線程數,最好是每個節點都有相同的線程數

          ?????????????tcpListenAddress?=?the?listen?address?(bind?address)?for?TCP?cluster?request?on?this?host,?
          ????????????????????????????????in?case?of?multiple?ethernet?cards.
          ????????????????????????????????auto?means?that?address?becomes
          ????????????????????????????????InetAddress.getLocalHost().getHostAddress()
          ?????????????tcpListenAddress?=?在有多塊以太網卡的主機上的監聽TCP群集請求的地址(綁定地址),
          ????????????????????????????????auto意味著地址由InetAddress.getLocalHost().getHostAddress()取得。

          ?????????????tcpListenPort?=?the?tcp?listen?port
          ?????????????tcpListenPort?=?tcp監聽端口

          ?????????????tcpSelectorTimeout?=?the?timeout?(ms)?for?the?Selector.select()?method?in?case?the?OS
          ??????????????????????????????????has?a?wakup?bug?in?java.nio.?Set?to?0?for?no?timeout
          ?????????????tcpSelectorTimeout?=?在操作系統中有java.nio喚醒錯的情況下,使用Selector.select()的超時
          ??????????????????????????????????毫秒數。設為0則沒有超時限制

          ?????????????printToScreen?=?true?means?that?managers?will?also?print?to?std.out
          ?????????????printToScreen?=?true意味著管理員的相關信息也將打印輸出到std.out

          ?????????????expireSessionsOnShutdown?=?true?means?that
          ?????????????expireSessionsOnShutdown?=?true?意味著?????

          ?????????????useDirtyFlag?=?true?means?that?we?only?replicate?a?session?after?setAttribute,removeAttribute?has?been?called.
          ????????????????????????????false?means?to?replicate?the?session?after?each?request.
          ????????????????????????????false?means?that?replication?would?work?for?the?following?piece?of?code:
          ????????????????????????????<%
          ????????????????????????????HashMap?map?=?(HashMap)session.getAttribute("map");
          ????????????????????????????map.put("key","value");
          ????????????????????????????%>
          ?????????????useDirtyFlag?=?true意味著我們只能在調用setAttribute,removeAttribute后才能復制一個會話;
          ????????????????????????????false意味著在每個請求后復制會話。
          ????????????????????????????false意味著復制將以下列代碼方式工作:
          ????????????????????????????<%
          ????????????????????????????HashMap?map?=?(HashMap)session.getAttribute("map");
          ????????????????????????????map.put("key","value");
          ????????????????????????????%>
          ????????????????????????????
          ?????????????replicationMode?=?can?be?either?'pooled',?'synchronous'?or?'asynchronous'.
          ???????????????????????????????*?Pooled?means?that?the?replication?happens?using?several?sockets?in?a?synchronous?way.?Ie,?the?data?gets?replicated,?then?the?request?return.?This?is?the?same?as?the?'synchronous'?setting?except?it?uses?a?pool?of?sockets,?hence?it?is?multithreaded.?This?is?the?fastest?and?safest?configuration.?To?use?this,?also?increase?the?nr?of?tcp?threads?that?you?have?dealing?with?replication.
          ???????????????????????????????*?Synchronous?means?that?the?thread?that?executes?the?request,?is?also?the
          ???????????????????????????????thread?the?replicates?the?data?to?the?other?nodes,?and?will?not?return?until?all
          ???????????????????????????????nodes?have?received?the?information.
          ???????????????????????????????*?Asynchronous?means?that?there?is?a?specific?'sender'?thread?for?each?cluster?node,
          ???????????????????????????????so?the?request?thread?will?queue?the?replication?request?into?a?"smart"?queue,
          ???????????????????????????????and?then?return?to?the?client.
          ???????????????????????????????The?"smart"?queue?is?a?queue?where?when?a?session?is?added?to?the?queue,?and?the?same?session
          ???????????????????????????????already?exists?in?the?queue?from?a?previous?request,?that?session?will?be?replaced
          ???????????????????????????????in?the?queue?instead?of?replicating?two?requests.?This?almost?never?happens,?unless?there?is?a?
          ???????????????????????????????large?network?delay.
          ?????????????replicationMode?=?可以是“pooled”、“synchronous”或者“asynchronous”
          ???????????????????????????????*?Pooled意味著在多個套接字上同步進行復制。例如,先復制數據,然后請求返回。
          ???????????????????????????????這與“synchronous”相同,除了它使用一個套接字池,因此,它是多線程的。它是
          ???????????????????????????????最快和最高級的設置,使用這個配置也增加了處理復制的tcp線程的域。
          ???????????????????????????????*?Synchronous指執行請求的線程,它也是向其他節點復制數據的線程,并且直到
          ???????????????????????????????所有的節點都己經收到信息后才返回。
          ???????????????????????????????*?Asynchronous,對每個群集節點而言,這是一個特別的“sender”(發送者)線程,
          ???????????????????????????????因此請求線程將復制請求排隊到一個小隊列中,然后,返回給用戶。
          ???????????????????????????????這個小隊列是一個當會話被添加到隊列中,而從先前的請求中,同一個會話己經存在
          ???????????????????????????????,這個會話將被放置在隊列中以代替重復的兩個請求。這幾乎從不會發生,除非存在
          ???????????????????????????????較大的網絡延遲。
          ????????-->?
          ????????<!--
          ????????????When?configuring?for?clustering,?you?also?add?in?a?valve?to?catch?all?the?requests
          ????????????coming?in,?at?the?end?of?the?request,?the?session?may?or?may?not?be?replicated.
          ????????????A?session?is?replicated?if?and?only?if?all?the?conditions?are?met:
          ????????????1.?useDirtyFlag?is?true?or?setAttribute?or?removeAttribute?has?been?called?AND
          ????????????2.?a?session?exists?(has?been?created)
          ????????????3.?the?request?is?not?trapped?by?the?"filter"?attribute

          ????????????The?filter?attribute?is?to?filter?out?requests?that?could?not?modify?the?session,
          ????????????hence?we?don't?replicate?the?session?after?the?end?of?this?request.
          ????????????The?filter?is?negative,?ie,?anything?you?put?in?the?filter,?you?mean?to?filter?out,
          ????????????ie,?no?replication?will?be?done?on?requests?that?match?one?of?the?filters.
          ????????????The?filter?attribute?is?delimited?by?;,?so?you?can't?escape?out?;?even?if?you?wanted?to.

          ????????????filter=".*\.gif;.*\.js;"?means?that?we?will?not?replicate?the?session?after?requests?with?the?URI
          ????????????ending?with?.gif?and?.js?are?intercepted.
          ????????-->
          ????????<!--?當配置群集時,你也添加一個值來捕獲所有傳入的請求,在請求結束時,這個會話可能被子復制,
          ?????????????也可能不被復制。一個會話是否復制取決于下列條件是否發生:
          ?????????????1.?useDirtyFlag為真,或者setAttribute或者removeAttribute己經被調用。
          ?????????????2.?會話己經存在(己經被創建了)。
          ?????????????3.?請求沒有被“filter”屬性所捕獲。
          ?????????????
          ?????????????這個filter(過濾器)屬性用于過濾那些不能修改會話的請求,因此,我們在這個請求結束后不復制
          ?????????????會主。這個過濾器是消極的,例如,你向過濾器發送了一些東西,然后被過濾出去,在那個匹配的過
          ?????????????濾器上不會發生復制。
          ?????????????過濾器屬性以分號為分隔,因此你不能換行,即使你想這么做。
          ?????????????
          ?????????????filter=".*\.gif;.*\.js;"意味著在進行以.gif和.js結束的URI請求后不復制會話。
          ????????
          ????????<!--
          ????????<Cluster?className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
          ?????????????????managerClassName="org.apache.catalina.cluster.session.DeltaManager"
          ?????????????????expireSessionsOnShutdown="false"
          ?????????????????useDirtyFlag="true">

          ????????????<Membership?
          ????????????????className="org.apache.catalina.cluster.mcast.McastService"
          ????????????????mcastAddr="228.0.0.4"
          ????????????????mcastPort="45564"
          ????????????????mcastFrequency="500"
          ????????????????mcastDropTime="3000"/>

          ????????????<Receiver?
          ????????????????className="org.apache.catalina.cluster.tcp.ReplicationListener"
          ????????????????tcpListenAddress="auto"
          ????????????????tcpListenPort="4001"
          ????????????????tcpSelectorTimeout="100"
          ????????????????tcpThreadCount="6"/>

          ????????????<Sender
          ????????????????className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
          ????????????????replicationMode="pooled"/>

          ????????????<Valve?className="org.apache.catalina.cluster.tcp.ReplicationValve"
          ???????????????????filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
          ????????</Cluster>
          ????????-->?



          ????????<!--?Normally,?users?must?authenticate?themselves?to?each?web?app
          ?????????????individually.?Uncomment?the?following?entry?if?you?would?like
          ?????????????a?user?to?be?authenticated?the?first?time?they?encounter?a
          ?????????????resource?protected?by?a?security?constraint,?and?then?have?that
          ?????????????user?identity?maintained?across?*all*?web?applications?contained
          ?????????????in?this?virtual?host.?-->
          ????????<!--?通常,對每一個應用程序,用戶必須逐個的認證他們自己。當他們遇到被
          ?????????????某種安全約束所保護的資源時,如果你想讓用戶只在第一次被認證,那么,
          ?????????????取消下面入口行的注釋,然后在這個虛擬主機中包含這個用戶的,橫跨所有
          ?????????????web應用程序的用戶身份識別。-->
          ?????????????
          ????????<!--
          ????????<Valve?className="org.apache.catalina.authenticator.SingleSignOn"
          ???????????????????debug="0"/>
          ????????-->

          ????????<!--?Access?log?processes?all?requests?for?this?virtual?host.?By
          ?????????????default,?log?files?are?created?in?the?"logs"?directory?relative?to
          ?????????????$CATALINA_HOME.?If?you?wish,?you?can?specify?a?different
          ?????????????directory?with?the?"directory"?attribute.?Specify?either?a?relative
          ?????????????(to?$CATALINA_HOME)?or?absolute?path?to?the?desired?directory.
          ????????-->
          ????????<!--?這個虛擬主機的所有請求的訪問日志過程。默認情況下,日志文件被創建在相對
          ?????????????于$CATALINA_HOME目錄下的logs目錄下。通過directory屬性,你也可以指定一個
          ?????????????不同的目錄,如果你想的話。可以使用相對路徑(相對于$CATALINA_HOME),也
          ?????????????可以使用絕對路徑。-->
          ????????<!--
          ????????<Valve?className="org.apache.catalina.valves.AccessLogValve"
          ?????????????????directory="logs"?prefix="localhost_access_log."?suffix=".txt"
          ?????????????????pattern="common"?resolveHosts="false"/>
          ????????-->

          ????????<!--?Logger?shared?by?all?Contexts?related?to?this?virtual?host.?By
          ?????????????default?(when?using?FileLogger),?log?files?are?created?in?the?"logs"
          ?????????????directory?relative?to?$CATALINA_HOME.?If?you?wish,?you?can?specify
          ?????????????a?different?directory?with?the?"directory"?attribute.?Specify?either?a
          ?????????????relative?(to?$CATALINA_HOME)?or?absolute?path?to?the?desired
          ?????????????directory.-->
          ????????<!--?與這個虛擬主機有關系所有上下文所共享的日志。默認情況下(使用FileLogger時),
          ?????????????日志文件被創建在相對于$CATALINA_HOME目錄下的logs目錄下。如果你希望,你也可
          ?????????????以給directory指定一個不同的路徑。可以使用相對于$CATALINA_HOME的相對路徑,也
          ?????????????可以使用絕對路徑。
          ????????<Logger?className="org.apache.catalina.logger.FileLogger"
          ?????????????????directory="logs"?prefix="localhost_log."?suffix=".txt"
          ????????????timestamp="true"/>

          ??????</Host>

          ????</Engine>

          ??</Service>

          </Server>
          posted @ 2006-10-17 14:47 javaGrowing 閱讀(367) | 評論 (0)編輯 收藏

          當Tomcat5啟動以后,它創建一系列類加載器。這些類加載器以父子關系組織在一起,父類加載器在子類加載器的上面:

          ????? Bootstrap
          ????????? |
          ?????? System
          ????????? |
          ?????? Common
          ????? /????? \
          Catalina?? Shared
          ?????????????????? ? /?? \
          ??????? Webapp1? Webapp2 ...

          這些類加載器所扮演的角色,以及它們可以見到的類和資源的規則如下:

          如上圖所示,Tomcat5 在初始化的時候創建如下類加載器:

          Bootstrap
          - 這個類加載器可以加載Java虛擬機的運行時基礎類,以及在系統擴展目錄($JAVA_HOME/jre/lib/ext)中的所有Jar包中的類。注意-一些JVM可能用多個類加載器來實現它,或者它是根本不能被看見的。

          System
          - 這個類加載器一般可以加載CLASSPATH環境變量的內容。所有這個類對于Tomcat內部的類和web應用程序的都是可見的。盡管如此,標準的Tomcat5啟動腳本($CATALINA_HOME/bin/catalina.sh?或 %CATALINA_HOME%\bin\catalina.bat)都會忽略CLASSPATH環境變量,取而代之的是從如下倉庫加載:

          • $CATALINA_HOME/bin/bootstrap.jar - 包含Tomcat5 服務器初始化的main()方法,以及所需的類加載器的實現類。
          • $JAVA_HOME/lib/tools.jar - 包括把JSP頁面編譯成Serlet類所需的"javac"編譯器.
          • $CATALINA_HOME/bin/commons-logging-api.jar - Jakarta commons logging API.
          • $CATALINA_HOME/bin/commons-daemon.jar - Jakarta commons daemon API.
          • jmx.jar - The JMX 1.2 實現.

          Common - 這個類加載器可以使一些附加的類對于Tomcat 內部的類和web應用程序可見。正常情況下,應用程序不應該替換它。所有$CATALINA_HOME/common/classes目錄下的未打包類和 資源,以及$CATALINA_HOME/commons/endorsed、$CATALINA_HOME/commons/i18n、$ CATALINA_HOME/common/lib目錄下的Jar包中的類和資源都是這個類加載器的加載對象。默認情況,包括如下內容:?????????

          • commons-el.jar - Jakarta commons el, Jasper用的EL表達式實現
          • jasper-compiler.jar - The JSP 2.0 編譯器.
          • jasper-compiler-jdt.jar - The Eclipse JDT Java 編譯器.
          • jasper-runtime.jar - The JSP 2.0 運行庫.
          • jsp-api.jar - The JSP 2.0 API.
          • naming-common.jar - Tomcat5的JNDI 實現,用于內存命名環境
          • naming-factory.jar - Tomcat5的JNDI 實現,用于企業級資源引用(EJB, connection pools).
          • naming-factory-dbcp.jar - Jakarta commons DBCP, 為Web應用程序提供JDBC連接池。這個類已經從默認的org.apache.commons包中移出。
          • naming-java.jar -? java命名空間處理器.
          • naming-resources.jar - The specialized JNDI naming context implementation used to represent the static resources of a web application. This is not related to the support of the J2EE ENC, and cannot be removed.
          • servlet-api.jar - The Servlet 2.4 API.
          • tomcat-i18n-**.jar - Optional JARs containing resource bundles for other languages. As default bundles are also included in each individual JAR, they can be safely removed if no internationalization of messages is needed.

          Catalina - 這個類加載器主要加載Tomcat5自己所需要的類和資源。這些類和資源對于Web應用程序是完全不可見的。在$CATALINA_HOME/server/classes目錄下的所有類和資源,$CATALINA_HOME/server/lib下的所有Jar包中類和資源是這個類加載器的加載對象。默認情況,包括個如下內容:

          • catalina.jar - Tomcat5中Catalina Servlet容器的實現部分。
          • catalina-ant.jar - 在管理web應用程序時要用倒的一些Ant任務。
          • catalina-optional.jar - 一些Catalina可選組件。
          • commons-modeler.jar - Tomcat通過JMX暴露其內部對象是用的一些MBean實現。
          • servlets-xxxxx.jar - 這些類同內部的Servlet一起提供Tomcat的部分功能,它們都是獨立的,所以如果不需要相應的服務可以將其刪除?;蛘咚鼈兛梢詮膶儆谔囟ǖ陌踩芾砥鳌?
          • tomcat-coyote.jar - Coyote API.。
          • tomcat-http.jar - 標準的Java HTTP/1.1 連接器.。
          • tomcat-ajp.jar -?AJP web?服務器的連接器,一般用于Apache,iPlanet iAS和 iWS.。
          • tomcat-util.jar - Tomcat連接器需要的工具類。

          Shared - 這個類加載器用于把一些類和資源共享給所有的web應用程序。(除非Tomcat內部的類也需要訪問這些類,在這種情況下你應該把它們放在Common類加載能加載的地方). 在$CATALINA_BASE/shared/classes 目錄下的所有未打包類和資源,以及$CATALINA_BASE/shared/lib目錄下的所有Jar包中的類和資源可以被其加載。如果通過$ CATALINA_BASE環境變量來從同一個tomcat程序運行了多個在實例,那么這個類加載器的倉庫是相對于$CATALINA_BASE而不是$ CATALINA_HOME。?

          WebappX - 系統會為部署在一個Tomcat實例中的每個應用程序創建一個這樣的類加載器,它們為所屬的應用程序加載類。所有你的web應用程序包的/WEB-INF/classes目錄下的類和資源,以及
          /WEB-INF/lib 目錄下的所有Jar包中的類和資源是這個類的加載對象。這些類和資源僅對這個應用程序可見,并且這個應用程序也看不見其他應用程序的類和資源。

          就像上面所描述的,web應用程序的類加載的加載流程與默認的Java 2的類記載托管模型是不一樣的。當有一個請求需要應用程序的WebappX 類加載器加載一個類的時候,這個類加載器是首先到 自己的倉庫中查找,而不是先交給上面的類加載器查找。這里有一些例外。JRE的基礎類是不能被覆蓋的。對于其他一些類(如J2SE 1.4+中的XML解析器組件),可以使用J2SE1.4的簽名特性。最后任何包括servlet API類的Jar包會被忽略。Tomcat5中的其他的類加載器使用正常托管模式。

          這樣在一個web應用程序中,類和資源的加載順序是這樣:

          • Bootstrap classes of your JVM
          • System class loader classses (described above)
          • /WEB-INF/classes of your web application
          • /WEB-INF/lib/*.jar of your web application
          • $CATALINA_HOME/common/classes
          • $CATALINA_HOME/common/endorsed/*.jar
          • $CATALINA_HOME/common/i18n/*.jar
          • $CATALINA_HOME/common/lib/*.jar
          • $CATALINA_BASE/shared/classes
          • $CATALINA_BASE/shared/lib/*.jar
          posted @ 2006-10-17 14:43 javaGrowing 閱讀(396) | 評論 (0)編輯 收藏

          一.選擇符模式
          模式/含義/內容描述

          *
          匹配任意元素。(通用選擇器)
          E
          匹配任意元素 E (例如一個類型為 E 的元素)。(類型選擇器)
          E F
          匹配元素 E 的任意后代元素 F 。(后代選擇器)
          E > F
          匹配元素 E 的任意子元素 F 。(子選擇器)
          E:first-child
          當元素 E 是它的父元素中的第一個子元素時,匹配元素 E 。(:first-child 偽類)
          E:link E:visited
          如果 E 是一個目標還沒有訪問過(:link)或者已經訪問過(:visited)的超鏈接的源錨點時匹配元素 E 。(link 偽類)
          E:active E:hover E:focus
          在確定的用戶動作中匹配 E 。(動態偽類)
          E:lang(c)
          如果類型為 E 的元素使用了(人類)語言 c (文檔語言確定語言是如何被確定的),則匹配該元素。(:lang() 偽類)
          E + F
          如果一個元素 E 直接在元素 F 之前,則匹配元素 F 。(臨近選擇器)
          E[foo]
          匹配具有”foo”屬性集(不考慮它的值)的任意元素 E 。(屬性選擇器)
          E[foo="warning"]
          匹配其“foo”屬性值嚴格等于“warning”的任意元素 E 。(屬性選擇器)
          E[foo~="warning"]
          匹配其“foo”屬性值為空格分隔的值列表,并且其中一個嚴格等于“warning”的任意元素 E 。(屬性選擇器)
          E[lang|="en"]
          匹配其“lang”屬性具有以“en”開頭(從左邊)的值的列表的任意元素 E 。(屬性選擇器)
          DIV.warning
          僅 HTML。用法同 DIV[class~="warning"]。(類選擇器)
          E#myid
          匹配 ID 等于“myid”的任意元素 E 。(ID 選擇器)
          Quote
          From:http://www.w3.org/TR/CSS2/selector.html
          我們用下面的例子來解釋“父元素”、“子元素”、“父/子”及“相鄰”這幾個概念。
          <div title="這是一個div">
          <h1>這是是h1的內容</h1>
          <p>這是一個段落p的內容!<strong>這里是strong的內容</strong>這是一個段落p的內容!</p>
          </div>
          從以上代碼中,我們可以找出這樣的關系:
          h1 和 p 同為 div 的“兒子”,兩者分別同 div 形成“父/子”關系。
          h1,p,strong 都是 div 的“子元素”。(三者都包含在 div 之內)
          div 是 h1 和 p 的“父元素”。
          strong 和 p 形成“父/子”關系,strong 的“父元素”是 p 。
          但 strong 和 div 并非“父/子”關系,而是“祖孫”關系,但 strong 依然是 div 的“子(孫)元素”。
          div 是 h1 p strong 三者的“祖先”,三者是 div 的“子(孫)元素”。
          h1 和 p 兩者是相鄰的。
          繼承上面的實例來具體演示一下E F的關系:假如,我們需要將 strong 內的內容二字變為綠色,我們可以有哪些方法呢?

          div strong {color:green;} /* - 正確。strong 是 div 的“子元素”*/
          p > strong {color:green;} /* - 正確。strong 和 p 是“父/子”關系*/
          div > strong {color:green;} /* - 錯誤!strong 雖然是 div 的“子(孫)元素”,但兩者乃是“祖孫”關系,而非“父/子”關系,因此不能用 > 符號連接*/

          臨近選擇器和通用選擇器:通用選擇器以星號“*”表示,可以用于替代任何 tag 。
          實例:

          h2 + * { color:green }/*所有緊隨 h2 的元素內的文字都將呈現紅色*/

          二.選擇符分類介紹

          1.通配選擇符
          語法:
          * { sRules }
          說明:
          通配選擇符。選定文檔目錄樹(DOM)中的所有類型的單一對象。
          假如通配選擇符不是單一選擇符中的唯一組成,“*”可以省略。
          示例:
          *[lang=fr] { font-size:14px; width:120px; }
          *.div { text-decoration:none; }

          2.類型選擇符
          語法:
          E { sRules }
          說明:
          類型選擇符。以文檔語言對象(Element)類型作為選擇符。
          示例:
          td { font-size:14px; width:120px; }
          a { text-decoration:none; }
          3.屬性選擇符
          語法:
          E [ attr ] { sRules }
          E [ attr = value ] { sRules }
          E [ attr ~= value ] { sRules }
          E [ attr |= value ] { sRules }
          說明:
          屬性選擇符。
          選擇具有 attr 屬性的 E
          選擇具有 attr 屬性且屬性值等于 value 的 E
          選擇具有 attr 屬性且屬性值為一用空格分隔的字詞列表,其中一個等于 value 的 E 。這里的 value 不能包含空格
          選擇具有 attr 屬性且屬性值為一用連字符分隔的字詞列表,由 value 開始的 E
          示例:
          h[title] { color: blue; }
          /* 所有具有title屬性的h對象 */

          span[class=demo] { color: red; }

          div[speed="fast"][dorun="no"] { color: red; }

          a[rel~="copyright"] { color:black; }
          4.包含選擇符
          語法:
          E1 E2 { sRules }

          說明:
          包含選擇符。選擇所有被 E1 包含的 E2 。即 E1.contains(E2)==true 。
          示例:
          table td { font-size:14px; }

          div.sub a { font-size:14px; }
          5.子對象選擇符
          語法:
          E1 > E2 { sRules }
          說明:
          子對象選擇符。選擇所有作為 E1 子對象的 E2 。
          示例:
          body > p { font-size:14px; }
          /* 所有作為body的子對象的p對象字體尺寸為14px */

          div ul>li p { font-size:14px; }
          6.ID選擇符
          語法:
          #ID { sRules }

          說明:
          ID選擇符。以文檔目錄樹(DOM)中作為對象的唯一標識符的 ID 作為選擇符。
          示例:
          #note { font-size:14px; width:120px;}
          7.類選擇符
          語法:
          E.className { sRules }
          說明:
          類選擇符。在HTML中可以使用此種選擇符。其效果等同于E [ class ~= className ] 。請參閱屬性選擇符( Attribute Selectors )。
          在IE5+,可以為對象的 class 屬性(特性)指定多于一個值( className ),其方法是指定用空格隔開的一組樣式表的類名。例如:<div class="class1 class2">。
          示例:
          div.note { font-size:14px; }
          /* 所有class屬性值等于(包含)"note"的div對象字體尺寸為14px */

          .dream { font-size:14px; }
          /* 所有class屬性值等于(包含)"note"的對象字體尺寸為14px */

          8.選擇符分組
          語法:
          E1 , E2 , E3 { sRules }
          說明:
          選擇符分組。將同樣的定義應用于多個選擇符,可以將選擇符以逗號分隔的方式并為組。
          示例:
          .td1,div a,body { font-size:14px; }
          td,div,a { font-size:14px; }

          9.偽類及偽對象選擇符

          語法:
          E : Pseudo-Classes { sRules }
          E : Pseudo-Elements { sRules }
          說明:
          偽類及偽對象選擇符。
          偽類選擇符。請參閱偽類( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]。
          偽對象選擇符。請參閱偽對象( Pseudo-Elements )[:first-letter :first-line :before :after]。
          示例:
          div:first-letter { font-size:14px; }
          a.fly :hover { font-size:14px; color:red; }
          posted @ 2006-09-14 18:22 javaGrowing 閱讀(168) | 評論 (0)編輯 收藏

          在1g內存下.用這個參數很管用. 速度感覺加快


          eclipse.exe -vmargs -xverify:none -xx:+useparallelgc -xx:permsize=20m -xms64m -xmx512m

          posted @ 2006-08-23 16:21 javaGrowing 閱讀(232) | 評論 (0)編輯 收藏

          僅列出標題
          共19頁: First 上一頁 5 6 7 8 9 10 11 12 13 下一頁 Last 
          主站蜘蛛池模板: 巧家县| 岚皋县| 兴化市| 安新县| 盐源县| 共和县| 苏尼特右旗| 镶黄旗| 阿巴嘎旗| 淮安市| 交口县| 方山县| 独山县| 枝江市| 永济市| 两当县| 夏津县| 朝阳县| 白朗县| 兴化市| 乐业县| 太保市| 全椒县| 肃北| 辽中县| 余江县| 水富县| 唐海县| 郑州市| 宿州市| 萨迦县| 同心县| 图木舒克市| 翁牛特旗| 赣榆县| 明星| 宽城| 同心县| 始兴县| 义马市| 怀柔区|