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 文件
来源: http://www.bubuko.com/infodetail-2492732.html