javaWeb数据库连接池,过滤器和监听器

2023-11-15

数据库连接池(JDBC)

1、什么是数据库连接池

是一个数据库的工具 能够分配,管理和释放数据库连接
它允许应用程序重复使用一个现有的数据库连接而不是再重新建立一个

常见数据库连接池

  • C3P0:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate [2] 一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

  • Proxool:是一个Java SQL Driver驱动程序,提供了对选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中,完全可配置,快速、成熟、健壮。可以透明地为现存的JDBC驱动程序增加连接池功能。

  • Jakarta DBCP:DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池。DBCP可以直接的在应用程序中使用。

  • DBPool:是一个高效、易配置的数据库连接池。它除了支持连接池应有的功能之外,还包括了一个对象池,使用户能够开发一个满足自己需求的数据库连接池。

  • Druid(德鲁伊特):

    DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池)。

    Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser。

    支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等。

    Druid针对Oracle和MySql做了特别优化,比如:

    • Oracle的PS Cache内存占用优化
    • MySql的ping检测优化

    Druid提供了MySql、Oracle、Postgresql、SQL-92的SQL的完整支持,这是一个手写的高性能SQL Parser,支持Visitor模式,使得分析SQL的抽象语法树很方便。

    简单SQL语句用时10微秒以内,复杂SQL用时30微秒。

    通过Druid提供的SQL Parser可以在JDBC层拦截SQL做相应处理,比如说分库分表、审计等。Druid防御SQL注入攻击的WallFilter,就是通过Druid的SQL Parser分析语义实现的

2、数据库连接池有什么用

因为使用JDBC的时候每一次使用都会加载驱动和创建连接对象 关闭连接
创建连接对象和关闭连接其实是非常耗内存的

而数据库连接池中的连接可以频繁使用 连接是提前创建好放在连接池的

我们可以根据需要连接的数量提前设置好一个时间段的连接对象 以适应客户端的需求

3、数据库连接池怎么用

  1. 先上jar包
    在这里插入图片描述
  2. 设置druid.properties
    *在这里插入图片描述*
    注意连接的名字是提前设置好的
    在这里插入图片描述
  3. 设置JDBCutil文件
    在这里插入图片描述
    在这里插入图片描述
    注意要测试是否成功

过滤器

1、什么是过滤器

对目标资源的请求和响应进行过滤和拦截

例如::登录验证,字符编码处理,敏感字符过滤等 也可以设置多层过滤器 在不同的地方设置过滤
共性特点:过滤的是每一次的请求和响应,意味着每一次的请求和响应一定要先走过滤器!

2、过滤器的作用

过滤信息处理敏感信息 ,编码处理,登录过滤等

3、过滤器的使用

javaWeb三大组件:servlet (应用程序) , filter (过滤器), listener(监听器)

  1. 实现Filter接口
  2. 重写方法
  3. 在doFilter里面配置访问拦截路劲

注解配置
在这里插入图片描述
web.xml配置
在这里插入图片描述

4、问题

  1. 小心web.xml的配置错误
  2. 过滤器的执行流程
    请求和响应后都会执行过滤器
  3. 生命周期
    和servlet生命周期一样
    init():初始化
    doFilter():放行方法
    destroy():销毁方法 当服务器正常关闭时,执行。
  4. 过滤器配置
    路劲配置
    具体资源路劲 : /index.jsp只有访问index.jsp资源时,过滤器才会被执行
