监听器

Node.js的知识点框架整理

别等时光非礼了梦想. 提交于 2020-02-18 19:44:33
背景: 因为appium是基于Node.js的,所以想看一下Node.js。但是发现很多资料的顺序看起来有点颠倒。然后就一面看资料一面整理了一下大概的知识点框架,希望对自己对别人有用。 本文不包含node.js的基本语法。node.js的基本语法和JavaScript基本一样,可以以后再单独整理一份基本语法的。 Node.js是一个基于chrome V8的JavaScript运行时的环境 Node.js是事件驱动,非阻塞式I/O模型 Node.js使用npm包管理器 使用Node.js不仅实现了一个应用,也实现了整个HTTP服务器,所以不需要单独搭建Apache或nginx Node.js安装 mac下安装方法 brew install node 查看node.js的版本 node -v 查看包管理工具npm版本 npm -v 进入node.js的交互式解释器 node 交互式解释器和python的类似。可以输入命令实时查看输入结果 npm的使用 npm随着node一起被安装 npm允许用户从NPM服务器下载并安装第三方包,也允许将自己编写的包上传到第三方服务器,类似python的pip npm安装命令 npm install 【包名】 安装的包放在工程目录的node_modeles目录下,例如mac上是在/usr/local/lib/node_modules文件夹下

Node.js学习笔记(4)——除了HTTP(服务器和客户端)部分

谁说胖子不能爱 提交于 2020-02-18 19:44:04
很多node入门的书里面都会在介绍node特性的时候说:单线程,异步式I/O,事件驱动。 Node不是一门语言,它是运行在服务器端的开发平台,官方指定语言为javascript。 阻塞和线程: 线程在执行中如果遇到磁盘读写或网络通信(统称为 I/O 操作),通常要耗费较长的时间,这时操作系统会剥夺这个线程的 CPU 控制权,使其暂停执行,全力执行这个I/O操作,同时将资源让给其他的工作线程,这种线程调度方式称为阻塞。当其他完成之后,系统再恢复它对cpu的控制权,继续执行,这就是同步I/O或者阻塞式I/O。 所以这个模式之下,一个线程只能处理一个任务,要么是计算操作,要么是I/O操作等等。每当有多的请求发过来的时候,必须多加线程用来响应。 同样的,在异步式或者非阻塞式,系统对所有的I/O操作部阻塞,而是将这个耗费时间和资源的操作报告给OS,就继续执行下一条语句。当OS执行完毕这个I/O操作之后,以事件的形式通知原来请求挂载I/O操作的线程,线程会在特定的时间处理这个事情。所以,必线程必须有事件循环,不断检查有没有未处理的事件。 所以这个模式下,cpu的核心利用率永远是100%,I/O以事件形式通知。 总结:多线程同步式I/O阻塞模式通过加开线程响应更多的请求,好处是在多核cpu的情况下利用更多的核。 单线程模式异步式I/O非阻塞式一个线程永远在执行计算操作

JMeter常用测试元件—学习笔记

余生颓废 提交于 2020-02-18 19:22:04
线程组 Ramp-Up Period:告诉JMeter达到最大线程数需要多长时间。假定共有10个线程,Ramp-Up Period为100秒,那么JMeter就会在100秒内启动所有线程,并让它们运转。每一个测试线程都会在上一个线程启动10秒之后才开始运行。假定共有30个线程,Ramp-Up Period为120秒,那么线程启动的间隔变为4秒。 Ramp-Up参数不能设定得太短,否则在测试的初始阶段会给予服务器过大的压力。Ramp-Up参数也不能设定得太长,否则就会发生第一个线程已经执行完毕,而最后一个线程还没有启动(除非测试人员期望这种特殊情况发生。) 如何找到一个合适的Ramp-Up参数值?建议初始值设定为Ramp-Up=总线程数,后续再根据实际情况适当增减。 在调试器控制面板中,可以设定测试运行的『启动时间』和『结束时间』。测试启动后会一直等待,直到用户设定的启动时间。测试运行期间,JMeter会在每一次循环结束后,检查是否已经达到结束时间。如果已经达到结束时间,JMeter就会终止测试运行,否则JMeter会继续下一个测试循环。 还可设定『持续时间』和『启动延迟』两项参数。需要注意的是,『启动延迟』会使『启动时间』无效,而『持续时间』会使『结束时间』无效。 控制器 JMeter有两种类型的控制器:采样器和逻辑控制器,二者结合起来驱动了测试进程

监听器与适配器 Listener&Adapter

廉价感情. 提交于 2020-02-17 06:07:07
为什么需要Adapter? 简短回答:简化 【事件源】 能 注册 (addxxxListener)监听对象 并 发送事件对象 WindowListener listener = .....; frame.addWindowListener(listener); 特定 事件 对应 特定的 监听器接口 (listener interface); public interface WindowListener{ void windowOpened(WindowEvent e); void windowClosing(WindowEvent e); } 为了处理特定事件,监听器要 实现对应的接口 ,在Java中意味着需要 实现接口的所有方法 (windowOpened, windowClosing..) 但监听器可能只对其中某个方法感兴趣,其他方法不需要做任何事,那么实现起来就会很乏味: class Terminator_A implements WindowListener{ public void windowClosing(WindowEvent e){ if(user agrees) System.exit(0); } public void windowOpened(WindowEvent e){} ... } 为了简化,每个含有多个方法的AWT监听接口都有一个 适配器

