zoukankan      html  css  js  c++  java
  • 数据库连接池,mvc,过滤器

    mvc

    M【模型层】
    实体类【javabean】
    主要用于封装业务逻辑
    V【视图层】
    JSP【展示数据】
    主要负责显示数据
    C【控制层】
    servlet【获取展示信息使用的】
    负责将数据传递到界面或者从界面获取数据

    数据库连接池

    JDBC访问数据库的缺点

    1.访问数据库前需要进行一个连接
    耗时
    2.每次操作结束后,需要进行资源的释放
    耗资源
    3. 频繁的链接导致系统的安全性和稳定性

    连接池

    连接池是由容器【服务器】提供的,用来管理池中的连接对象

    连接池自动分配链接对象,并对闲置的链接进行回收

    事先创建好很多个数据库连接  放到连接池中(内存中的一块区域) 用连接时,不再是自己去创建 而是从连接池中拿连接用完再还到池中。

    c3p0xml

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
      <default-config>
        <property name="driverClass">org.sqlite.JDBC</property>
        <property name="user">root</property>
        <property name="password">1234</property>
        <property name="jdbcUrl">jdbc:sqlit:E:javadata_testdata_test.sqlit</property>
      <!--   <property name="initialPoolSize">100</property>
        <property name="maxIdleTime">30</property>
        <property name="maxPoolSize">100</property>
        <property name="minPoolSize">10</property>
        <property name="maxStatements">200</property> -->
      </default-config>
    
      <!-- This app is massive! -->
      <named-config name="myC3p0"> 
       <property name="driverClass">org.sqlite.JDBC</property>
        <property name="user">root</property>
        <!--<property name="password">1234</property>-->
        <property name="jdbcUrl">jdbc:sqlite:E:javadata_testdata_test.sqlit</property>
        <property name="initialPoolSize">100</property>
        <property name="maxIdleTime">30</property>
        <property name="maxPoolSize">100</property>
        <property name="minPoolSize">10</property>
        <property name="maxStatements">200</property>
    
      </named-config>
    </c3p0-config>

    使用

        //连接sqlit3数据库
        public static Connection get_conn() throws ClassNotFoundException, SQLException {
            Connection conn = null;
            ComboPooledDataSource myC3p0 = new ComboPooledDataSource("myC3p0");
            conn = myC3p0.getConnection();
            System.out.println(myC3p0.getJdbcUrl());
            System.out.println(myC3p0.getMinPoolSize());
            System.out.println(myC3p0.getMaxPoolSize());
            System.out.println(myC3p0.getInitialPoolSize());
    
    //        conn = DriverManager.getConnection("jdbc:sqlite:E:\java\data_test\data_test.sqlit");
    
            return conn;

     过滤器

    注册过滤器

        <filter>
            <filter-name>filter_test</filter-name>
            <filter-class>com.zym.utils.filter_test</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>filter_test</filter-name>
            <url-pattern>/*</url-pattern>
            <!--“/*”表示过滤对所有url都有效-->
        </filter-mapping>

    过滤器的执行顺序

    使用的例子:

    可以在filter中,将编码设置成utf-8,进行设置,减少请求的设置

      <init-param>
      <param-name>charset</param-name>
      <param-value>utf-8</param-value>
      </init-param>
    public class FilterOne implements Filter {
    String chars = null;
        public void destroy() {
            System.out.println("AAAAAAAAAAAAAAA------------调用了销毁方法");
    
        }
    //重要
        public void doFilter(ServletRequest arg0, ServletResponse arg1,
                FilterChain arg2) throws IOException, ServletException {
            // TODO Auto-generated method stub
            System.out.println("AAAAAAAAAAAAAAA------------调用了过滤方法(开始)");
            
            arg0.setCharacterEncoding(chars);
            
            
            
            arg2.doFilter(arg0, arg1);
            System.out.println("AAAAAAAAAAAAAAA------------调用了过滤方法(结束)");
    
        }
    
        public void init(FilterConfig arg0) throws ServletException {
            System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAA---------调用了初始化方法");
    chars= arg0.getInitParameter("charset");//utf-8
        }
    
    }
  • 相关阅读:
    【LeetCode】N数和
    用PHP写一个双向队列
    PHP的几种遍历方法
    thinkphp中dump()方法
    【转】PHP对象在内存中的分配
    【转】PHP的执行原理/执行流程
    从头到尾彻底解析哈希表算法
    【转】TCP通信的三次握手和四次撒手的详细流程(顿悟)
    springmvc中拦截器的定义和配置
    springmvc中的异常处理方法
  • 原文地址:https://www.cnblogs.com/taozizainali/p/11077111.html
Copyright © 2011-2022 走看看