@WebFilter( value = "/index.jsp")
	拦截目录: /aaa/* 访问aaa下面的所有资源时,过滤器都执行
	后缀名拦截:*.jsp / *.do 访问所有后缀名为.jsp  .do时,过滤器会被执行  、、整个路劲的名
@WebFilter( value = "*.jsp")
拦截所有资源: /* 访问所有资源时,过滤器都会被执行

过滤方式配置(资源被访问的方式) 了解

  • 注解:设置dispatcherTypes属性 通过这个特点才会访问过滤器

    • REQUEST:默认值 浏览器直接请求资源
    • FORWARD:转发访问资源
    • INCLUDE:包含访问资源
    • ERROR:错误跳转资源
    • ASYNC:异步访问资源
      在这里插入图片描述
      web.xml在filter-mapping使用
    <filter-mapping>
        <filter-name>FilterDemo1</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

过滤器链

  1. 注解配置
    按照过滤器类名的字符串来判断 小的先执行 (字母也有)//还有数字的自然序的顺序
    2.web.xml配置
    < filter-mapping>谁在上边谁先执行

@WebFilter注解
initParam:初始化参数,可以配置多个
urlPatters:这是拦截的路径,可以配置很多歌,是一个数组
DistpathchType:——不重点要求,异步都响应
request:浏览器过来的拦截
forward和include:转发,只不过调用的方法不一样

5、过滤器登录案例

1.登录过滤器

@WebFilter(urlPatterns = "/*", initParams = @WebInitParam(name = "white",value = "login.jsp;.js;/user/login;"))//创建一个白名单  //放行登录页面
public class LogFilter implements Filter {
    String logWhite;
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        logWhite=filterConfig.getInitParameter("white");//获取值
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        //放行
        String[] split = logWhite.split(";");//获取最后一个了
        String resss="拦截";
        HttpServletRequest request= (HttpServletRequest) servletRequest;
        HttpServletResponse response= (HttpServletResponse) servletResponse;

        for(String s:split){//遍历放行里面的内容
            String requestURI = request.getRequestURI();
            System.out.println(requestURI);
            if (requestURI.endsWith(s)){
                resss="放行";
            }
        }
        if (resss.equals("放行")){
            filterChain.doFilter(request,response);
        }else {
            HttpSession session = request.getSession();//登录成功就把信息放到session里面 
            Object user = session.getAttribute("user");

            if (user!=null){//如果session里面有数据证明成功了
                filterChain.doFilter(request,response);
            }else {
                response.sendRedirect("/login.jsp");//登录失败就 和访问其他页面都会再次跳转到登录界面
            }
        }
    }

    @Override
    public void destroy() {

    }

监听器

1、什么是监听器

监听web应用的 例如销毁,增加,修改,删除 都能被看到
是指专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生变化时,立即采取相应的行动。

监听器====》过滤器====》servlet

1.1、监听器的分类

按对象划分,可以分为
ServletContext对象监听器 application 全局作用域
HTTPSession对象监听器 session 一次会话
ServletRequest对象监听器 request 一次请求
按事件划分为
对象自身的创建和销毁的监听器
对象中属性的创建和消除的监听器
session中的对象的状态变化的监听器

2、监听器的作用

监听器对象可以在事情发生前发生后做一些必要的处理 就是可以有触发事件
一个web项目可以定义多个ServletContextListener,但一个web项目只有一个ServletContext对象。HttpSession也是这样的

ServletContextListener主要用途:可以做定时器,加载全局属性对象,创建全局的数据库连接,加载一些缓存信息。
HttpSessionListener主要用途:统计在线人数,记录访问日志。

3、监听器怎么用

  1. 创建一个类 这个类继承需要监听的监听类
  2. 监听类:
    Listener 监听对象的创建和销毁
    AttributeListener监听对象中的属性修改等
  3. web.xml的配置
<listener>
    <listener-class>com.aaa.listener.MyListener</listener-class>
</listener>

ServletContext监听

/*
ServletContextListener  监听对象的创建和销毁

ServletContextAttributeListener监听ServletContext对象中的属性修改等
* */
public class MyListener implements ServletContextListener,ServletContextAttributeListener {
    //监听ServletContext对象的销毁
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ServletContexet被销毁了");
    }
    // 监听Servletcontext对象的创建
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("创建了ServletContext");
    }
    /*
    * ServletContext对象的属性监听器*/
    @Override
    public void attributeAdded(ServletContextAttributeEvent scae) {
        System.out.println("ServletContext新增");
        /*输出两变
        * 因为servletcontext内置的有两个对象*/
    }
    /*ServletContext中的属性监听*/
    @Override
    public void attributeRemoved(ServletContextAttributeEvent scae) {
        System.out.println("ServletContext删除");
    }

    @Override
    public void attributeReplaced(ServletContextAttributeEvent scae) {
        System.out.println("ServletContext修改");
    }
}

Session监听

public class MySessionListener implements HttpSessionAttributeListener,HttpSessionListener {
    /*HttpSessionAttributeListener  属性监听 */
    @Override/*增加*/
    public void attributeAdded(HttpSessionBindingEvent se) {
        System.out.println("session对象增加");
    }

    @Override/*删除*/
    public void attributeRemoved(HttpSessionBindingEvent se) {
        System.out.println("session对象删除");
    }

    @Override/*修改*/
    public void attributeReplaced(HttpSessionBindingEvent se) {
        System.out.println("session对象修改");
    }

/*HttpSessionListener   对象监听*/
    @Override//对象的创建
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("session对象创建");
    }

    @Override//对象的销毁
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("session对象的销毁");
    }
}