注解的本质是什么?

筅森魡賤 提交于 2020-02-15 19:07:43
注解的本质是标记,他所有的功能都依赖于对于这个注解解释性的代码. 比如requestMapping,它的功能是定位请求所对应的java方法,它这个功能的实现过程有两步: 1.每一个requestMapping都有对应的value,spring在启动时会根据这个value将这个方法的路径存到一个map里面去–这一步时“注册” 2.监听–每一次请求都会经过spirng的监听器,我记得在比较高级的接口有一个applicationListener,它下属的众多监听器会发挥作用,对请求解析,并执行不同的功能,就request所对应的监听器,就会从请求上拿到对应的value从map里找方法的路径,找到了,就执行对应的方法 来源: CSDN 作者: 竹鼠三元一只 链接: https://blog.csdn.net/weixin_43343786/article/details/104330997

servlet监听器

徘徊边缘 提交于 2020-02-15 06:55:36
监听器 ServletContextListener 监听servlet的初始化和结束 httpSessionListener 监听session的创建和结束 ,可以利用这个来统计在线登录的人数.. package com.zh; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class LoginListener implements HttpSessionListener{ private static int count; public static int getCount(){ return count; } public void sessionCreated(HttpSessionEvent arg0) { // TODO Auto-generated method stub count++; } public void sessionDestroyed(HttpSessionEvent arg0) { // TODO Auto-generated method stub count--; } } 注意要在web.xml文件中 设置 <listener> <listener-class>com.zh.Test1<

Servlet监听器

一笑奈何 提交于 2020-02-15 00:52:27
Servlet监听器 Listener   观察者模式。   本博客中关于观察者模式的博文:    http://www.cnblogs.com/mengdd/archive/2013/02/08/2909206.html   其参考资料中列出了更多的博文。   Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。   通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。 常用监听接口 ServletContextListener   监听ServletContext。   当创建ServletContext时激发contextInitialized(ServletContextEvent sce);   所有的ServletContextListeners会在所有filters和servlets初始化之前收到初始化通知。   当销毁ServletContext时激发contextDestroyed(ServletContextEvent sce)。   所有filters和servlets销毁之后,ServletContextListeners才得到context销毁通知。   也即,ServletContextListeners是早出晚归型的。 ServletContextAttributeListener  

Servlet监听器

谁都会走 提交于 2020-02-14 17:41:08
Servlet监听器 Listener   观察者模式。   本博客中关于观察者模式的博文:    http://www.cnblogs.com/mengdd/archive/2013/02/08/2909206.html   其参考资料中列出了更多的博文。   Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。   通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。 常用监听接口 ServletContextListener   监听ServletContext。   当创建ServletContext时激发contextInitialized(ServletContextEvent sce);   所有的ServletContextListeners会在所有filters和servlets初始化之前收到初始化通知。   当销毁ServletContext时激发contextDestroyed(ServletContextEvent sce)。   所有filters和servlets销毁之后,ServletContextListeners才得到context销毁通知。   也即,ServletContextListeners是早出晚归型的。 ServletContextAttributeListener  

javaweb--过滤器filter/监听器

我的未来我决定 提交于 2020-02-12 13:10:00
文章目录 一、过滤器filter 1、编写字符编码过滤器 2、实现权限拦截的过滤器 二、监听器 一、过滤器filter 1、编写字符编码过滤器 编写一个实现servlet接口的程序 public class ServletShow extends HttpServlet { @Override protected void doGet ( HttpServletRequest req , HttpServletResponse resp ) throws ServletException , IOException { resp . getWriter ( ) . print ( "你好,世界!" ) ; } @Override protected void doPost ( HttpServletRequest req , HttpServletResponse resp ) throws ServletException , IOException { doGet ( req , resp ) ; } } 可以发现在网页打印出来的为乱码 1、用过滤器进行编码设置,使得打印出来的为正常中文 public class FilterDemo implements Filter { @Override public void init ( FilterConfig

Springboot 2使用SpringApplication

非 Y 不嫁゛ 提交于 2020-02-11 05:21:12
SpringApplication 使用静态方法 SpringApplication.run(MySpringConfiguration.class, args); 使用构造器 SpringApplication app = new SpringApplication(MySpringConfiguration.class); app.setBannerMode(Banner.Mode.OFF); app.run(args); 使用 builder new SpringApplicationBuilder(Application.class) .bannerMode(Banner.Mode.OFF) .run(args); 1、失败分析器 初始化实现了 FailureAnalyzer 接口的失败分析器,可以在启动失败时,打印错误日志和解决操作方法。比如启动端口被占用时打印如下日志: 2019-08-07 10:22:32.534 ERROR 2616 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: The Tomcat