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

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

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

    隨筆-18  評論-8  文章-0  trackbacks-0

    這只小貓玩了它差不多也有一年多了,還沒仔細瞅瞅長個什么樣。當它耍性子的時候,常常弄的我手足無措,因為不懂它說出的一大堆亂七八糟的洋話。為了能讓它說start就start,說down就down,下面要開始一段我訓獸師的經歷 ^_^。

    寵物簡介
    Jakarta Tomcat服務器是一種Servlet/JSP容器,經歷了3.x到4.0.x到4.1.x的變遷,現在最新的版本為5.0.x,支持Servlet2.4和JSP2.0規范,從apache網站上下載Tomcat 5,在環境變量中配置一下JAVA_HOME,小貓就能生靈活現的跑起來了。若小貓啟動失敗,DOS窗口會自動關閉,若運行catalina run命令DOS窗口是不會自動關閉的。

    tomcat中有三個放置java庫的地方,分別是/server/lib、/shared/lib和/common/lib。
    區別:/server/lib - 其中的jar文件只能被tomcat服務器訪問。
    /shared/lib - 其中的jar文件可以被所有的Web應用訪問,但不能被tomcat服務器訪問到。
    /common/lib - Web服務和tomcat服務器都可以訪問的到。

    server.xml文件解析 - 文件位置是<%CATALINA_HOME%>/conf/server.xml

    配置虛擬主機
    Host元素代表虛擬主機,在同一個Engine元素下可以配置多個虛擬主機。打開server.xml文件可以發現Engine元素下已經有一個名為localhost的Host元素了,可以在它后面加入下列代碼:

    <Host name="www.myname.com" debug="0" appBase="c:\myname" unpackWar="true" autoDeploy="true">
        <alias>www.myname1.com</alias>
        <alias>www.myname2.com</alias>
        <Context pathh="/helloapp" docBase="helloapp" debug="0" reloadable="true"/>
    </Host> 

    Session的使用
    Session是一種用來跟蹤用戶狀態的機制,那它是怎么實現的呢?Servlet容器通過在客戶端瀏覽器中保存一個Session ID來跟蹤Session,調用session.getID()可以看到你的Session ID是多少。如果客戶端支持Cookie,就把Session ID作為Cookie保持在瀏覽器中,現在絕大多數瀏覽器都會把Cookie功能打開,但如果用戶禁止了Cookie呢?Java Servlet API中提出了另外一種機制,Servlet容器可以重寫客戶requst的URL,把Session ID添加到URL信息中,HttpServletResponse接口提供了這樣的方法:public String encodeURL(String url)-先判斷如果沒有啟用Session,例如jsp中<%@ page session="false"%>或執行了session.invalideate(),那么直接返回url,在判斷客戶端師父支持Cookie,如果不支持,就在url中加入Session ID的信息,然后返回修改后的url。

    Session的管理
    當一個sesson開始時,Servlet容器會創建一個HttpSession對象,在某些情況下把這些Httpsession對象從內存中轉移到文件系統中或數據庫中,需要訪問的時候在把它們載入到內存中來。這樣做的好處有兩點:節約了內存的消耗,當web服務器產生故障時,還可以從文件系統或數據庫中恢復Session的數據。
    對于Session的管理,小貓提供了兩個實現類:org.apache.catalina.session.StandardManager和org.apache.catalina.session.PersistentManager。
    StandardManager -是默認的方法,當Tomcat服務器重啟或重載的時候,會把Session對象保存到
    <%CATALINA_HOME%>/work/Catalina/honstname/applicatonname/SESSIONS.ser(默認值)文件中,每個對象對應一個文件,以Session ID為文件名,例如:

    <Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true">
        <Manager className="org.apache.catalina.session.StandardManager" debug="0" 
          maxActiveSessions="-1" checkInterval="60"
     />
    </Context>

    參數說明:checkInterval-檢查session是否過期的時間間隔,以秒為單位,缺省值是60秒;
    maxActiveSessions-可處于活動狀態的session數。

    PersistentManager -提供了更加靈活的管理方式,具有容錯能力,可以及時把Session備份到Session Store中,可以控制內存中Session的數量。
    小貓還提供了實現持久化Session Store的接口,org.apache.catalina.Store,目前提供了兩個具體實現類:org.apache.catalina.FileStore和org.apache.catalina.JDBCStore。
    server.xml中的配置File Store -

    <Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true">
        <Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true" 
              maxActiveSessions
    ="-1" minIdleSwap="-1" maxIdleSwap="-1" maxIdleBackup="-1" >
        <Store className="org.apache.catalina.session.FileStore" directory="mydir"/>
        </Manager>
    </Context>

    參數說明:saveOnRestart-服務器關閉時,是否將所有的session保存到文件中;
    maxActiveSessions-可處于活動狀態的session數;
    minIdleSwap/maxIdleSwap-session處于不活動狀態最短/長時間(s),sesson對象轉移到File Store中;
    maxIdleBackup-超過這一時間,將session備份。(-1表示沒有限制)

    JDBCStore配置的區別:

    <Store calssName="org.apache.catalina.JDBCStore" driverName="com.mysql.jdbc.Driver" 
        connectionURL
    ="jdbc:mysql://localhost/tomsessionDB?user=root&password=" 
        sessionTable
    ="tomcat_session" sessionIdCol="session_id" sessionDataCol="session_data" 
        sessionValidCol
    ="session_valid" sessionMaxInactiveCol="max_inactive" 
        sessionLastAccessedCol
    ="last_access" sessionAppCol="app_name" checkInterval="60" debug="99" />

    Session失效時間的設定
    在web.xml文件中,位于<servlet-mapping>和<welcome-file-list>元素之間加入如下代碼,單位為分鐘:

    <session-config>   
        <session-timeout>60</session-timeout>
    </session-config>

    Tomcat的admin平臺和manager平臺
    這是Tomcat中自帶的兩個Web應用,位于<%CATALINA_HOME%>/server/webapps/admin(manager),訪問地址是http://localhsot:8080/admin(manager)。要訪問這兩個Web應用,需要在
    <%CATALINA_HOME%>/conf/tomcat-users.xml中添加如下內容:
    <user username="admin" password="1234" role="admin"/>           //對應admin Web應用
    <user username="manager" password="1234" role="manager"/>   //對應manager Web應用

    admin平臺把所有可配置的信息分為三類:Tomcat Server、Resources、User Definition。
    Tomcat Server-相當于server.xml中的<Server>元素及其子元素,<Service>、<Host>、<Context>、<Resources>、<Date Source>。
    Resources-相當于server.xml中的<GlobalNamingResources>,共有四種資源:Date Source(JNDI數據源)、Mail Sessioin(JNDI Mail Session資源)、Environment Entry(環境變量)、User Database(安全域中的用戶數據庫)。
    User Definition-與tomcat-users.xml相對應。

    manager平臺-列出來所有Web應用和狀態,并提供了Start、Stop、Reload、 Undeploy命令,還可以發布
    <%CATALINA_HOME%>/webapps目錄下的Web應用或系統文件任意位置的WAR文件。


    參考:《Tomcat與JavaWeb開發技術詳解》

    posted on 2005-02-15 21:13 阿姆斯壯 閱讀(1235) 評論(0)  編輯  收藏 所屬分類: 基礎很重要
    主站蜘蛛池模板: 国产亚洲综合久久系列| 亚洲春色另类小说| 最近中文字幕电影大全免费版 | 亚洲精品无码Av人在线观看国产| 久久久久久成人毛片免费看| 亚洲码欧美码一区二区三区| 中文字幕亚洲乱码熟女一区二区| 114级毛片免费观看| 日本激情猛烈在线看免费观看| 久久久久亚洲av无码专区| 国产禁女女网站免费看| 国产精品偷伦视频观看免费| 亚洲风情亚Aⅴ在线发布| 久久精品国产亚洲AV麻豆王友容 | 亚洲熟妇中文字幕五十中出| 日韩吃奶摸下AA片免费观看| 国产免费伦精品一区二区三区| 亚洲高清一区二区三区| 亚洲爆乳无码专区| 日本不卡视频免费| 猫咪免费人成网站在线观看| 72pao国产成视频永久免费| 亚洲AV无码久久久久网站蜜桃 | 曰批全过程免费视频播放网站| 免费国产va在线观看| 香蕉大伊亚洲人在线观看| 亚洲动漫精品无码av天堂| 伊在人亚洲香蕉精品区麻豆| 色婷婷7777免费视频在线观看| 色www永久免费网站| 黄色一级免费网站| 亚洲国产精华液2020| 亚洲喷奶水中文字幕电影| 亚洲av无码专区国产乱码在线观看| 国产成人高清精品免费软件| 丁香花免费完整高清观看| 香蕉免费一区二区三区| 热久久这里是精品6免费观看| 深夜免费在线视频| 美女一级毛片免费观看| 亚洲人成人伊人成综合网无码|