mvc中路由的映射和实现IHttpHandler挂载

简介: 首先我们了解一下一般的方法     我们只需要在web.config配置文件中做映射处理即可。 第一种形式: 注释:这里的url就是我们需要在请求的具体写法,然后mappedUrl则是我们实际项目中的处理位置。

首先我们了解一下一般的方法

    我们只需要在web.config配置文件中做映射处理即可。

第一种形式:

 <system.web>
    <urlMappings enabled="true">

      <add url="~/d" mappedUrl="SmackBio.WebSocketSDK.GenericHandler"/>

    </urlMappings>

注释:这里的url就是我们需要在请求的具体写法,然后mappedUrl则是我们实际项目中的处理位置。

第二种形式:

 <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>    
      <add path="/socket" verb="*" name="GenericHandler" type="SmackBio.WebSocketSDK.GenericHandler"/>
    </handlers>
  </system.webServer>

注释:这里的path就是我们请求的入口地址,type则是我们的实际项目中的方法类位置。

mvc路由配置方法

这是我们不同使用的映射形式。但是在mvc路由中我们挂起一般处理程序却发现行不通了,下面我们就要配置路由方法进行映射。

在mvc中我们分为三步:

    1.实现处理代码程序(实现一般处理程序继承类IHttpHandler)

 1   public class GenericHandler : IHttpHandler
 2     {
 3         public void ProcessRequest(HttpContext context)
 4         {
 5             if (context.IsWebSocketRequest || context.IsWebSocketRequestUpgrading)
 6             {
 7                 context.AcceptWebSocketRequest(new SBWebSocketHandler());
 8             }
 9             else
10             {
11                 context.Response.ContentType = "text/plain";
12                 context.Response.Write("Service running");
13             }
14         }
15 
16         public bool IsReusable
17         {
18             get
19             {
20                 return false;
21             }
22         }
23     }
View Code

    2.定义一个类路由规则(实现路由IRouteHandler接口然后指向处理代码程序类)

 public class PlainRouteHandler : IRouteHandler
    {

        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            return new GenericHandler();
        }
    }

 public static void RegisterHandler(RouteCollection routes)
        {
           
            RouteTable.Routes.Add("socket",
                 new Route("socket", new MvcZodiac.Controllers.PlainRouteHandler()));
        }
View Code

 

    3.注册到程序中(在Global.asax中的Application_Start方法注册)

 RegisterHandler(RouteTable.Routes);

 这里补充一下,这句话一定要写在路由注册之前,不然不会起作用。例如:

 

作者:YanBigFeg —— 颜秉锋

出处:http://www.cnblogs.com/yanbigfeg

本文版权归作者和博客园共有,欢迎转载,转载请标明出处。如果您觉得本篇博文对您有所收获,觉得小弟还算用心,请点击右下角的 [推荐],谢谢!

目录
相关文章
|
6月前
|
前端开发 Java Spring
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
149 1
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
|
6月前
|
缓存 前端开发 Java
视图映射掌握:解析Spring MVC视图解析器的全方位指南
视图映射掌握:解析Spring MVC视图解析器的全方位指南
133 1
|
开发框架 前端开发 .NET
ASP.NET Core MVC 从入门到精通之自动映射(二)
ASP.NET Core MVC 从入门到精通之自动映射(二)
107 0
|
缓存 前端开发 JavaScript
Spring MVC静态资源映射
Spring MVC静态资源映射
137 0
|
JSON 前端开发 Java
30个类手写Spring核心原理之MVC映射功能(4)
接下来我们来完成MVC模块的功能,应该不需要再做说明。Spring MVC的入口就是从DispatcherServlet开始的,而前面的章节中已完成了web.xml的基础配置。下面就从DispatcherServlet开始添砖加瓦。
50 0
|
设计模式 JSON 前端开发
2021-08-11Spring MVC,入门项目搭建及流程,springMVC的适配器和映射器,基于注解的controller,映射请求,方法返回值,requestmapping注解
2021-08-11Spring MVC,入门项目搭建及流程,springMVC的适配器和映射器,基于注解的controller,映射请求,方法返回值,requestmapping注解
58 0
|
前端开发 Java Spring
spring mvc 一次请求如何映射到对应的controller 如何规避冲突
spring mvc 一次请求如何映射到对应的controller 如何规避冲突
145 0
|
前端开发 Java Spring
Spring MVC框架:第十七章:异常映射
Spring MVC框架:第十七章:异常映射
Spring MVC框架:第十七章:异常映射
|
XML JSON 前端开发
深入理解 Spring MVC Controller —— 请求映射
前言 基于注解的 Spring MVC 的项目中,Controller 应该是我们接触最多的类了,这里提到的 Controller 并非是某一个具体的接口或类,而是一种概念,只要我们我们定义的类中包含了处理请求的方法,这个类就可以称为 Controller,而处理请求的方法被称为处理器方法。
897 0
深入理解 Spring MVC Controller —— 请求映射
|
XML 设计模式 JSON
图文源码分析Spring MVC请求映射原理、执行流程
图文源码分析Spring MVC请求映射原理、执行流程
256 0
图文源码分析Spring MVC请求映射原理、执行流程