监听器模型

事件
事件原
事件监听器

监听器实现在线人数按例

要求 每登录成功一个人 在线人数加一 所有用户在线人数一样
1实现获取登录的人数 登录利用session登录 session登录成功有值就在application域的一个值加一 用户退出和关闭浏览器时在触发吧application中的值减一
2.利用session监听器监听session的创建和销毁就OK啦

bug 如果用户之间关闭session的话就无法减少在线人数

@WebListener
public class LogMonitor implements HttpSessionListener, HttpSessionAttributeListener {
    @Override
    public void attributeAdded(HttpSessionBindingEvent se) {//session属性新增

        System.out.println("session属性新增");
        if(se.getName().equals("user")){//确认登录成功
        //需要application作用域
        ServletContext application = se.getSession().getServletContext();
        //在application里面创建一个值来记录在线人数
        Object count = application.getAttribute("count");
        //设置第一次的在线人数
        int b=1;

        if (count!=null){//如果不为空证明登录过
            b=Integer.parseInt(count.toString())+1;
        }
        application.setAttribute("count",b);//在吧增加后的在线人数放到application里面
    }
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {//销毁
        //需要application作用域
        ServletContext application = se.getSession().getServletContext();
        //在application里面创建一个值来记录在线人数
        Object count = application.getAttribute("count");
        //设置第一次的在线人数
        int b=1;

        if (count!=null){//如果不为空证明登录过
            b=Integer.parseInt(count.toString())+1;
        }
        application.setAttribute("count",b);
    }

}

总结

连接池 为了方便数据使用
过滤器 为了过滤交互的信息
监听器 监听信息内容

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javaWeb数据库连接池,过滤器和监听器 的相关文章

  • 【计算机开题报告】基于JAVA的酒店管理系统的设计与实现

    1 毕业设计 论文 综述 随着社会经济和科技的迅速发展 人们对衣食住行的要求也逐渐提高 酒店 宾馆在服务行业中扮演着越来越重要的角色 本课程设计的内容旨在以管理系统的方式给人们出行提供酒店预订服务 从而能够更方便快捷的帮助酒店工作人员办理客
  • 电商数据接口API深度解析

    随着电子商务的快速发展 电商平台之间的竞争也日益激烈 为了在市场中保持领先地位 电商平台需要不断地优化用户体验 提供个性化的服务和精准的推荐 而这一切都离不开数据 电商数据接口API作为一种高效 便捷的数据交互方式 被广泛应用于电商领域 本
  • 拓数派加入 OpenCloudOS 操作系统开源社区,作为成员单位参与社区共建

    近日 拓数派签署 CLA Contributor License Agreement 贡献者许可协议 正式加入 OpenCloudOS 操作系统开源社区 拓数派 英文名称 OpenPie 是国内基础数据计算领域的高科技创新企业 作为国内云上
  • MySQL中设置自增主键id从1开始

    可能遇到过这种问题 当你只想新增一条数据时 发现使用Insert语句后 发现id并不是从1开始的 握草 怎么回事 其实很简单 通过执行一下SQL 对应你的表就可以解决 ALTER TABLE user AUTO INCREMENT 1 具体
  • 【计算机开题报告】家具销售库存管理信息系统

    一 选题的目的 意义及相关研究动态和自己的见解 随着当今社会信息化的发展 电子自动化办公越来越为各人所重视 它能有效地收集 处理各种信息 极大地提高了办事效率 而计算机技术各种软件工作平台不断的发展 又为电子自动化办公的实现提供了良好的前景
  • 如何处理不稳定的自动化测试?

    abluecolor 在解决这个问题之前 请停止编写更多测试 因为这将花费你较高的测试维护成本 你需要尽快行动起来对不稳定的原因进行深入研究 找到不稳定的根因 并且尝试在流程 环境和代码方面做一些优化工作解决它 MasterKindew 如
  • 【计算机毕业设计】病房管理系统

    当下 如果还依然使用纸质文档来记录并且管理相关信息 可能会出现很多问题 比如原始文件的丢失 因为采用纸质文档 很容易受潮或者怕火 不容易备份 需要花费大量的人员和资金来管理用纸质文档存储的信息 最重要的是数据出现问题寻找起来很麻烦 并且修改
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • 【计算机毕业设计】校园体育赛事管理系统

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • APP端网络测试与弱网模拟

