Tomcat配置和數據源配置
Tomcat 的配置
1. 圖形化控制臺的相關配置
當啟動tomcat之後,進入tomcat默認主頁,在偏右上角的地方有三個按鈕
,當我們點擊進入的時候要求我們輸入帳號密碼。相關配置文件在
webapps/manager/WEB-INF路徑下。使用無格式編輯器打開該路徑下的web.xml
,在該文件的末尾部分可以看到如下配置片段
<!-- Define a Security Constraint on this Application -->
<!-- NOTE: None of these roles are present in the default users file -->
<security-constraint>
<web-resource-collection>
<!-- 訪問/html/* 資源需要manager-gui角色 -->
<web-resource-name>HTML Manager interface (for humans)</web-resource-name>
<url-pattern>/html/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-gui</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<!-- 訪問 /text/* 資源需要manager-script角色 -->
<web-resource-name>Text Manager interface (for scripts)</web-resource-name>
<url-pattern>/text/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-script</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<!-- 訪問 /jmxproxy/* 資源需要 manager-jmx 角色 -->
<web-resource-name>JMX Proxy interface</web-resource-name>
<url-pattern>/jmxproxy/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-jmx</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<!-- 訪問 /status/* 資源可以使用一下任意一個角色 -->
<web-resource-name>Status interface</web-resource-name>
<url-pattern>/status/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-gui</role-name>
<role-name>manager-script</role-name>
<role-name>manager-jmx</role-name>
<role-name>manager-status</role-name>
</auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<login-config>
<!-- BASIC 表明使用彈出窗口方式登錄 -->
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Manager Application</realm-name>
</login-config>
tomcat 默認采用文件安全域,也就是以文件存放用戶名和密碼,tomcat的用戶由conf路徑下的 tomcat-users.xml
文件控制,打開該文件,發現除了註釋差不多就只剩下一對<tomcat-users>
標簽了,對於普通開發者來說,也就是只訪問/status/*
這些資源,配置一個manager-gui
角色就可以了
<tomcat-users>
<role rolename="manager-gui"/>
<user username="username" password="password" roles="manager-gui"/>
</tomcat-users>
這樣就增加了一個角色為manager-gui
、用戶名為username
、密碼為password
的用戶,重啟tomcat之後就可以點擊按鈕登錄了。
2. 配置Tomcat的數據源
從Tomcat5.5 開始就內置了DBCP的數據源實現,它提供了兩種配置數據源的方式:
1 全局數據源——可以讓所有的Web應用都訪問
2 局部數據源——只能在單個web應用中訪問
不管配置哪種數據源,都需要提供特定數據庫的JDBC驅動,將其復制到Tomcat的lib路徑下,然後在conf/Catalina/localhosr文件夾下新建任意名字的xml文件—-該文件就是部署Web應用的配置文件,例如,在該文件夾下增加一個 test.xml
<Context docBase="/home/huangyuan/javaweb/testTomcat" debug="0" privileged="true"></Context>
上面的配置文件中指定了Web應用的絕對路徑(這也是部署web應用的一種方式),重啟Tomcat之後,Tomcat會把/home/huangyuan/javaweb/testTomcat
文件夾部署成web應用,該應用的URL地址為 http://<server_address>:<port>/test
配置數據源時只需要在其中加入Resource
子元素,其內容如下:
<Context docBase="/home/huangyuan/javaweb/testTomcat" debug="0" privileged="true">
<!--
driverClassName --指定數據源在容器中的JNDI名
url --指定數據庫服務的URL
username --指定連接數據庫的用戶名
password --指定連接數據庫的密碼
maxActive --指定數據源最大活動連接數
maxIdle --指定數據池中最大空閑連接數
maxWait --指定數據池中最大等待獲取連接的客戶端
-->
<Resource name="jdbc/dstest" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javaee"
username="root"
password="xxx"
maxActive="5"
maxIdle="2"
maxWait="1000"
</Context>
下面是測試訪問數據源的jsp文件部分內容:
Context ctx = new InitialContext();
/*
通過JNDI查找數據源,該JNDI為 java:comp/env/jdbc/dstest,分成兩個部分
java:comp/env 是Tomcat固定的,Tomcat提供的JNDI綁定都必須加該前綴
jdbc/dstest 是定義數據源時用的數據名
*/
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/dstest");
Connection conn = ds.getConection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from test");
while(rs.next())
{
out.println(re.getString(1))
}
測試上述代碼需要本機安裝MySQL,並且在有一個包含test
表的、名字為test
的數據庫。若配置全局數據源,則需要修改Tomcat的server.xml文件
Tomcat配置和數據源配置