`
86asm
  • 浏览: 203680 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

spring-mvc入门(三):映射处理器(上)

阅读更多

三、映射处理器Handler Mapping

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,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="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">
	<servlet>
		<servlet-name>spmvc</servlet-name> 
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>spmvc</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
</web-app>

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="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">
	<bean id="viewResolver"		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/page/" />
		<property name="suffix" value=".jsp" />
	</bean>
	<bean name="/message.do" class="com.asm.MessageController"></bean>
</beans>

 

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

<body>

    Message${message}

</body>

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

简析执行过程

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

2)前端控制器把此请求转交给后端控制器,下面分析转交过程:当在spmvc-servlet.xml中查找能执行message.do请求的映射处理器时,发现没有能处理此请求的映射处理器,这时便使用默认的映射处理器BeanNameUrlHandlerMappingThis is the default implementation used by the DispatcherServlet, along with DefaultAnnotationHandlerMapping (on Java 5 and higher).   我们还需注意:这种后端控制器的bean Name必须以“/”开头,并且要结合DispatcherServlet的映射配置。同时beanName支持通配符配置。比如如果配置:<bean name="/m*.do" class="com.asm.MessageController" /> 时,当访问messasge.do时也可以成功访问到MessageController类。
3
BeanNameUrlHandlerMapping处理器,会查找在spring容器中是否在名为“message.do”的bean实例。当查找到此实例后,则把此bean作为处理此请求的后端控制器。同时把自身加到映射处理器链上,并向处理器链传递此请求。
4)后端控制器进行处理,并返回视图。

 

2
4
分享到:
评论
4 楼 lixia0417 2012-12-29  
不错啊。对于入门的人。
3 楼 pyzheng 2011-10-31  
<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
------------------------
可能版本不一样   我是添加了这个  才能运行起来的
否则不能运行哦
2 楼 86asm 2011-04-20  
hackpro 写道
兄弟你这里spmvc-servlet.xml是不是少了一句配置啊
<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet. handler.BeanNameHandlerMapping" />


谢谢你。这个不是少了配置、因为dispatcherServlet默认情况(没有在上下文中找到一个映射处理器时)下会创建BeanNameUrlHandlerMapping
1 楼 hackpro 2011-04-19  
兄弟你这里spmvc-servlet.xml是不是少了一句配置啊
<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet. handler.BeanNameHandlerMapping" />



相关推荐

    spring-mvc-test:spring-mvc 入门样例工程,可以导入jetty中运行

    "spring-mvc-test"是一个基础的Spring MVC入门示例,旨在帮助开发者快速了解Spring MVC框架的工作原理和使用方法。通过这个项目,我们可以学习到如何配置和运行Spring MVC项目,以及如何利用Jetty作为开发和测试环境...

    Spring-mvc入门示例

    在本入门示例中,我们将深入理解 Spring MVC 的核心概念和关键组件,以便初学者能够快速上手。 1. **MVC 模式** MVC 模式是一种软件设计模式,用于分离应用程序的数据模型、用户界面和业务逻辑。Model(模型)处理...

    Spring MVC step-by-step 源码

    本资源"Spring MVC step-by-step 源码"是针对初学者准备的入门教程,通过实际项目"springapp"来帮助理解Spring MVC的工作原理。 在MyEclipse环境下开发的"springapp"项目,涵盖了Spring MVC的基础配置和核心组件。...

    spring-mvc.rar_spring mvc

    这个名为"spring-mvc.rar_spring mvc"的压缩包可能是为了帮助初学者理解和入门Spring MVC,解决他们在开发过程中可能遇到的问题。下面将详细阐述Spring MVC的核心概念和关键组件。 1. **DispatcherServlet**:它是...

    spring-mvc DEMO

    `web.xml`配置了DispatcherServlet,而`spring-servlet.xml`则包含了Spring MVC的详细配置,如处理器映射器、视图解析器、以及bean的定义。 3. **Controller**: 控制器是处理用户请求的核心组件,通常用@...

    spring-mvc-study:SpringMVC 起步 —— Helllo World!

    这个"spring-mvc-study"项目可能是为了帮助初学者理解SpringMVC的工作原理和配置过程。 在SpringMVC中,"Hello World!"的实现通常涉及以下几个关键组件: 1. **DispatcherServlet**:这是SpringMVC的核心组件,...

    Spring Web MVC入门教程

    Spring Web MVC允许开发者将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。这种模式的主要目的是实现Web层的职责分离,从而提高应用程序的可维护性和可扩展性。 在Spring Web MVC中,...

    spring-mvc-webflow

    Spring MVC Webflow是一个基于Spring框架的强大力量,用于构建高度交互式的Web应用程序。它将Spring MVC的功能与一种称为Webflow的流程管理概念相结合,帮助开发者更好地组织和控制用户会话的生命周期。在这个教程中...

    spring mvc step by step,例子

    1. **DispatcherServlet**:这是Spring MVC的前端控制器,负责接收HTTP请求,然后根据请求映射信息转发给相应的处理器。 2. **Controller**:控制器是处理请求并返回视图模型的类。开发者通常会定义一系列处理方法,...

    Spring MVC入门 XML版本+注释版本

    总结一下,Spring MVC入门涉及的关键概念有: 1. `DispatcherServlet`:作为请求分发器。 2. XML配置:定义组件,如视图解析器、处理器映射器和处理器适配器。 3. 注解配置:使用`@Controller`、`@RequestMapping`等...

    spring mvc入门示例

    2. DispatcherServlet(前端控制器)捕获请求,它是Spring MVC的核心组件,负责调度请求到合适的处理器。 3. HandlerMapping(处理器映射器)根据请求的URL查找对应的Handler(控制器方法)。 4. HandlerAdapter...

    spring-mvc-01.rar

    《Spring MVC 入门详解》 Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。在这个入门项目中,我们将深入探讨 Spring MVC 的核心概念、配置以及实际应用。...

    Spring MVC Beginner's Guide

    - 控制器配置:配置DispatcherServlet,这是Spring MVC的核心组件,用于将请求映射到对应的处理器上。 4. 视图解析与控制器工作原理 - 请求处理流程:通过DispatcherServlet,理解Spring MVC如何接收请求、处理...

    Spring MVC--2.入门程序

    这标志着你的Spring MVC入门程序已经成功运行。 在这个过程中,你学到了如何配置Spring MVC项目,包括Maven依赖、DispatcherServlet、servlet-context.xml配置、控制器编写以及视图渲染。这些都是Spring MVC开发的...

    Spring MVC入门实例

    **Spring MVC 入门实例详解** Spring MVC 是 Spring 框架的一个重要模块,用于构建 Web 应用程序。它提供了模型-视图-控制器(MVC)架构,帮助开发者将业务逻辑、数据处理和用户界面分离,实现更加清晰的代码结构。...

    spring mvc经典入门案例

    这个经典入门案例将引导你逐步了解并掌握 Spring MVC 的基本概念、配置以及实际应用。 1. **Spring MVC 概述** Spring MVC 是一个模型-视图-控制器(MVC)架构模式的实现,它简化了Java Web 应用的开发,提供了一...

    sprimg-mvc 基础入门

    在实际项目中,"spring-mvc基础入门"可能包括创建一个简单的Spring MVC项目,配置web.xml和Spring的Context配置,编写第一个Controller,处理GET和POST请求,学习如何注入Service层,理解模型数据的传递,以及如何...

    Spring MVC 入门实例

    如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用...

    spring3 MVC 入门hello world源码

    **Spring3 MVC 入门Hello World源码解析** Spring3 MVC是Spring框架的重要组成部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)框架。本篇将深入探讨Spring3 MVC的基础知识,通过"Hello World"实例来...

Global site tag (gtag.js) - Google Analytics