亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tomcat5.0+mysql配置jdbcrealm,dbcp,ssl,及中文亂碼解決詳解 .txt

?? 關于JAVA幾個重要問題的文檔。 關于JAVA幾個重要問題的文檔。
?? TXT
字號:
tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,及中文亂碼解決詳解 
 
 
準備環境:
1.j2sdk-1_4_2-windows-i586.exe    //jdk
2.mysql-4.0.20d-win.zip        //mysql數據庫
3.mysqlcc-0.9.4-win32.zip    //mysqlGUI控制
4.jakarta-tomcat-5.0.27.exe    //tomcat服務器
5.mysql-connector-java-3.0.14-production.zip //內含mysql驅動

安裝步驟:
1.安裝jdk
2.安裝tomcat
3.安裝mysql
4.安裝mysqlcc
5.將驅動包解壓,拷貝mysql-connector-java-3.0.14-production-bin.jar到tomcat/common/lib下
或者下載mm.mysql-2.0.14-you-must-unjar-me.jar,解壓后拷貝其中的mm.mysql-2.0.14-bin.jar

Tomcat5.0配置 本例使用安裝密碼 198277
1.配置manager 管理應用程序
在conf/server.xml 中
添加如下

<Service name="Catalina">
...

    <Context path="/manager" debug="0" privileged="true"
             docBase="/usr/local/kinetic/tomcat5/server/webapps/manager">
    </Context>

</Service> 

限制ip訪問配置
<Context path="/manager" debug="0" privileged="true"
         docBase="/usr/local/kinetic/tomcat5/server/webapps/manager">
         <Valve className="org.apache.catalina.valves.RemoteAddrValve"
                allow="127.0.0.1"/>
</Context>
測試為:http://localhost:8080/manager/html

2.配置JDBCRealm容器管理安全,以mysql-4.0數據庫為例
a.拷貝驅動mm.mysql-2.0.14-bin.jar到common/lib/下
b.在數據庫ycg中建表
   
 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)
);

