handler

SpringMVC执行原理

六眼飞鱼酱① 提交于 2020-03-15 18:05:44
执行原理 1、使用配置的方式编写程序 之前我们使用注解的方式,现在使用配置的方式! 1、创建maven项目 2、导入依赖 3、编写web.xml 注册DispatcherServlet(和之前一样) 4、编写配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd> 5、添加处理映射器 <bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 6、添加处理适配器 <bean id="simpleControllerHandlerAdapter" class="org.springframework.web

[学习笔记]信号的高级用法

↘锁芯ラ 提交于 2020-03-15 13:45:33
sigaction函数注册信号处理函数 sigaction 函数 q 包含头文件<signal.h> q 功能:sigaction函数用于改变进程接收到特定信号后的行为。 q 原型: int sigaction(int signum,const struct sigaction *act,const struct sigaction *old); q 参数 q 该函数的第一个参数为信号的值,可以为除SIGKILL及SIGSTOP外的任何一 个特定有效的信号(为这两个信号定义自己的处理函数,将导致信号安装错误) q 第二个参数是指向结构sigaction的一个实例的指针,在结构 sigaction的实例中,指定了对特定信号的处理,可以为空,进程会以缺省方式对信号处理 q 第三个参数oldact指向的对象用来保存原来对相应信号的处理,可指定oldact为NULL。 q 返回值:函数成功返回0,失败返回-1 signal(num., handle) sigaction 结构体 q 第二个参数最为重要,其中包含了对指定信号的处理、信号所传递的信息、信号处理函数执行过程中应屏蔽掉哪些函数等等 struct sigaction { void (*sa_handler)(int); //信号处理程序 不接受额外数据 void (*sa_sigaction)(int, siginfo_t *,

实现一个 RESTful API 服务器

五迷三道 提交于 2020-03-15 07:37:16
RESTful 是目前最为流行的一种互联网软件结构。因为它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 什么是 REST REST(REpresentational State Transfer),首次出现在 2000 年 Roy Thomas Fielding 的博士论文中,它指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful 的。 资源(Resources),REST 是“表现层状态转化”,其实它省略了主语。“表现层”其实指的是“资源”的“表现层”。那么什么是资源呢?我们平时网上访问到图片、文字、文档、多媒体等就是资源,一般通过 URI 来定位。也就是说,一个 URI 就表示一个资源。 表现层(Representation),资源是作为一个具体的实体信息,它可以有多种的展现方式。而把实体展现出来就是表现层。例如一个 txt 文本信息,它可以输出成 html、json 等。 状态转化(State Transfer),访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,就涉及到数据和状态的变化。而 HTTP 协议是无状态的,那么这些状态肯定保存在服务器端,所以如果客户端想要通知服务器端改变数据和状态的变化,就要通过某种方式来通知它。客户端能通知服务器端的手段,只能是 HTTP 协议。具体来说,就是

ashx文件和aspx

大兔子大兔子 提交于 2020-03-13 07:14:11
ashx文件和aspx文件有什么不同? 我们先新建一个ashx文件看看: 1 <%@ WebHandler Language="C#" Class="Handler" %> 2 using System; 3 using System.Web; 4 public class Handler : IHttpHandler 5 { 6 public void ProcessRequest (HttpContext context) 7 { 8 context.Response.ContentType = "text/plain"; 9 context.Response.Write("Hello World"); 10 } 11 public bool IsReusable 12 { 13 get 14 { 15 return false; 16 } 17 } 18 } 这是新建了 Handler .ashx文件. ashx比aspx简洁多了吧.只有一个文件,没有后台cs文件(基于代码安全考虑,后边我们会自己添加这个文件).ashx对比aspx文件,就好像 少了cs文件.其实这就是ashx和aspx不同的地方,因为aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,其实,在最终编译的时 候,aspx和cs还是会编译到同一个类中去.这中间就要设计html的一些逻辑处理

关于asp.net中*.ashx类型的文件

a 夏天 提交于 2020-03-13 06:17:23
问题:你想创建一个ASP.NET文件,它不是aspx文件,它能动态的返回一个图片、XML文件或其他非HTML文件。 解决方案:使用ashx文件。 1. 使用ASHX handlers 首先,我们要回顾要使用ASHX文件的目标,我们要做的是在一个地址中用ASHX文件并动态的返回内容。 我们将用到querystring,最后的地址格式为(例子): http://dotnetperls.com/?file=name 开始:通过这几个步骤你可以添加一个新的ashx文件:打开你的ASP.NET web site;右击项目选择 “Add New Item...”;将显示一个“Add New Item”的对话框,选择“Generic Handler”。此时,你就 会得到一个新的ashx文件。 2.自动生成代码 我们需要注意的是在ashx文件中自动生成的代码。它定义了IHttpHandler接口的两部分。非常重要的一 部分是ProcessRequest(),它将决定这个ashx文件是被请求还是被显示。你不能修改这个继承的接口或删 除它的方法。 3.映射handler 映射一个older URL或一个路径到你的新ashx文件通常是可取的。为了向后兼容和优化搜索引擎,你获取 希望这个handler能接管一个old URL。如何来实现呢?用urlMappings; <system.web>

职责链模式 - 设计模式学习

青春壹個敷衍的年華 提交于 2020-03-13 05:33:11
  职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它位置。   下面给出职责链模式的结构图:          下面给出职责链模式的基本代码结构: namespace ConsoleApplication1 { //Handler类,定义一个处理请示的接口 abstract class Handler { protected Handler successor; public void SetSuccessor(Handler successor) { this.successor = successor; } public abstract void HandleRequest(int request); } //ConcreteHandler1类,具体处理者类,处理它所负责的请求,可访问它的后继者,如果可处理该请求,就处理,否则将请求转发给它的后继者。 class ConcreteHandler1 : Handler { public override void HandleRequest(int request) { if (request >= 0 && request < 10) //0到10处理此请求 { Console

OkHttp基本使用

久未见 提交于 2020-03-12 23:25:21
  OkHttp介绍      Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient,HttpURLConnection相对来说比HttpClient难用,google自从2.3版本之后一直推荐使用HttpURLConnection,并且在6.0版本的sdk中直接删掉了HttpClient类。      但是, 上面两个类库和OkHttp比起来就弱爆了, 因为OkHttp不仅具有高效的请求效率,并且节省宽带, 还提供了很多开箱即用的网络疑难杂症解决方案.(据说Android4.4的源码中可以看到OkHttp替换了HttpURLConnection)      支持HTTP/2, HTTP/2通过使用多路复用技术在一个单独的TCP连接上支持并发, 通过在一个连接上一次性发送多个请求来发送或接收数据      如果HTTP/2不可用, 连接池减少请求延迟      支持GZIP, 可以压缩下载体积      响应缓存可以避免重复请求网络      会从很多常用的连接问题中自动恢复,如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP      OkHttp还处理了代理服务器问题和SSL握手失败问题      OkHttp基本使用      概述      前面的内容介绍了OkHttp

搞懂这些面试知识点,吊打面试官

孤者浪人 提交于 2020-03-12 22:33:16
一丶设计模式与使用场景 建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景比如最常见的 AlertDialog,拿我们开发过程中举例,比如 Camera 开发过 程中,可能需要设置一个初始化的相机配置,设置摄像头方向,闪光灯开闭,成 像质量等等,这种场景下就可以使用建造者模式 装饰者模式: 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模 式比生成子类更为灵活。装饰者模式可以在不改变原有类结构的情况下曾强类的 功能,比如 Java 中的 BufferedInputStream 包装 FileInputStream ,举个开发中的 例子,比如在我们现有网络框架上需要增加新的功能,那么再包装一层即可,装 饰者模式解决了继承存在的一些问题,比如多层继承代码的臃肿,使代码逻辑更 清晰 还有等等.......观察者模式, 代理模式,门面模式,单例模式,生产者消费者模式。 二丶java 中的线程创建方式,线程池的工作原理 java 中有三种创建线程的方式,或者说四种 1.继承 Thread 类实现多线程 2.实现 Runnable 接口 3.实现 Callable 接口 4.通过线程池 线程池的工作原理: 线程池可以减少创建和销毁线程的次数,从而减少系统资源 的消耗,当一个任务提交到线程池时 a. 首先判断核心线程池中的线程是否已经满了

源码分析Dubbo网络通讯篇之NettyServer网络事件派发机制(Dispatch)

℡╲_俬逩灬. 提交于 2020-03-12 21:06:33
本节将主要学习Dubbo是如何使用Netty来实现网络通讯的。 从官网我们得知,Dubbo协议是使用单一长连接来进行网络传输,也就是说服务调用方持久与服务提供者建立一条连接,所有的服务调用调用信息通过。 一条TCP连接进行传输,在网络层至少要考虑如下问题: 服务端,客户端网络通讯模型(线程模型) 传输(编码解码、序列化)。 服务端转发策略等。 Dubbo服务端的网络启动流程,在上篇中已给出序列图,本节还是以该图为切入点,引入本文的两个主人公:NettyServer、NettyClient。 dubbo使用SPI机制,根据配置,可以支持如下框架实现网络通讯模型,例如netty3,netty4、mina、grizzly,本文重点分析基于Netty4的实现,包路径:dubbo-remoting-netty4。 从上面的流程图,NettyTransport的职责就是调用new NettyServer的构造方法,从而构建NettyServer对象,在深入NettyServer对象构造过程之前,先来看一下NettyServer的类继承层次: NettyServer构造函数: public NettyServer(URL url, ChannelHandler handler) throws RemotingException { // @1 super(url, ChannelHandlers

springmvc(一) springmvc框架原理分析和简单入门程序

China☆狼群 提交于 2020-03-11 10:16:35
      springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~                       --WH 一、什么是springmvc?       我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交道,而前面刚写的mybatis跟hibernate一样,与数据库打交道在dao层的另一个框架,而今天所要讲解的springmvc是在web层的另一个框架。       springmvc全名是spring web mvc,springmvc是spring的一个模块,并且看名字即可知道,springmvc是一个基于mvc设计模式的前端web框架。       mvc:m(model模型)、v(view视图)、c(control控制)       mvc的运用概念图            二、springmvc的入门程序       通过这个来快速了解springmvc大概的开发流程,其实通过上面的mvc分析图,差不多就知道了如何开发了。重点就是三步。         1、在web.xml中配置一个serlvet,用来控制,         2、编写一个handler(controller)类,用来做业务处理。