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

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

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

    廉頗老矣,尚能飯否

    java:從技術到管理

    常用鏈接

    統計

    最新評論

    tomcat6學習筆記( 包括和apache2的集成,集群,SSI,SSL,安全域,嵌入應用程序,訪問控制平臺和管理平臺)

    最近通過孫衛琴的《tomcat與java web開發技術詳解(第二版)》學習了tomcat6,并對部分內容做了點筆記,現在分享給大家,難免殘缺和粗糙,望見諒。
    一.訪問tomcat的控制平臺和管理平臺
    首先下載tomcat6:進入 http://www.apache.org/ 點擊 tomcat項目進入 http://tomcat.apache.org/ 點擊download下的tomcat6.x進入 http://tomcat.apache.org/download-60.cgi 選擇 Binary Distributions 下的core下的 zip,下載后為 apache-tomcat-6.0.18.zip 文件,解壓后為 apache-tomcat-6.0.18,可以直接啟動,不需要安裝,訪問  http://localhost:8080 可以測試是否成功
    1.訪問控制平臺: tomcat自帶了manager項目來管理平臺,但是在tomcat-users.xml中沒有定義角色和用戶,所以只需要修改該文件就可以了
    修改前:
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    </tomcat-users>
    修改后:
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="manager"/>
      <user username="tomcat" password="tomcat" roles="manager"/>
    </tomcat-users>
    啟動tomcat后訪問 http://localhost:8080 成功,訪問 http://localhost:8080/manager/html  成功

    2.訪問控制平臺:實際就是tomcat的server.xml配置文件配置的可視化操作,tomcat6已經不帶該項目了,需要先到apache官網下載,下載過程和下載tomcat6類似,先找到tomcat,然后找到5.5版本,最后選擇 Administration Web Application 下的zip,下載文件是 apache-tomcat-5.5.27-admin.zip ,解壓后為 apache-tomcat-5.5.27,將apache-tomcat-5.5.27\server\webapps下的admin文件夾復制粘貼到tomcat的webapps目錄下,將apache-tomcat-5.5.27\conf下的Catalina目錄復制粘貼到tomcat的conf目錄下,最后是修改tomcat-user.xml文件來添加用戶和角色,原因和過程同上,修改后文件內容如下
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="manager"/>
      <role rolename="admin"/>
      <user username="tomcat" password="tomcat" roles="manager,admin"/>
    </tomcat-users>
    修改文件apache-tomcat-6.0.18\webapps\admin下的admin.xml,將
    <Context docBase="${catalina.home}/server/webapps/admin" privileged="true"
             antiResourceLocking="false" antiJARLocking="false">
    改成
    <Context docBase="${catalina.home}/webapps/admin" privileged="true"
             antiResourceLocking="false" antiJARLocking="false">
    相同方式修改apache-tomcat-6.0.18\conf\Catalina\localhost下的admin.xml文件

    項目運行需要兩個jar文件:commons-logging.jar 和 commons-modeler.jar ,需要到apache網站下載
    下載commons-logging的過程是:登錄 http://www.apache.org/ ,找到commons項目后點擊進入 http://commons.apache.org/  頁面,找到Components下的logging點擊后進入 http://commons.apache.org/logging/,點擊 Commons logging 下的download進入 http://commons.apache.org/downloads/download_logging.cgi 下載頁面。然后下載 Binary下的1.1.1.zip,下載后解壓,將其中的 commons-logging-1.1.1.jar 復制粘貼到tomcat下的lib目錄下
    下載 commons-modeler-2.0.1.jar的過程大致相同,訪問 http://commons.apache.org/downloads/download_modeler.cgi
    啟動tomcat后訪問 http://localhost:8080 成功,訪問 http://localhost:8080/admin  成功

    二.將tomcat集成到apache2服務器上

    首先安裝apache2:登錄 http://www.apache.org/ 點擊 HTTP Server 項目,進入 http://httpd.apache.org/ ,選擇download下的froma mirror后進入 http://httpd.apache.org/download.cgi 頁面,選擇 Apache HTTP Server 2.2.11 is the best available version 下的 Win32 Binary without crypto (no mod_ssl) (MSI Installer): apache_2.2.11-win32-x86-no_ssl.msi ,文件名稱是apache_2.2.11-win32-x86-no_ssl.msi,下載后為apache_2.2.11-win32-x86-no_ssl.msi。雙擊安裝,一切默認安裝就行了
    安裝后訪問 http://localhost,如果出現提示頁面告訴你apache已經開始工作就說明成功了
    首先下載mod_jk.so:進入 http://www.apache.org/ 點擊 tomcat項目進入 http://tomcat.apache.org/ 點擊download下的Tomcat Connectors 進入 http://tomcat.apache.org/download-connectors.cgi 選擇Tomcat Connectors JK 1.2下的Binary Releases 進入 http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/頁面,點擊win32進入 http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/win32/頁面,點擊版本jk-1.2.28/ 進入http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/頁面,點擊mod_jk-1.2.28-httpd-2.0.52.so  ,下載文件為mod_jk-1.2.28-httpd-2.0.52.so 下載后為 mod_jk-1.2.28-httpd-2.0.52.so文件,可以改名為mod-jk.so。
    1.拷貝mod_jk.so插件到apache2的modules目錄

    2.在apache2的conf目錄下新建worker.properties文件,內容如下
    worker.list=worker1
    worker.worker1.port=8009  #工作端口,若沒占用則不用修改
    worker.worker1.host=localhost  #Tomcat服務器的地址
    worker.worker1.type=ajp13  #類型
    worker.worker1.lbfactor=1  #負載平衡因數

    3.在apache2的conf目錄下修改httpd.conf文件,在后面追加內容如下
    # Using mod_jk.so to redirect dynamic calls to Tomcat
    LoadModule  jk_module  modules/mod_jk.so
    JkWorkersFile  conf/workers.properties
    JkLogFile  logs/mod_jk.log
    JkLogLevel  debug
    JkMount  /*.jsp  worker1
    JkMount  /manager/*  worker1

    4.測試時輸入http://localhost/manager/html成功運行

    三.使用一個apache2和兩個tomcat6配置tomcat集群
    1.拷貝mod_jk.so插件到apache2的modules目錄

    2.在apache2的conf目錄下新建worker.properties文件,內容如下
    worker.list=worker1,worker2,loadbalancer

    worker.worker1.port=8009  #工作端口,若沒占用則不用修改
    worker.worker1.host=localhost  #Tomcat服務器的地址
    worker.worker1.type=ajp13  #類型
    worker.worker1.lbfactor=100  #負載平衡因數

    worker.worker2.port=8109  #工作端口,若沒占用則不用修改
    worker.worker2.host=localhost  #Tomcat服務器的地址
    worker.worker2.type=ajp13  #類型
    worker.worker2.lbfactor=100  #負載平衡因數

    worker.loadbalancer.type=lb
    worker.loadbalancer.balanced_workers=worker1, worker2
    worker.loadbalancer.sticky_session=false
    worker.loadbalancer.sticky_session_force=false

    3.在apache2的conf目錄下修改httpd.conf文件,在后面追加內容如下
    # Using mod_jk.so to redirect dynamic calls to Tomcat
    LoadModule jk_module modules/mod_jk.so
    JkWorkersFile conf/workers.properties
    JkLogFile logs/mod_jk.log
    JkLogLevel debug
    JkMount /*.jsp loadbalancer
    JkMount /manager/* loadbalancer

    4.復制兩個免安裝的tomcat,把其中一個的server.xml文件修改成
    Server port="8105"
    Connector port="8180"
    <Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />
    兩個文件的engine元素都要添加jmvRoute屬性,分別是worker1和worker2
    比如 <Engine name="Catalina" defaultHost="localhost" jmvRoute="worker2">
    5.新建文件test.jsp,內容如下
    <html>
    <head>
      <title>helloapp</title>
    </head>
    <body>
    <%
    System.out.println("call test.jsp");
    %>  
    SessionID: <%=session.getId() %> 
    </body>
    </html>
    在兩個tomcat的webapps目錄下的manager項目文件夾下分別復制粘貼一個文件test.jsp
    6.測試時輸入http://localhost/manager/test.jsp成功運行,問題在于session不唯一
    ====================================
    下面解決session的唯一問題
    7.在每個tomcat的server.xml文件中的engine元素下都添加如下內容
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                     channelSendOptions="8">

      <Manager className="org.apache.catalina.ha.session.DeltaManager"
                       expireSessionsOnShutdown="false"
                       notifyListenersOnReplication="true"/>
      <Channel className="org.apache.catalina.tribes.group.GroupChannel">
        <Membership className="org.apache.catalina.tribes.membership.McastService"
                            bind="127.0.0.1" 
                            address="228.0.0.4"
                            port="45564"
                            frequency="500"
                            dropTime="3000"/>
        <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                          address="auto"
                          port="4000"
                          autoBind="100"
                          selectorTimeout="5000"
                          maxThreads="6"/>
        <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
            <Transport  className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
        </Sender>
       
        <Interceptor  className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
        <Interceptor  className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
      </Channel>

      <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
      <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

      <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                        tempDir="/tmp/war-temp/"
                        deployDir="/tmp/war-deploy/"
                        watchDir="/tmp/war-listen/"
                        watchEnabled="false"/>

      <ClusterListener  className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
      <ClusterListener  className="org.apache.catalina.ha.session.ClusterSessionListener"/>

    </Cluster>   

    8.在每個tomcat的webapps下的web應用的web.xml文件中添加如下內容
    <distributeable/>
    9.重新測試session唯一

     四.配置tomcat的Server Side include (SSI)
    1.因為tomcat6的lib文件夾中沒有servlet-ssi.jar,所以從tomcat5.5的lib文件夾中復制servlet-ssi.renametojar粘貼到tomcat6的lib中并改名為servlet-ssi.jar
    2.將tomcat6的web.xml文件中的兩處注釋掉的內容取消注釋,打開tomcat服務器的ssi功能
    第一處
        <servlet>
            <servlet-name>ssi</servlet-name>
            <servlet-class>
              org.apache.catalina.ssi.SSIServlet
            </servlet-class>
            <init-param>
              <param-name>buffered</param-name>
              <param-value>1</param-value>
            </init-param>
            <init-param>
              <param-name>debug</param-name>
              <param-value>0</param-value>
            </init-param>
            <init-param>
              <param-name>expires</param-name>
              <param-value>666</param-value>
            </init-param>
            <init-param>
              <param-name>isVirtualWebappRelative</param-name>
              <param-value>0</param-value>
            </init-param>
            <load-on-startup>4</load-on-startup>
        </servlet>
    第二處
        <servlet-mapping>
            <servlet-name>ssi</servlet-name>
            <url-pattern>*.shtml</url-pattern>
        </servlet-mapping>

    3.新建文件sample.shtml,并將文件復制粘貼到tomcat的webapps目錄的manager項目文件夾下,
    sample.shtml文件內容如下
    <html>
    <head><title>my first SSI page</title></head>
    <body>
    歡迎您于(<!--#echo var="DATE_LOCAL" -->)訪問本網站。
    </body>
    </html>
    4.修改manager項目的META-INF文件夾下的context.xml文件

    <Context relodable="true" />
    改成
    <Context relodable="true"  privileged="true" />
    5.訪問
    http://localhost:8080/manager/sample.shtml

    五.配置tomcat的Server Socket Layer(SSL)
    1.使用sun公司的tookey工具制作個人證書,在jdk的bin文件夾中有

    證書制作
    cmd進入ms-dos窗口
    Microsoft Windows XP [版本 5.1.2600]
    (C) 版權所有 1985-2001 Microsoft Corp.

    C:\Documents and Settings\100554>cd\

    C:\>cd C:\Program Files\Java\jdk1.6.0_07\bin

    C:\Program Files\Java\jdk1.6.0_07\bin>keytool -genkey -alias tomcat -keyalg RSA
    -keypass changeit -storepass changeit -keystore d:\server.keystore -validity 3000
    您的名字與姓氏是什么?
      [Unknown]:  ellen
    您的組織單位名稱是什么?
      [Unknown]:  xinxihua
    您的組織名稱是什么?
      [Unknown]:  jianlong
    您所在的城市或區域名稱是什么?
      [Unknown]:  fengtai
    您所在的州或省份名稱是什么?
      [Unknown]:  beijing
    該單位的兩字母國家代碼是什么
      [Unknown]:  cn
    CN=ellen, OU=xinxihua, O=jianlong, L=fengtai, ST=beijing, C=cn 正確嗎?
      [否]:  y

    C:\Program Files\Java\jdk1.6.0_07\bin>

    2.配置tomcat的server.xml文件
     <Connector className="org.apache.coyote.tomcat6.CoyoteConnector"
                             port="8443" minProcessors="5"
                             maxProcessors="75" enableLookups="true"
                             acceptCount="100"
                             protocol="HTTP/1.1" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS"
                   keystoreFile="D:/server.keystore"
                   keystorePass="changeit" />

    3啟動ie瀏覽器(不同的瀏覽器有區別),訪問 https://localhost:8433 (注意是https,不是http;是8433,不是8080)

     六.將tomcat嵌入到應用程序中

    原書的demo運行繁瑣,這里改變的主要是編譯環境,并部署了一個web項目做進一步的實驗
    1.下載一個免安裝的tomcat服務器,改名tomcat并放在f盤根目錄
    2.啟動MyEclipse,已經集成了tomcat,新建一個名為hellodemo的javaWeb應用,運行無誤后導出為名為hellodemo的war包。
    并將hellodemo.war復制粘貼到f:\tomcat\webapps目錄下
    3.將MyEclipse的tomcat禁用掉,新建一個java項目,注意不是web項目,名稱是tomcatdemo,在src下的pkg包中新建一個java類,代碼如下
    package pkg;
    import java.net.InetAddress;

    import org.apache.catalina.Context;
    import org.apache.catalina.Engine;
    import org.apache.catalina.Host;
    import org.apache.catalina.connector.Connector;
    import org.apache.catalina.startup.Embedded;

    public class EmbeddedTomcat {

      private String path = null;
      private Embedded embedded = null;
      private Host host = null;

      public EmbeddedTomcat() { }

      /** 設置Tomcat的根路徑 */
      public void setPath(String path) {
        this.path = path;
      }

      /** 返回Tomcat的根路徑 */
      public String getPath() {
        return path;
      }

      /** 啟動Tomcat服務器 */
      public void startTomcat() throws Exception {

        Engine engine = null;

        //設置catalina.home系統屬性
        System.setProperty("catalina.home", getPath());

        //創建嵌入式Tomcat服務器
        embedded = new Embedded();

        //創建Engine實例
        engine = embedded.createEngine();
        engine.setDefaultHost("localhost");

        //創建默認的Host實例
        host = embedded.createHost("localhost", getPath() + "/webapps");
        engine.addChild(host);

        //創建ROOT context
        Context context = embedded.createContext("",  getPath() + "webapps/ROOT");
        host.addChild(context);

        //創建examples context
        Context examplesContext = embedded.createContext("/examples",
         getPath() + "webapps/examples");
        host.addChild(examplesContext);
        /****************************************************/
        //創建hellodemo context 
        Context hellodemo= embedded.createContext("/hellodemo",
         getPath() + "webapps/hellodemo");
        host.addChild(hellodemo);
        /****************************************************/

        //把Engine實例加入到嵌入式Tomcat服務器
        embedded.addEngine(engine);

        //創建和安裝默認的HTTP connector
        InetAddress addr=null;
        Connector connector = embedded.createConnector(addr, 8080, false);
        embedded.addConnector(connector);

        //啟動嵌入式Tomcat服務器
        embedded.start();
      }

      /** 終止嵌入式Tomcat服務器  */
      public void stopTomcat() throws Exception {
        embedded.stop();
      }

      public static void main(String args[]) {
        try {
          EmbeddedTomcat tomcat = new EmbeddedTomcat();
          String rootpath="f:/tomcat/";
          tomcat.setPath(rootpath);
          tomcat.startTomcat();
          Thread.sleep(1000*60*5); //睡眠5分鐘
          tomcat.stopTomcat();
          System.exit(0);
        }
        catch( Exception e ) {
          e.printStackTrace();
        }
      }
    }

    4.將f:\tomcat的lib目錄和bin目錄下的jar包都導入到項目中
    5.運行有main方法的EmbeddedTomcat類。
    6.測試訪問,成功
    http://localhost:8080
    http://localhost:8080/hellodemo/index.jsp

    七.tomcat閥
    1.客戶訪問日志閥
    只修改manager應用的context.xml文件,添加內容如下
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="ellen_log." suffix=".txt" pattern="%h %l %u %t %r %s %b" resolveHosts="true" />
    保存后啟動tomcat后訪問 http://localhost:8080/manager/html
    tomcat的logs文件夾新建文件ellen_log.txt,文件內容如下
    127.0.0.1 - tomcat [06/May/2009:16:37:10 +0800] GET /manager/html HTTP/1.1 200 13030

    2.遠程地址過濾器
    只修改tomcat的server.xml文件,在host元素內添加如下內容
    <!--Remote Address Filter-->
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    deny="127.* , 222.*"/>
    保存后啟動tomcat訪問 http://localhost:8080  http://127.0.0.1:8080 顯示網站拒絕
    修改如下
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127.* , 222.*"/>
    保存后啟動tomcat訪問 http://localhost:8080 http://127.0.0.1:8080頁正常顯示
    如果想實現本機的tomct服務器只允許本機的瀏覽器訪問就可以如此設置
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127.0.0.1*, localhost*"/>

    3.遠程主機過濾器
    只修改tomcat的server.xml文件,在host元素內添加如下內容
    <!--Remote Host Filter-->
    <Valve className="org.apache.catalina.valves.RemoteHostValve"
    deny="monster*"  />
    保存后啟動tomcat訪問 http://localhost:8080  http://127.0.0.1:8080 顯示網站拒絕

    4.客戶請求記錄器
    只修改tomcat的server.xml文件,在host元素內添加如下內容
    <!--Request Dumper-->
    <Valve className="org.apache.catalina.valves.RequestDumperValve" />
    保存后啟動tomcat訪問 http://localhost:8080 每次訪問一次就到logs下查看文件 localhost.2009-05-06.log(日期為當日日期),
    僅僅啟動tomcat后產生的文件內容如下
    2009-5-6 17:18:02 org.apache.catalina.core.ApplicationContext log
    信息: ContextListener: contextInitialized()
    2009-5-6 17:18:02 org.apache.catalina.core.ApplicationContext log
    信息: SessionListener: contextInitialized()
    第一次訪問后追加了如下內容(略)


    八.tomcat安全域
    分類:內存域MemoryRealm;JDBC域JDBCRealm;數據源域DataSourceRealm;JNDI域JNDIRealm;JAAS域JAASRealm
    三種登錄方式
     <!--  BASIC authentication -->
     <login-config>
      <auth-method>BASIC</auth-method>
      <realm-name>ellen realm</realm-name>
     </login-config>

     <!-- DIGEST authentication -->
     <login-config>
      <auth-method>DIGEST</auth-method>
      <realm-name>ellen realm</realm-name>
     </login-config>
     
     <!-- FORM authentication -->
     <login-config>
      <auth-method>FORM</auth-method>
      <realm-name>ellen realm</realm-name>
      <form-login-config>
       <form-login-page>/usercheck.jsp</form-login-page>
       <form-error-page>/error.jsp</form-error-page>
      </form-login-config>
     </login-config>
    使用表單方式必須新建兩個文件 usercheck.jsp(有嚴格的要求) 和 error.jsp(沒有嚴格要求)
    usercheck.jsp
    <html>
    <head>
    <title>Login Page for helloapp</title>
    <body bgcolor="white">
    <form method="POST" action=j_security_check>
      <table border="0" cellspacing="5">
        <tr>
          <th align="right">Username:</th>
          <td align="left"><input type="text" name="j_username"></td>
        </tr>
        <tr>
          <th align="right">Password:</th>
          <td align="left"><input type="password" name="j_password"></td>
        </tr>
        <tr>
          <td align="right"><input type="submit" value="LogIn"></td>
          <td align="left"><input type="reset" value="reset"></td>
        </tr>
      </table>
    </form>
    </body>
    </html>
    內存域
    1.在web應用的WEB-INF目錄下的web.xml文件中配置安全約束
    web.xml文件內容

     <!--指定受保護的資源及訪問的方式和可以訪問的角色-->
     <security-constraint>
      <display-name>
       ellen Configuration Security Constraint
      </display-name>
      <web-resource-collection>
       <web-resource-name>Protected Area</web-resource-name>
       <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <auth-constraint>
       <role-name>guest</role-name>
      </auth-constraint>
     </security-constraint>

     <!--登錄對話框的類型-->
     <login-config>
      <auth-method>BASIC</auth-method>
      <realm-name>ellen realm</realm-name>
     </login-config>
     
     <!--這里的角色和步驟2的角色相同-->
     <security-role>
      <description>
       The role that is required to login to the ellen Application
      </description>
      <role-name>guest</role-name>
     </security-role>

    2.在web應用的METE-INF目錄下的context.xml文件中配置Realm
    context.xml文件內容
    <Context reloadable="true">
     <Realm className="org.apache.catalina.realm.MemoryRealm" />
    </Context>
    3.在tomcat的conf目錄下的tomcat-users.xml文件中定義角色和用戶
    MemoryRealm類從一個xml文件中讀取用戶信息,默認是tomcat的conf目錄下的tomcat-users.xml文件
    tomcat-users.xml文件內容
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="guest"/>
      <user username="ellen" password="123" roles="guest"/>
    </tomcat-users>

    JDBC域
    1.和內存域相同
    2.運行數據庫腳本
    數據庫腳本
    create database ellen;
    use ellen;
    create table users(
    user_name varchar(15) not null primary key,
    user_pass varchar(15) not null
    );
    create table user_roles(
    user_name varchar(15) not null,
    role_name varchar(15) not null,
    primary key(user_name,role_name)
    );
    insert into users values("ellen","123");
    insert into user_roles values("ellen","guest");
    3.將數據庫驅動類復制粘貼到tomcat的lib目錄
    4.在web應用的METE-INF目錄下的context.xml文件中配置Realm
    context.xml文件內容
    <Context reloadable="true">
     <Realm className="org.apache.catalina.realm.JDBCRealm"
      driverName="com.mysql.jdbc.Driver"
      connectionURL="jdbc:mysql://localhost/ellen" connectionName="root"
      connectionPassword="root" userTable="users" userNameCol="user_name"
      userCredCol="user_pass" userRoleTable="user_roles"
      roleNameCol="role_name" />
    </Context>

    DataSource域
    1.2.3步和JDBC域相同
    4.在web應用的METE-INF目錄下的context.xml文件中配置Realm
    context.xml文件內容
    <Context reloadable="true">
     <Realm className="org.apache.catalina.realm.JDBCRealm"
      driverName="com.mysql.jdbc.Driver"
      connectionURL="jdbc:mysql://localhost/ellen" connectionName="root"
      connectionPassword="root" userTable="users" userNameCol="user_name"
      userCredCol="user_pass" userRoleTable="user_roles"
      roleNameCol="role_name" />
    </Context>

    JNDI域
    1.2.3步和JDBC域相同
    4.在web應用的METE-INF目錄下的context.xml文件中配置Realm
    context.xml文件內容
    <Context reloadable="true">
     <Realm className="org.apache.catalina.realm.DataSourceRealm"
      dataSourceName="jdbc/ellen" userTable="users" userNameCol="user_name"
      userCredCol="user_pass" userRoleTable="user_roles"
      roleNameCol="role_name" />
    </Context>
    5.在tomcat的conf目錄下的server.xml文件中GlobalNamingResources元素下添加Resource元素
        <Resource name="jdbc/ellen" auth="Container"    type="javax.sql.DataSource"
         maxActive="100" maxIdle="30" maxWait="10000"
         username="root" password="root"
         driverClassName="com.mysql.jdbc.Driver"
         url="jdbc:mysql://localhost:3306/ellen?autoReconnect=true"/>



    柳德才
    13691193654
    18942949207
    QQ:422157370
    liudecai_zan@126.com
    湖北-武漢-江夏-廟山

    posted on 2009-05-06 15:39 liudecai_zan@126.com 閱讀(1474) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 一个人免费观看www视频| 久久久久se色偷偷亚洲精品av| 亚洲精品成a人在线观看☆| h片在线免费观看| 久久久久亚洲av无码专区蜜芽| 一级毛片在线播放免费| 亚洲精品综合久久| 成人午夜免费视频| 亚洲日本一区二区一本一道| 一级午夜免费视频| 亚洲日韩v无码中文字幕 | 久久久久亚洲国产AV麻豆| 日韩欧毛片免费视频| 亚洲卡一卡2卡三卡4麻豆| 97性无码区免费| 亚洲va在线va天堂成人| 114一级毛片免费| 亚洲av无码国产综合专区 | 日本免费观看网站| 美女被免费网站在线视频免费| 亚洲av无码成人精品区在线播放| 国产亚洲午夜精品| 亚洲毛片αv无线播放一区| 国产精品区免费视频| 亚洲色偷偷av男人的天堂| 一二三四影视在线看片免费 | a视频在线免费观看| 久久精品亚洲一区二区三区浴池| 67pao强力打造高清免费| 在线aⅴ亚洲中文字幕| 免费女人18毛片a级毛片视频| 一区二区免费电影| 亚洲美女大bbbbbbbbb| 成在线人永久免费视频播放| 深夜特黄a级毛片免费播放| 亚洲va久久久噜噜噜久久天堂| 999久久久免费精品国产| 免费无遮挡无遮羞在线看| 亚洲精品一品区二品区三品区| 91频在线观看免费大全| 最新亚洲人成网站在线观看|