• Tomcat配置和数据源配置


    Tomcat 的配置

    1. 图形化控制台的相关配置

    当启动tomcat之后,进入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文件

  • 相关阅读:
    Course Schedule II
    Vim笔记
    python programming
    暴风电视刷机教程
    python asyncio
    sqlalchemy lock and atomic
    rust学习(二)
    rust-vmm 学习(二)
    e3s10 网络管理
    打造VIM成为IDE - nerdtree
  • 原文地址:https://www.cnblogs.com/beili110/p/8434175.html
Copyright © 2020-2023  润新知