zoukankan      html  css  js  c++  java
  • Tomcat 使用说明

    Tomcat下有7个目录,分别是bin,conf,lib,logs,temp,webapps,work 目录

    Tomcat根目录在tomcat中叫<CATALINA_HOME>

    1.<CATALINA_HOME>/bin:        
      存放各种平台下启动和关闭Tomcat的脚本文件。
    2.<CATALINA_HOME>/lib:
      在lib目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR。
    3.<CATALINA_HOME>/work:
      Tomcat把各种由jsp生成的servlet文件放在这个目录下。
    4.<CATALINA_HOME>/temp:
      临时活页夹,Tomcat运行时候存放临时文件用的。
    5.<CATALINA_HOME>/logs:
      存放Tomcat的日志文件。
    6.<CATALINA_HOME>/conf:
      Tomcat的各种配置文件,最重要的是server.xml。
    7.<CATALINA_HOME>/webapps:
      Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录。



    1.端口修改

      在conf下的server.xml中修改<Connector port="8080" ......

    2.登录控制台

      在admin和manager下的web.xml中会发现role-name 分别是admin和manager,因此需要在conf的tomcat-user.xml中配置这2个角色和用户。

    3部署

      有4种方式分别如下,使用控制台部署、修改server.xml文件部署web应用、利用tomcat 自动部署(直接复制到webapp文件夹下,tomcat就会自动加载该web应用)、增加用户的部署文件(在Catalina/localhost下新 建自己的xml文件,里面加上<Context......></Context>).

    4.tomcat数据源的配置

      数据库连接池的解决方案是:当应用程序启动时,系统主动的建立足够的数据连接,并将这些链接组成一个连接池。每次应用程序请求连接数据库连接时,无 须重新打开连接,而是从池中取出已有的链接使用,使用完后,不再关闭数据库连接,而是直接将连接归还给连接池。通过使用连接池将大大提高程序运行效率对于 共享资源的情况,有一个通用的设计模式:资源池(Resource Pool),用于解决资源频繁的请求,释放所造成的性能的下降。JDBC2.0规范引入了连接池技术。

      数据库连接池是Connection对象的工厂。

      数据库连接池的常用的参数如下:    

     > 数据库的初始连接数     > 连接池的最大连接数     > 连接池的最小连接数     > 连接池每次增加的容量

      JDBC的数据库连接池使用javax.sql.DataSource来表示,DataSource只是一个接口,该接口通常由商用服务器(如WebLogic、WebSphere)等提供实现,也有一些开源组织提供实现(DBCP和C3P0等) 

    DBCP数据源 

    需要commons-dbcp.jar(连接池的实现依赖库)、commons-pool.jar(连接池的实现)、commons-collections.jar

    DBCP是Apache下的开源连接池实现,如果需要使用该连接池,应在系统中增加两个jar文件

    > commons-dpcp.jar :连接池的实现
    > commons-pool.jar :连接池的实现依赖库
    下载地址:登录 http://commons.apache.org/站点即可下载到commons-pool.zip和commons-dbcp.zip

    Tomcat的连接池正事采用该连接池来实现的。数据库连接池既可以与应用服务器整合使用,也可以由应用程序独立使用。

    下面为DBCP获得数据库连接的方式

    //创建数据源对象
    
    BasicDataSource ds = new BasicDataSource();
    
    //设置连接池所需的驱动
    
    ds.setDriverClassName("com.mysql.jdbc.Driver");
    
    //设置连接池数据库德url
    
    ds.setUrl("jdbc:mysql://localhost:3306/testDB");
    
    //用户名
    
    ds.setUsername("root");
    
    //密码
    
    ds.setPassword("pass");
    
    //初始连接数
    
    ds.setInitialiSize(5);
    
    //最多可以有多少个连接数
    
    ds.setMaxActive(20);
    
    //最少有多少个空闲的链接
    
    ds.setMinIdle(2);
    
    //通过数据源获取连接
    
    Connection conn = ds.getConnection();

    当访问数据库结束后,程序还可以像以前一样关闭数据库连接,但并不是把物理数据库关闭只是 把数据连接释放,归还给连接池,让其他客户可以使用该链接  

    //关闭数据库德连接
    
    conn.close();

       

    C3P0数据源 

      效果比上面的要好,Hibernate就推荐使用它,而且它还可以自动的清理不再使用的Connection 和Statement、ResultSet

      如要使用该连接池,要在系统中增加如下jar文件

     > c3p0-0.9.1.2.jar

      C3P0连接池的实现 下载地址:登录http://sourceforge.net/projects/c3p0/站点下载最新版本,下载后得到一个 c3p0-0.9.1.2.bin.zip文件(版本号可能有区别)。

    //创建连接池实例
    
    ComboPooledDataSource ds = new ComboPooledDataSource();
    
    //设置连接池连接数据库所需的驱动
    
    ds.setDriverClass("com.mysql.jdbc.Driver");
    
    //设置连接数据库的所需驱动
    
    ds.setJdbcUrl("jdbc:mysql://localhost:3006/javaee");
    
    //设置连接数据的用户名 ds.setUser("root");
    
    //密码 ds.setPassword("123456");
    
    //最大连接数 ds.setMaxPoolSize(40);
    
    //最下连接数 ds.setMinPoolSize(2);
    
    //初始连接数 ds.setInitialPoolSize(10);
    
    //设置连接池的缓存Statement的最大数
    
    ds.setMaxStatements(180);
    
    //获得连接
    
    Connection conn = ds.getConnection();

    在tomcat中的配置Resource

    <Context path="/dbpool" docBase="dbpool" debug="5" reloadable="true" crossContext="true">     
      <Resource driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:bea:sqlserver://localhost:1433;DatabaseName=A6_YLGL" username="sa" password="111111" name="jdbc/a6" type="javax.sql.DataSource" auth="Container" maxActive="20" maxIdle="10" maxWait="5000"/>
    </Context>
    path: 自己应用的路径(一般为相对路径),在webapps目录下;
    
    docBase: 应用的名称和上面相同;
    
    driverClassName: 应用所要的驱动名;
    
    url: 连接数据库的地址;
    
    username: 登陆数据库要使用的用户名;
    
    password: 登陆数据库要用的密码;
    
    name: 引用上下文(context)的JNDI名,自己随便设;
    
    type: 引用资源的类型;
    
    maxActive: 每次连接数据库的最大数;
    
    maxIdle: 每次连接数据库的等待数;
    
    maxWait: 每次阻塞的最大延迟时间(毫秒);

       其中可以在web.xml加入如下代码段引用上面的资源 

    <resource-ref>    
        <description>DBConnection</description>    
        <res-ref-name>jdbc/a6</res-ref-name>    
        <res-type>javax.sql.DataSource</res-type>    
        <res-auth>Container</res-auth> 
    </resource-ref>

     注意:

    <resource-ref>--资源引用,一般声明管理资源,如数据库驱动程序、JavaMail Session、自定义类工厂等。 
    <resource-env-ref>--资源环境引用

    在代码中使用数据源

    Connection conn=null; 
    Context initCtx=new InitialContext();
    Context ctx=(Context)initCtx.lookup("java:comp/env");
    javax.sql.DataSource ds=(javax.sql.DataSource)ctx.lookup("jdbc/a6");
    conn=ds.getConnection();
  • 相关阅读:
    并发编程之六:java并发工具包(java.util.concurrent)汇总介绍
    Interpreter(解释器)模式
    CSS样式
    一个相当好的自定义标签分页
    logback高级特性一
    Jenkins
    ifconfig命令
    持续集成工具hudson
    数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B树、B+树、B*树)
    Java中"Test(Object...args){}"方法声明的理解——J2SE5的“Vararg
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/4451925.html
Copyright © 2011-2022 走看看