handler

SpringMVC运行原理总结

荒凉一梦 提交于 2020-03-02 06:30:40
1、 用户发送请求至前端控制器DispatcherServlet捕获 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器 a、 进入DispatcherServlet类 Service方法(位于DispatcherServlet类继承的——FrameworkServlet类中)捕获该请求: @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpMethod httpMethod = HttpMethod.resolve(request.getMethod()); if (HttpMethod.PATCH == httpMethod || httpMethod == null) { processRequest(request, response); } else { super.service(request, response); } } b、 获取到对应方法之后会调用对应(此处为doGet)方法: @Override protected final void doGet(HttpServletRequest request,

python3操作socketserver

怎甘沉沦 提交于 2020-03-02 02:57:09
socketserver 是标准库中的一个高级模块,用于网络客户端与服务器的实现.模块中,已经实现了一些可供使用的类. 在 python3 中,导入 socketserver 模块使用的命令: import socketserver socketserver 模块包括许多可以简化 TCP,UDP,UNIX 域套接字服务器实现的类. 1.处理程序 使用 socketserver 模块 ,必须先定义一个继承自 BaseRequestHandle 的处理程序类. BaseRequestHandle 类的实例化可以实现以下方法: 1.sock.handle()调用该方法执行实际的请求操作.调用函数可以不带任何参数,但是几个实例变量包含有用的值.sock.request包含请求,sock.client_address包含客户端的地址,sock.server包含调用处理程序的实例.对于TCP之类的数据流服务,sock.request属性是套接字对象. 对于数据报服务,还是包含收到数据的字节字符串. 2.sock.setup()该方法在handle()之前调用.默认情况下,不执行任何操作.如果希望服务器实现更多连接设置(如建立SSL连接),则无需调用该方法. 3.sock.finish()调用本方法可以在执行完handle()之后执行清除操作.默认情况下,不执行任何操作.如果setup(

ASP.NET页面传值之Server.Transfer

两盒软妹~` 提交于 2020-03-02 01:38:49
http://blog.csdn.net/bdstjk 说起来有点惭愧,做了这么久的.NET,今天才真正搞明白 Server.Transfer 先来看看代码: B.aspx public string TextBox1Text { get { return TextBox1.Text; } } protected void Button1_Click(object sender, EventArgs e) { Server.Transfer("A.aspx"); } A.ASPX protected void Page_Load(object sender, EventArgs e) { B b = Context.Handler as B;//获取到B页面的引用 if (b != null) { Response.Write("人家是A.aspx哦!<br/>"); Response.Write("你在B页面输入的是:"+b.TextBox1Text); } else { Response.Write("你跑过来干嘛!<br/>"); } } 这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。 Server

OC 文件管理 NSFileManager NSFileHandle 归档和解档

我的梦境 提交于 2020-03-01 16:34:19
// 输出文件路径 跟目录 NSString *stringPath = NSHomeDirectory (); NSLog ( @"%@" ,stringPath); // 取出文件路径的组成部分 NSLog ( @"%@" ,[stringPath pathComponents ]); // 取出文件路径的最后一个组成部分 NSLog ( @"%@" ,[stringPath lastPathComponent ]); // 给文件路径追加一部分路径 NSLog ( @"%@" ,[stringPath stringByAppendingPathComponent : @"te.text" ]); //----------------------- 文件管理 // 创建一个文件管理 fileManager NSFileManager *fileManager = [ NSFileManager defaultManager ]; // 获取当前路径 NSLog ( @" 当前路径为 :%@" ,[fileManager currentDirectoryPath ]); // 创建文件内容 NSString 类型 NSString *fileString = @"listFlie" ; // 将字符串类型转换为 NSData 类型 编码格式为 NSUTF8 NSData

【SSM】SSM之SpringMVC框架:SpringMVC的工作原理

情到浓时终转凉″ 提交于 2020-03-01 16:34:09
客户端发送的请求被DispatcherServlet捕获后其流程如下: 其大致流程如下: 1、用户发送请求至前端控制器DispatcherServlet。 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器如果没有找到具体的处理器: 如果配置了<mvc:default-servlethandler/>,就调用默认的Servlet处理找到匹配的静态资源,如果没有找到就返回404页面; 如果没配置<mvc:default-servlethandler/>,直接返回404页面。 3、处理器映射器如果找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、执行处理器拦截器的preHandle()方法(如果有的话)。 5、DispatcherServlet获得HandlerAdapter处理器适配器。 5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。 6、Controller执行完成返回ModelAndView前执行处理器拦截器的postHandle()方法(如果有的话)。 7、Controller执行完成返回ModelAndView。 8

asynctask部分--耗时操作的封装

喜你入骨 提交于 2020-03-01 10:52:38
1、简介 asynctask部分,主要使用了模版方法,对asynctask类的封装,主要是简化了耗时操作的写法,原本的耗时操作需要在线程中执行,然后如果在线程中需要更新UI的话,得用Handler提交给UI线程执行。下面是未使用的代码写法: private Handler handler = new Handler(); ...... new Thread() { @Override public void run() { String resultStr = null; try { resultStr = doHttpOperation();//Http耗时操作获取资源结果 } catch (Exception e) { } //耗时操作完成后更新UI,给TextView设置结果 handler.post(new Runnable(){ @Override public void run(){ textView.setText(resultStr);//更新UI,需要在UI线程中操作 } }; );} }.start(); 2、 asynctask部分的使用详解 (1)首先,定义一个类,继承AbstractTask。如下面的代码: public class GetUserTask extends AbstractTask<String> { public GetUserTask

wpa_supplicant与kernel的接口

我怕爱的太早我们不能终老 提交于 2020-03-01 10:22:08
1. 接口定义实现wpa_drivers wpa_drivers的定义如下: [cpp] view plain copy struct wpa_driver_ops *wpa_drivers[] = { #ifdef CONFIG_DRIVER_WEXT &wpa_driver_wext_ops, // 我的系统使用的这个老的接口 #endif #ifdef CONFIG_DRIVER_NL80211 // 现在流行的NL80211接口 &wpa_driver_nl80211_ops, #endif #ifdef CONFIG_DRIVER_HOSTAP &wpa_driver_hostap_ops, #endif #ifdef CONFIG_DRIVER_MADWIFI &wpa_driver_madwifi_ops, #endif #ifdef CONFIG_DRIVER_BROADCOM &wpa_driver_broadcom_ops, #endif #ifdef CONFIG_DRIVER_BSD &wpa_driver_bsd_ops, #endif #ifdef CONFIG_DRIVER_NDIS &wpa_driver_ndis_ops, #endif #ifdef CONFIG_DRIVER_WIRED &wpa_driver_wired_ops, #endif

NO.2 Android 线程间交互

社会主义新天地 提交于 2020-03-01 10:05:14
NO.2 Android 线程间交互 零蚀 线程的终止 一个线程终止另一个线程 Thread thread = new Thread ( new Runnable ( ) { @Override public void run ( ) { } } ) ; thread . start ( ) ; thread . stop ( ) ; 线程里 有一个非常有效的终止线程的方法,可以使用stop来有效的结束一个线程,但是这个api在4.1的时候就已经被弃用了,因为结果是不可预期的,当结束线程时候,不能了解到线程所做的工作是什么,所以对这种不可控的因素,是不可靠的。 Thread thread = new Thread ( ) { @Override public void run ( ) { //重置interrupt的状态 if ( Thread . interrupted ( ) ) { // 收尾 return ; } // 下面的方法不会改变interrupt标记的状态 //if(isInterrupted()){ // return; //} } } ; thread . start ( ) ; thread . interrupt ( ) ; interrupt方法并非像stop即死,它是给这个线程做个中断标记。通知线程将被中断。如果线程在合适的位置进行终止,如上述代码。

wpa_supplicant与kernel交互

﹥>﹥吖頭↗ 提交于 2020-03-01 09:50:06
wpa_supplicant与kernel交互的操作,一般需要先明确驱动接口,以及用户态和kernel态的接口函数,以此来进行调用操作。这里分为4个步骤讨论。 1. 首先需要明确指定的驱动接口。 因为有较多的驱动接口可以使用,如 wext 、 nl80211 等。指定了之后,才能调用相应接口的方法。 2. 保存驱动接口 3. 接口函数的实现 ( 分为用户态和 kernel 态 ) 。系统已经定义了,我们只需找到定义的地方,了解有哪些函数。 4. 交互 (a) 用户态向 kernel 态发送请求 ( 通过 ioctl) (b)kernel 态向用户态发送事件通知 ( 通过 netlink) 1. 首先需要明确指定的驱动接口 (1) 查看 init.XX.rc 中指定的 driver 的命令参数; (2) 根据命令参数,在 wpa_driver_ops *wpa_drivers[] 中查找对应接口。 wpa_drivers[] 的定义是在 [-->external/wpa_supplicant_8/src/drivers/drivers.c] 2. 保存驱动接口 在 wpa_supplicant 初始化过程中,在 wpa_supplicant_init_iface 方法中会调用 wpa_supplicant_set_driver 方法。该方法中又会调用 select_driver 方法

RESTful协议【软件架构】

折月煮酒 提交于 2020-03-01 08:39:49
概述 REST(英文: Representational State Transfer ,简称 REST )描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。 在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。 值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。 原则条件 REST 指的是一组架构 约束条件 和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合 云计算 之类的环境。客户端可以缓存数据以改进性能。 在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI