handler

SpringMVC入门

放肆的年华 提交于 2020-02-24 16:52:04
一、SpringMVC原理解析   1、我们首先分析一下整个请求处理的流程:    ① 在B/S架构的系统中,用户首先从浏览器中发出Http请求(请求中会包含用户的请求内容信息或者表单信息),然后首先经过前端控制器(DispatcherServlet)进行处理,    ② 然后前端控制器需要接触处理器映射器知道自己使用哪一个处理器处理请求信息,    ③ 然后处理器映射器会返回给前端控制器一个处理器执行链,    ④ 前端控制器通过处理器适配器去执行处理器,然后让处理器适配器返回给自己模型和视图,    ⑤ 处理器适配器去调用相应的处理器    ⑥ 执行后的处理器返回给处理器适配器信息,具体就是返回处理结果(ModelAndView)    ⑦ 处理器适配器得到模型视图(ModelAndView)之后,将之返回给前端控制器    ⑧ 前端控制器自己本身不对ModelAndView进行解析,而是交给视图解析器进行视图解析    ⑨ 视图解析器完成视图解析后,将视图(View)返回给前端控制器    ⑩ 前端控制器得到view后,会交给视图进行渲染,具体就是jsp、freemaker等等,最后响应给用户      2、通过上面的解释和线面图例的理解,我们可以对SpringMVC这个框架的处理流程有一个大致的了解。上面只是介绍了一部分组件,我们下面可以简单的介绍各个组件的功能    ①

高性能Server---Reactor模型

烈酒焚心 提交于 2020-02-24 13:49:04
无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的! 你发邮件用的Outlook,Foxmail等 你看视频用的优酷,土豆等 你写文档用的Office365,googleDoc,Evernote等 你浏览网页用的IE,Chrome等(B/S是特殊的C/S) ...... C/S架构的软件带来的一个明显的好处就是:只要有网络,你可以在任何地方干同一件事。 例如:你在家里使用Office365编写了文档。到了公司,只要打开编辑地址就可以看到在家里编写的文档,进行展示或者继续编辑。甚至在手机上进行阅读与编辑。不再需要U盘拷来拷去了。 C/S架构可以抽象为如下模型: C就是Client(客户端),上面的B是Browser(浏览器) S就是Server(服务器): 服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务 C/S架构之所以能够流行的一个主要原因就是网速的提高以及费用的降低,特别是无线网络速度的提高。试想在2G时代,大家最多就是看看文字网页,小说什么的。看图片,那简直就是奢侈!更别说看视频了! 网速的提高,使得越来越多的人使用网络,例如:优酷,微信都是上亿用户量,更别说天猫双11的瞬间访问量了!这就对服务器有很高的要求!能够快速处理海量的用户请求!那服务器如何能快速的处理用户的请求呢? 高性能服务器

python的import signal

拜拜、爱过 提交于 2020-02-24 11:04:54
参考文章: https://blog.csdn.net/weixin_42350212/article/details/80588973 简单说: 监听信号,脚本或用户触发,接收信号,执行信号处理函数 如下: 当 signal.signal(signal.SIGTERM, handler) 监听过程中, 捕获到信号 signal.SIGTERM 时, 就会去执行 handler 函数 而 handler 函数中一般都有全局变量,进程或线程通过此全局变量就可以知道该如何执行 signal.SIGTERM 信号是由用户或者脚本执行的 ctrl+c 或者 kill 命令来触发的。 来源: https://www.cnblogs.com/zhanghaibin16/p/12355900.html

python进程池剖析(一)

不羁岁月 提交于 2020-02-23 13:44:09
  python中两个常用来处理进程的模块分别是subprocess和multiprocessing,其中subprocess通常用于执行外部程序,比如一些第三方应用程序,而不是Python程序。如果需要实现调用外部程序的功能,python的 psutil模块 是更好的选择,它不仅支持subprocess提供的功能,而且还能对当前主机或者启动的外部程序进行监控,比如获取网络、cpu、内存等信息使用情况,在做一些自动化运维工作时支持的更加全面。multiprocessing是python的多进程模块,主要通过启动python进程,调用target回调函数来处理任务,与之对应的是python的多线程模块threading,它们拥有类似的接口,通过定义multiprocessing.Process、threading.Thread,指定target方法,调用start()运行进程或者线程。   在python中由于 全局解释锁(GIL) 的存在,使用多线程,并不能大大提高程序的运行效率 【1】 。因此,用python处理并发问题时,尽量使用多进程而非多线程。并发编程中,最简单的模式是,主进程等待任务,当有新任务到来时,启动一个新的进程来处理当前任务。这种每个任务一个进程的处理方式,每处理一个任务都会伴随着一个进程的创建、运行、销毁,如果进程的运行时间越短,创建和销毁的时间所占的比重就越大

metasploit与Cobaltstrike互相派生shell

我们两清 提交于 2020-02-23 11:22:08
https://www.cnblogs.com/test404/p/10599981.html msf 派生 shell 给 Cobalt strike(前提有一个meterpreter) msf exploit(handler) > use exploit/windows/local/payload_inject   msf exploit(payload_inject) > set PAYLOAD windows/meterpreter/reverse_http   msf exploit(payload_inject) > set DisablePayloadHandler true   msf exploit(payload_inject) > set LHOST 192.168.229.143   msf exploit(payload_inject) > set LPORT 1212   msf exploit(payload_inject) > set SESSION 1   msf exploit(payload_inject) > exploit Cobalt strike 派生 shell 给 MSF(前提有个beaconshell) msf > use exploit/multi/handler msf exploit(handler) > set

Python日志模块的配置和使用

徘徊边缘 提交于 2020-02-22 19:41:08
日志 一、日志的级别 CRITICAL : 50 ERROR : 40 WARNING : 30 INFO : 20 DEBUG : 10 NOTSET : 0 (无日志记录) 级别 常量 引用方式 critical 50 logging.CRITICAL error 40 logging.ERROR warning 30 logging.WARNING info 20 logging.INFO debug 10 logging.DEBUG noset 0 logging.NOSET 二、日志的流程 logger中的传递 Logger 中的日志先经过 等级 筛选,将高于设定等级的日志信息创建LogRecord对象。 在__过滤器__中进行处理。 传递到 处理器 。 是否发送至父级日志进行处理 在handler中的传递 先经过 等级 筛选 处理器中的过滤器经行过滤 发送给响应的处理句柄 三、格式化消息 属性名称 格式 描述 args 不需要格式化。 The tuple of arguments merged into msg to produce message , or a dict whose values are used for the merge (when there is only one argument, and it is a dictionary).

ASP.NET跨页面传值——Server.Transfer

坚强是说给别人听的谎言 提交于 2020-02-22 04:41:54
ASP.NET跨页面传值 这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。   Server.Transfer是从当前的ASPX页面转到新的ASPX页面,服务器端执行新页并输出,在新页面中通过Context.Handler来获得前一个页面传递的各种数据类型的值、表单数据、QueryString.由于重定向完全在服务器端完成,所以客户 端浏览器中的URL地址是不会改变的。调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。 比较Server.Transfer和Response.Redirect的区别   1. Server.Transfer在服务器端完成,所以客户端浏览器中的URL地址是不会改变的;Response.Redirect是客户端完成,向服务器端提出新的页面处理请求,所以客户端浏览器中的URL地址是会改变的。   2. Server.Transfer在服务器端完成,不需要客户端提出请求,减少了客户端对服务器端提出请求。   3. Server.Transfer只能够转跳到本地虚拟目录指定的页面,也就是工程项目中的页面,而Response

事件注册 addEventListener attachEvent removeEventListener detachEvent

北战南征 提交于 2020-02-21 14:33:35
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>事件注册</title> </head> <body> <button id="btn" value="按钮">按钮</button> <script type=""> window.onload = function(){ var btn = document.getElementById("btn"); var handler = function(){ alert("thanks!"); } //addEventListener(事件类型不要加“on”,事件发生时调用的函数,布尔值一般为false若为true函数将注册为捕获时间处理程序) if (btn.addEventListener) {//ie8及之前版本外的所有浏览器支持的标准事件模型 btn.addEventListener("click", handler, false); } else if(btn.attachEvent){//兼容ie9以下版本 btn.attachEvent("onclick", handler);//attachEvent(事件类型要加“on”,事件发生时调用的函数) }else{ btn.onclick = handler;//普通注册事件 } //封装自己的

Http Handler 介绍

社会主义新天地 提交于 2020-02-21 05:32:25
引言 在 Part.1 Http请求处理流程 一文中,我们了解了Http请求的处理过程以及其它一些运作原理。我们知道Http管道中有两个可用接口,一个是IHttpHandler,一个是 IHttpModule,但在Part.1中,我并没有详细讲述如何对它们进行编程,只是轻描淡写地一笔带过。所谓学以致用,前面已经介绍了不少概念和原 理。在本文中,我们通过几个范例来了解 IHttpHandler,看看掌握这些原理的实际用途。 IHttpHandler 概述 可能和我一样,很多Asp.Net开发人员都有过Asp的背景,以至于我们在开发程序的时候,通常都是在“页面级”上思考,也就是说我们现在正在做 的这个页面应该有什么样的功能,是进行一个问卷调查还是一个数据库查询等等。而很少在“请求级”思考,考虑有没有办法来通过编码的方式来操控一个Http 请求。 实际上,Framework提供了一系列的接口和类,允许你对于Http请求进行编程,而实现这一操作的一个主要的接口,就是 IHttpHandler(另一个是IHttpModule)。 应该还记得第一节中我们提到过 ISAPI,它根据文件名后缀把不同的请求转交给不同的处理程序。但是仔细看看就会发现:几乎一大半的文件都交给 aspnet_isapi.dll 去处理了。很明显,aspnet_isapi.dll 不可能对每种文件采用同一种方式处理,那么

android常见内存泄漏

无人久伴 提交于 2020-02-20 09:09:29
1、静态变量 类中定义了静态Activity变量,把当前的Activity赋值给静态变量,如果Activity生命周期结束的时候静态变量没有清空,就会导致内存泄漏。static变量是贯穿整个应用的生命周期,所以被泄漏的Activity就会一直存在于应用的进程中,不会被回收。 private static Activity sActivity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); sActivity = this; findViewById(R.id.btn_back).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }); } } 2、 非静态内部类 创建 静态实例 这里的非静态内部类是Config,创建的静态实例是sConfig 造成内存泄漏的原因是 内部类会隐式持有外部类的引用 ,这里的外部类是NonStaticActivity,然而内部类sConfig又是static静态变量