c.修改server.xml如下(默認數據庫為root,無密碼,如果有形如:connectionURL="jdbc:mysql://localhost/authority?

user=dbuser&password=dbpass")
      <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
             driverName="org.gjt.mm.mysql.Driver"
          connectionURL="jdbc:mysql://localhost/ycg?user=root"
         connectionName="" connectionPassword=""
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="role_name" />

d.在數據庫中添加入tomcat的默認配置數據:

+-----------+-----------+
| user_name | role_name |
+-----------+-----------+
| admin     | admin     |
| admin     | manager   |
| both      | role1     |
| both      | tomcat    |
| role1     | role1     |
| tomcat    | tomcat    |
+-----------+-----------+
+-----------+-----------+
| user_name | user_pass |
+-----------+-----------+
| tomcat    | tomcat    |
| both      | tomcat    |
| role1     | tomcat    |
| admin     | 198277    |
+-----------+-----------+

e.啟動mysql,啟動tomcat,此后tomcat將從數據庫中讀用戶規則認證.默認的conf/tomcat-users.xml失效

3.DBCP的配置
a.設置
             <parameter>
              <name>removeAbandoned</name>
              <value>true</value>
            </parameter>

 可使失效的數據連接重新啟用.
配套設置
   
             <parameter>
              <name>removeAbandonedTimeout</name>
              <value>60</value>
            </parameter>
失效時間
如果要寫入日志
設置
            <parameter>
              <name>logAbandoned</name>
              <value>true</value>
            </parameter>
以上三個默認都是false
b.以mysql為例,配置數據連接池
c.配置新的用戶與數據庫,必須設定密碼,空密碼將導致連接失敗
e.
指定root密碼:mysqladmin -u root -h localhost password "198277"
(需修改上面的jdbcrealm設置connectionURL="jdbc:mysql://localhost/ycg?user=root&password=198277")
命令mysql進入匿名連接到服務器
密碼訪問
shell> mysql -h host -u user -p
Enter password: ********

//如果root沒有密碼,以下是不成功的.(試過了)
 mysql> GRANT ALL PRIVILEGES ON *.* TO javauser@localhost 
    ->   IDENTIFIED BY 'javadude' WITH GRANT OPTION;
mysql> create database javatest;
mysql> use javatest;
mysql> create table testdata (
    ->   id int not null auto_increment primary key,
    ->   foo varchar(25), 
    ->   bar int);

在conf/server.xml中<host></host>中添加
<Context path="/DBTest" docBase="DBTest"
        debug="5" reloadable="true" crossContext="true">

  <Logger className="org.apache.catalina.logger.FileLogger"
             prefix="localhost_DBTest_log." suffix=".txt"
             timestamp="true"/>

  <Resource name="jdbc/TestDB"
               auth="Container"
               type="javax.sql.DataSource"/>

  <ResourceParams name="jdbc/TestDB">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>

    <!-- Maximum number of dB connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to 0 for no limit.
         -->
    <parameter>
      <name>maxActive</name>
      <value>100</value>
    </parameter>

    <!-- Maximum number of idle dB connections to retain in pool.
         Set to 0 for no limit.
         -->
    <parameter>
      <name>maxIdle</name>
      <value>30</value>
    </parameter>

    <!-- Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         -->
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>

    <!-- MySQL dB username and password for dB connections  -->
    <parameter>
     <name>username</name>
     <value>javauser</value>
    </parameter>
    <parameter>
     <name>password</name>
     <value>javadude</value>
    </parameter>

    <!-- Class name for the old mm.mysql JDBC driver - uncomment this entry and comment next
         if you want to use this driver - we recommend using Connector/J though
    <parameter>
       <name>driverClassName</name>
       <value>org.gjt.mm.mysql.Driver</value>
    </parameter>
     -->
    
    <!-- Class name for the official MySQL Connector/J driver -->
    <parameter>
       <name>driverClassName</name>
       <value>com.mysql.jdbc.Driver</value>
    </parameter>
    
    <!-- The JDBC connection url for connecting to your MySQL dB.
         The autoReconnect=true argument to the url makes sure that the
         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
         connection.  mysqld by default closes idle connections after 8 hours.
         -->
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/javatest?autoReconnect=true</value>
    </parameter>


            <parameter>
              <name>removeAbandoned</name>
              <value>true</value>
            </parameter>

             <parameter>
              <name>removeAbandonedTimeout</name>
              <value>60</value>
            </parameter>
            <parameter>
              <name>logAbandoned</name>
              <value>true</value>
            </parameter>
  </ResourceParams>
</Context>

f.在web服務中調用.配置web.xml 如:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>
g.測試用test.jsp 
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    Foo ${row.foo}<br/>
    Bar ${row.bar}<br/>
</c:forEach>

  </body>
</html>

h.新建web應用
下載jakarta-taglibs-standard-1.1.0
copy jstl.jar and standard.jar to your web app's WEB-INF/lib 

DBTest/
    WEB-INF/
        web.xml
        lib/
            jstl.jar
            standard.jar
    test.jsp
拷貝到webapps/ 下
i.啟動mysql,tomcat 
訪問:
http://localhost:8080/DBTest/test.jsp
顯示:
    Results
    Foo hello
    Bar 12345

4.ssl的配置,以jdk1.4.2為例
a.進入%JAVA_HOME%\bin
運行命令:keytool -genkey -alias tomcat -keyalg RSA
以tomcat 安裝密碼為198277,ketool設置密碼為198277為例
輸入keystore密碼:  198277
您的名字與姓氏是什么?
  [Unknown]:  ycg
您的組織單位名稱是什么?
  [Unknown]:  nju
您的組織名稱是什么?
  [Unknown]:  nju
您所在的城市或區域名稱是什么?
  [Unknown]:  nanjing
您所在的州或省份名稱是什么?
  [Unknown]:  jiangsu
該單位的兩字母國家代碼是什么
  [Unknown]:  nd
CN=ycg, OU=nju, O=nju, L=nanjing, ST=jiangsu, C=nd 正確嗎?
  [否]:  y

輸入<tomcat>的主密碼
        (如果和 keystore 密碼相同,按回車):  198277
b.在你的D:\Documents and Settings\的當前用戶目錄下可以找到.keystore文件.將其拷貝到conf/文件夾下.
c.在server.xml 中找到

    <!--
    <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" />
    -->
    去掉注釋

添加配置字段:keystoreFile="/conf/.keystore" keystorePass="198277"
如: <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
   
    <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" keystoreFile="/conf/.keystore"
               keystorePass="198277"/>
d.測試為:
https://localhost:8443
e.在自己的程序中添加ssl認證方式為:
在web.xml 中<web-app></web-app>添加
<security-constraint>
<web-resource-collection>
<web-resource-name>Success</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
f.用上提為例就是
修改web.xml 為
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <description>MySQL Test App</description>

<security-constraint>
<web-resource-collection>
<web-resource-name>Success</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

  
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>
訪問:
https://localhost:8443/DBTest/test.jsp

g.如果與2配置的jdbcRealm結合起來進行表單認證
先在user_roles表中添加user_name:ycg role_name:web-user
在users表中添加user_name:ycg user_pass:198277

然后在web.xml中添加
<auth-constraint>
<role-name>web-user</role-name>
</auth-constraint>

<login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>My Member Area</realm-name>
</login-config>

修改后的web.xml如:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <description>MySQL Test App</description>

<security-constraint>
<web-resource-collection>
<web-resource-name>Success</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>web-user</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>My Member Area</realm-name>
</login-config>
  
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

測試:
http://localhost:8080/DBTest/test.jsp
將通過ssl連接,并進行表單認證.用戶密碼可在user_roles,和users中添加.

5.中文亂碼問題:
mysql 默認編碼 iso
tomcat request 傳輸編碼 iso 
如果要顯示中文
在*.jsp中添加
<head>
<%@ page 
language="java"
contentType="text/html; charset=GB18030"
pageEncoding="GB18030"
%>
</head>
如果是數據傳輸中的亂碼(如用servlet從mysql數據庫讀出的數據)
用以下兩個轉碼函數轉碼,如果不清楚由哪種編碼轉成哪種編碼,就多嘗試.
    //轉碼GBK轉ISO
    public String toISO(String input) {
        try {
                byte[] bytes = input.getBytes("GBK");
                return new String(bytes,"ISO8859-1");
        }catch(Exception ex) {
        }
        return input;

    }
    
    //轉碼IS0轉GBK
    public String toGBK(String input) {
        try {
            byte[] bytes = input.getBytes("ISO8859-1");
            return new String(bytes,"GBK");
        }catch(Exception ex) {
        }
        return input;
    }


以上配置都測試通過.主要參考tomcat5.0的幫助文檔.將過程寫出來與大家共享.如果發現其中錯誤,請指出.
歡迎給我來信ycg01@software.nju.edu.cn共同探討. 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区精品性| 午夜精品福利一区二区三区蜜桃| 亚洲欧洲综合另类在线| 美女视频网站黄色亚洲| 在线视频一区二区免费| 国产亚洲一本大道中文在线| 午夜精品一区二区三区免费视频| 成人中文字幕在线| 精品国产髙清在线看国产毛片| 夜夜夜精品看看| 成人综合婷婷国产精品久久蜜臀| 欧美电视剧免费全集观看| 亚洲第一精品在线| 色婷婷综合久久久| 国产精品毛片高清在线完整版| 精品夜夜嗨av一区二区三区| 欧美日本一道本| 一区二区三区国产精品| 99视频精品全部免费在线| 久久色视频免费观看| 久久机这里只有精品| 欧美剧情电影在线观看完整版免费励志电影| 国产精品毛片大码女人| 成人午夜激情视频| 国产欧美精品一区二区色综合| 国模套图日韩精品一区二区| 精品少妇一区二区三区在线视频| 亚洲va欧美va天堂v国产综合| 欧美艳星brazzers| 亚洲一区二区欧美激情| 欧美亚洲国产一区二区三区va| 亚洲精品欧美在线| 一本一道综合狠狠老| 亚洲视频在线一区观看| 一本到一区二区三区| 一区二区三区国产精华| 欧美图片一区二区三区| 日韩一区精品字幕| 91精品国产综合久久久久久漫画| 日本不卡视频一二三区| 精品久久久久久久久久久久久久久| 午夜国产精品一区| 日韩精品一区二区三区swag| 国产一区二区成人久久免费影院| 久久久久久电影| 不卡一区在线观看| 亚洲美女视频一区| 日韩三级视频在线看| 国产一区日韩二区欧美三区| 亚洲国产精品二十页| 一本色道**综合亚洲精品蜜桃冫| 亚洲综合精品久久| 91精品国产乱| 国产一区二区三区久久久| 国产精品私人影院| 日本韩国欧美在线| 男女男精品视频| 国产欧美一区视频| 日本韩国欧美国产| 精品一区二区三区免费| 自拍偷拍国产精品| 欧美电影在哪看比较好| 国产精品1区2区3区在线观看| 一区视频在线播放| 欧美一区二区三区视频在线观看| 久久精品免费观看| 亚洲视频你懂的| 欧美一区二区久久久| 成人av第一页| 蜜桃视频在线一区| 亚洲黄色小视频| 欧美成人高清电影在线| 色吧成人激情小说| 国产伦精品一区二区三区免费迷 | 国产亚洲午夜高清国产拍精品| 99久久久久久99| 麻豆精品一区二区综合av| 中文字幕在线观看一区| 欧美大片免费久久精品三p| 一本色道久久综合亚洲91| 激情六月婷婷久久| 香港成人在线视频| 国产精品少妇自拍| 欧美电视剧在线看免费| 在线观看视频一区| 国产成人a级片| 美女高潮久久久| 亚洲一区免费在线观看| 国产精品剧情在线亚洲| 欧美精品一区男女天堂| 欧美一区国产二区| 欧美在线观看一区二区| 不卡av免费在线观看| 国产精品 日产精品 欧美精品| 蜜桃视频一区二区三区在线观看| 一区二区在线观看视频在线观看| 欧美激情综合五月色丁香| 久久欧美一区二区| 欧美xxxx在线观看| 日韩欧美中文字幕制服| 欧美精品一二三| 欧洲一区二区三区免费视频| proumb性欧美在线观看| 成人精品在线视频观看| 国产成人精品三级| 99re这里只有精品6| 成人不卡免费av| 国产精品亚洲一区二区三区在线| 九色porny丨国产精品| 日本vs亚洲vs韩国一区三区二区| 午夜精品久久久久久久久久久 | 国产三区在线成人av| 337p日本欧洲亚洲大胆色噜噜| 欧美一区欧美二区| 日韩三级高清在线| 精品久久国产老人久久综合| 日韩欧美中文字幕精品| 精品成人一区二区三区四区| 日韩欧美你懂的| 久久免费国产精品| 国产日产欧产精品推荐色| 久久精品视频免费| 亚洲国产精品黑人久久久| 成人欧美一区二区三区| 亚洲自拍与偷拍| 亚洲电影第三页| 久草精品在线观看| 国产91露脸合集magnet | 欧美日韩成人在线| 欧美精品1区2区| 欧美精品一区男女天堂| 国产精品污网站| 亚洲国产另类av| 经典一区二区三区| av在线不卡免费看| 欧美日韩国产一区| 精品国产乱码久久久久久浪潮 | 成人激情视频网站| 色综合中文字幕国产| 色综合久久综合网欧美综合网| 欧美午夜宅男影院| 欧美一级日韩一级| 国产精品伦理一区二区| 亚洲午夜羞羞片| 国产一区二区三区四区五区入口| 99精品欧美一区| 91麻豆精品国产91久久久久久| 国产日韩欧美在线一区| 一区二区三区久久| 狠狠色丁香婷婷综合| 色综合中文字幕| 日韩精品在线网站| 亚洲精品一卡二卡| 韩国av一区二区三区四区| 97久久超碰国产精品| 日韩欧美第一区| 亚洲欧美日韩在线不卡| 久久99精品国产麻豆婷婷洗澡| 成人av动漫网站| 欧美人动与zoxxxx乱| 中文字幕不卡一区| 日韩黄色片在线观看| 99久久夜色精品国产网站| 欧美一卡二卡三卡四卡| 亚洲欧美日韩系列| 国产精品羞羞答答xxdd| 91精品麻豆日日躁夜夜躁| 国产精品理伦片| 精品一区二区久久久| 欧美高清激情brazzers| 国产精品久久久久久久浪潮网站| 男人的天堂亚洲一区| 欧美性做爰猛烈叫床潮| 视频一区二区三区在线| 99国产精品久久久久久久久久| 日韩一区二区在线观看视频| 一区二区国产视频| 99精品欧美一区| 国产色综合久久| 国产资源在线一区| 日韩一级在线观看| 亚洲午夜久久久久| 91麻豆国产在线观看| 中文天堂在线一区| 国产精品一区二区男女羞羞无遮挡| 在线不卡中文字幕播放| 亚洲最新视频在线观看| 91视频www| 国产精品午夜在线观看| 成人午夜又粗又硬又大| 国产亚洲人成网站| 国产老女人精品毛片久久| 久久蜜桃av一区二区天堂| 久久99精品国产.久久久久久| 欧美顶级少妇做爰| 午夜一区二区三区在线观看| 日本高清不卡视频| 亚洲第一成人在线| 欧美精品丝袜中出| 日本 国产 欧美色综合|