zoukankan      html  css  js  c++  java
  • 2018/1/3 过滤器+拦截器+数据库连接池

    1、过滤器,设计执行流程:

    用户访问服务器
    过滤器: 对Servlet请求进行拦截
    先进入过滤器, 过滤器处理
    过滤器处理完后, 在放行, 此时,请求到达Servlet/JSP
    Servlet处理
    Servlet处理完后,再回到过滤器, 最后在由tomcat服务器相应用户;

    (过滤器就像回家的门!)
    2、过滤器相关Api
    |-- interface Filter 过滤器核心接口
    Void init(filterConfig); 初始化方法,在服务器启动时候执行
    Void doFilter(request,response,filterChain); 过滤器拦截的业务处理方法
    Void destroy(); 销毁过滤器实例时候调用

    |-- interface FilterConfig 获取初始化参数信息

    String getInitParameter(java.lang.String name)
    Enumeration getInitParameterNames()

    |-- interface FilterChain 过滤器链参数;一个个过滤器形成一个执行链;
    void doFilter(ServletRequest request, ServletResponse response) ; 执行下一个过滤器或放行/
    3、对指定的请求拦截
    /* 表示拦截所有的请求
    <filter-mapping>
    <filter-name>hello_filter2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    默认拦截的类型:(直接访问或者重定向)
    <dispatcher>REQUEST</dispatcher>
    拦截转发:
    <dispatcher>FORWARD</dispatcher>
    拦截包含的页面(RequestDispatcher.include(/page.jsp); 对page.jsp也执行拦截)
    <dispatcher>INCLUDE</dispatcher>
    拦截声明式异常信息:
    <dispatcher>ERROR</dispatcher>/
    4、自定义连接池, 管理连接
    * 代码实现:
    1. MyPool.java 连接池类,
    2. 指定全局参数: 初始化数目、最大连接数、当前连接、 连接池集合
    3. 构造函数:循环创建3个连接
    4. 写一个创建连接的方法
    5. 获取连接
    ------> 判断: 池中有连接, 直接拿
    ------> 池中没有连接,
    ------> 判断,是否达到最大连接数; 达到,抛出异常;没有达到最大连接数,
    创建新的连接
    6. 释放连接
    -------> 连接放回集合中(..)/
    5、

  • 相关阅读:
    【Azure】Azure 命令行接口 (CLI)
    【Git】敏感信息保护
    【LeetCode】31.下一个排列
    【LeetCode】26.删除排序数组中的重复项
    【LeetCode】16. 最接近的三数之和
    【LeetCode】15.三数之和
    工作中常用的 JVM 配置参数有哪些?
    Java面试突击100题
    Java奇淫异术
    Linux 大文件按大小切割,合并还原
  • 原文地址:https://www.cnblogs.com/loong996/p/8185664.html
Copyright © 2011-2022 走看看