    当前APP网络环境比较复杂 网络制式有2G 3G 4G网络 还有越来越多的公共Wi Fi 不同的网络环境和网络制式的差异 都会对用户使用app造成一定影响 另外 当前app使用场景多变 如进地铁 上公交 进电梯等 使得弱网测试显得尤为重要
  • python超详细基础文件操作【建议收藏】

    文章目录 前言 发现宝藏 1 文件操作 1 1 文件打开与关闭 1 1 1 打开文件 1 1 2 关闭文件 1 2 访问模式及说明 2 文件读写 2 1 写数据 write 2 2 读数据 read 2 3 读数据 readlines 2
  • 基于java的学生宿舍管理系统设计与实现

    基于java的学生宿舍管理系统设计与实现 I 引言 A 研究背景和动机 基于Java的学生宿舍管理系统设计与实现的研究背景和动机 在数字化时代的推动下 学生宿舍管理系统已经成为了管理学生宿舍的重要工具 学生宿舍管理系统能够帮助管理者更好地管
  • 深入了解 Python MongoDB 操作:排序、删除、更新、结果限制全面解析

    Python MongoDB 排序 对结果进行排序 使用 sort 方法对结果进行升序或降序排序 sort 方法接受一个参数用于 字段名 一个参数用于 方向 升序是默认方向 示例 按名称按字母顺序对结果进行排序 import pymongo
  • 【计算机毕业设计】北工国际健身俱乐部

    本系统为会员而设计制作北工国际健身俱乐部 旨在实现北工国际健身俱乐部智能化 现代化管理 本北工国际健身俱乐部管理自动化系统的开发和研制的最终目的是将北工国际健身俱乐部的运作模式从手工记录数据转变为网络信息查询管理 从而为现代管理人员的使用提
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • 面试官问,如何在十亿级别用户中检查用户名是否存在?

    面试官问 如何在十亿级别用户中检查用户名是否存在 前言 不知道大家有没有留意过 在使用一些app注册的时候 提示你用户名已经被占用了 需要更换一个 这是如何实现的呢 你可能想这不是很简单吗 去数据库里查一下有没有不就行了吗 那么假如用户数量
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

    场景 Mysql中怎样设置指定ip远程访问连接 Mysql中怎样设置指定ip远程访问连接 navicat for mysql 设置只有某个ip可以远程链接 CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式 如果通过可视
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 每日变更的最佳实践

    在优维公司内部 我们采用发布单的方式进行每天的应用变更管理 这里给各位介绍优维的最佳实践 变更是需要多角色合作的 而且他是整体研发流程的一部分 在优维内部 我们坚持每日变更 打通开发环节到最终发布上线的全过程 在保证质量的前提下 尽可能提升

随机推荐

  • 华为OD机试真题-最差产品奖【2023.Q1】

    题目内容 题目描述 A公司准备对他下面的N个产品评选最差奖 评选的方式是首先对每个产品进行评分 然后根据评分区间计算相邻几个产品中最差的产品 评选的标准是依次找到从当前产品开始前M个产品中最差的产品 请给出最差产品的评分序列 输入描述 第一
  • 建信金科是外包吗_offer比较:北京数据所vs上海建信金科 - 找工作啦(Job)版 - 北大未名BBS...

    数院老博士一个 一直纠结自己毕业的论文 十月中旬才开始找工作 现在有两家愿意给offer 求各位别喷小弱薪资低 北京是兴唐通信也就是数据所 包括保密津贴之类的一个月到手一万二左右 绩效三个月 不过刚面过他们的优秀人才计划 可能会略有上浮 有
  • GB/T 28181联网系统通信协议结构和技术实现

    技术回顾 在本文开头 我们先一起回顾下GB T28181联网系统通信协议结构 联网系统在进行视音频传输及控制时应建立两个传输通道 会话通道和媒体流通道 会话通道用于在设备之间建立会话并传输系统控制命令 媒体流通道用于传输视音频数据 经过压缩
  • pytorch、torchvision历史版本的whl文件下载地址、版本对应关系与离线安装方法

    安装pytorch不需要预装cuda pytorch库的cuda版本本身就有显卡驱动 无论是win还是ubuntu都可使用下面的流程完成离线安装 这里说的离线安装是指先下载完整的pytorch的安装包 再安装pytorch 一 下载和安装p
  • 论文盲审环节,怎么审?

    来源 https www zhihu com question 379907471 编辑 深度学习与计算机视觉 声明 仅做学术分享 侵删 你是否临近毕业 是否好奇论文盲审是怎么审 看看经历过盲审的小伙伴都是怎么说的吧 作者 mosuchen
  • 【MySql】复合查询

