博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc入门之映射处理器(一)
阅读量:6639 次
发布时间:2019-06-25

本文共 2857 字,大约阅读时间需要 9 分钟。

1.简析映射处理器

在spring mvc中,使用映射处理器可以把web请求映射到正确的处理器上,spring内置了很多映射处理器,而且我们也可以自定义映射处理器。下面的实例展示spring中最常用的两个映射处理器:BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping。在正式开始前有必要了解以下相关要点:

(1)映射处理器都能把请求传递到处理器执行链接(HandlerExecutionChain)上,并且处理器执行链接必须包含能处理该请求的处理器(实质就是处理器链上动态添加了了此处理器,可以结合filter工作原理理解),而且处理器链接也能包含一系列拦截器。

(2)上面列举的spring最常用的两种处理器都是继承自AbstractHandlerMapping类,因而它们具备父类的属性。

2.实例:BeanNameUrlHandlerMapping

建立springMVC_03_handlerMappingsweb项目,并导入相关jar包。

步骤一:建立后端控制器MessageController.java,代码如下:

package com.asm;       //...省略导入的相关类         public class MessageController implements Controller {      public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {         ModelAndView mav = new ModelAndView("message");         mav.addObject("message", "您好!spring MVC");         return mav;       }      } 复制代码

步骤二:配置web.xml,代码如下:

"1.0" encoding="UTF-8"?>      "2.4" xmlns="http://java.sun.com/xml/ns/j2ee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">            spmvc          class>            org.springframework.web.servlet.DispatcherServlet              class>         1                spmvc        *.do    复制代码

步骤三:配置spmvc-servlet.xml,代码如下:

"1.0" encoding="UTF-8"?>       "http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:p="http://www.springframework.org/schema/p"    xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">    "viewResolver"      class="org.springframework.web.servlet.view.InternalResourceViewResolver">        "prefix" value="/WEB-INF/page/" />        "suffix" value=".jsp" />        "/message.do" class="com.asm.MessageController">    复制代码

步骤四:在WEB-INF/page目录下建立message.jsp,主要代码如下:

       Message:${message}      body> 复制代码

步骤五:启动服务器,输入…/message.do访问测试。

更多资料欢迎球球2042849237

简析执行过程

(1)启动服务器后,当我们向服务器发送message.do请求时,首先被在web.xml中配置的前端控制器DispatcherServlet拦截到。

(2)前端控制器把此请求转交给后端控制器,下面分析转交过程:当在spmvc-servlet.xml中查找能执行message.do请求的映射处理器时,发现没有能处理此请求的映射处理器,这时便使用默认的映射处理器BeanNameUrlHandlerMapping:This is the default implementation used by the DispatcherServlet, along with DefaultAnnotationHandlerMapping (on Java 5 and higher). 我们还需注意:这种后端控制器的bean Name必须以“/”开头,并且要结合DispatcherServlet的映射配置。同时beanName支持通配符配置。比如如果配置: 时,当访问messasge.do时也可以成功访问到MessageController类。

(3)BeanNameUrlHandlerMapping处理器,会查找在spring容器中是否在名为“”的bean实例。当查找到此实例后,则把此bean作为处理此请求的后端控制器。同时把自身加到映射处理器链上,并向处理器链传递此请求。

(4)后端控制器进行处理,并返回视图。

转载于:https://juejin.im/post/5b7d0a0f51882542ff3e5b05

你可能感兴趣的文章
电信网络拓扑图自动布局之曲线布局
查看>>
xampp mac os x “this application requires admin privileges”问题解决
查看>>
FilterRegistrationBean从springboot的1.3.5到1.4.0的变化
查看>>
BaseRecyclerViewAdapterHelper
查看>>
Unity 程序纹理的设置
查看>>
GoJS 绘图 (四) :构建节点与GraphObjects
查看>>
CSS 三角形绘制方法
查看>>
Compass的CSS3模块
查看>>
PHP 标准规范中文版发布
查看>>
GC专家系列目录索引
查看>>
Nokitjs 系列-01 - HelloWorld
查看>>
javascript----事件概述
查看>>
精通正则表达式:第一章
查看>>
BugHD for JavaScript上线,轻松收集前端 Error
查看>>
Windows下使用EasyBCD安装Linux双系统实践
查看>>
用户对物联网设备的“宽容”会让物联网陷入反乌托邦?
查看>>
工业相机接口标准详解
查看>>
ionic如何使用cordova-plugin-alipay支付
查看>>
RocketMQ Spring 集成
查看>>
PTS性能测试企业应用实践
查看>>