    文章目录 回顾基本查询 多表查询 自连接 子查询 合并查询 OJ题目 前面我们讲解的mysql表的查询都是对一张表进行查询 在实际开发中这远远不够 回顾基本查询 回顾一下前面所学的基本查询 通过一些案例来练习回顾 查询工资高于500或岗位为
  • Discuz论坛添加一行即可保留安装插件和模板里面的xml文件 可以无限制安装了

    请首先打开 config config global php 文件 在文件结尾添加以下代码开启插件设计者模式 config plugindeveloper 1
  • Ubuntu 系统下如何远程访问 Windows 桌面 ?

    你一定听说过 Windows 应用程序远程桌面连接 该应用程序系统自带不用安装 并允许您远程访问另一台 PC 或服务器 它使用远程桌面协议建立远程桌面连接会话 一些 Linux 发行版可能会提供 RDP 客户端来连接到 Windows 系统
  • 最近发现一个爬虫开源项目weixin_crawler

    最近发现一个爬虫开源项目weixin crawler weixin crawler weixin crawler是一款使用Scrapy Flask Echarts Elasticsearch等实现的微信公众号文章爬虫 自带分析报告和全文检索
  • Qt Xlsx的基本使用

    前言 在很多时候 我们需要将数据导出 之前我是将数据表导出为CSV格式 CSV文件虽然可以用Excel打开 但相对于真正的Xlsx文件 还是有许多不足的 偶然之间 发现了QtXlsx这个第三方库 1 QtXlsx官网对QtXlsx的介绍 Q
  • 死锁的排查工具有哪些?

    死锁是多线程编程中常见的问题 可以使用多种工具和技术来排查和分析死锁问题 以下是一些常用的死锁排查工具和方法 JConsole 和 JVisualVM 这些是Java自带的监控工具 可以用于监视Java应用程序的运行状态 通过查看线程状态和
  • matlab 集成学习,集成学习

    假设你去随机问很多人一个很复杂的问题 然后把它们的答案合并起来 通常情况下你会发现这个合并的答案比一个专家的答案要好 这就叫做群体智慧 同样的 如果你合并了一组分类器的预测 像分类或者回归 你也会得到一个比单一分类器更好的预测结果 这一组分
  • 给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。

    include
  • 2轴直线插补程序分析

    1 数据采样插补法 在CNC系统中较广泛采用的另一种插补计算方法即所谓数据采样插补法 或称为时间分割法 它尤其适合于闭环和半闭环以直流或交流电机为执行机构的位置采样控制系统 这种方法是把加工一段直线或圆弧的整段时间细分为许多相等的时间间隔
  • 计算机视觉智能中医(六):基于曲线拟合舌体胖瘦的自动分析

    返回至系列文章导航博客 文章目录 1 简介 2 原理讲解 多项式曲线拟合 2 1 舌体曲线拟合参数与形状的关系 2 2 胖瘦指数定义 3 具体实现过程 4 代码实现 4 1 contour to py 4 2 outline cut py
  • 生成项目树形结构

    当你写博客或者项目描述的时候 想要展示项目的树形结构 怎么办呢 手写 程序员是不可能手写的 win R输入cmd进入dos 输入命令 tree 项目根目录 gt 生成的树形结构文件保存地址 比如 tree E workspace flink
  • ORB-SLAM2:基于可识别特征的自主导航与地图构建

    目录 ORB SLAM2 基于可识别特征的自主导航与地图构建 简介 地图 A 地图特征点或3D ORB B 关键帧 C 可视化图像 位置识别 A 图像识别数据库 B 高效优化的ORB匹配 C 视觉一致性 自主导航追踪 A ORB特征获取 B
  • Vue中使用element-ui使用表单提交时间

    在Vue中使用element ui组件的表单提交 想要上传笔记创建的时间 出现的问题 element ui的源码
  • SQLPub免费的MySQL数据库

    SQLPub免费的MySQL数据库 提供最新版本 甚至是开发者版本的 MySQL 服务器测试服务 您可以轻易地 注册免费账号 测试您的应用 例如 您可以测试在MySQL版本升级后您的应用是否依然能够正常运行 sqlpub com 也是让您学
  • javaWeb数据库连接池,过滤器和监听器

    数据库连接池 JDBC 1 什么是数据库连接池 是一个数据库的工具 能够分配 管理和释放数据库连接 它允许应用程序重复使用一个现有的数据库连接 而不是再重新建立一个 常见数据库连接池 C3P0 是一个开放源代码的JDBC连接池 它在lib目