前端控制器(dispatchServlet)

  在web.xml中配置前端控制器,在服务器启动时就被创建,用来对请求和响应进行接收 和 分发处理,其在配置时可以设置一个初始化参数,用来定位SpringMVC.xml的地址

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>display null</display-name>
<servlet>
<!--配置dispatcherServlet -->
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置dispatcherServlet的初始化参数:定位 spring-mvc.xml的地址-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

处理器映射器(handlerMapping)

  处理器映射器主要有如下几种:

    1、BeanNameUrlHandlerMapping   根据对象的名字来进行处理器映射,此时该对象要继承AbstractController 实现handlerRequestInternal方法;对请求的处理主要在该方法中完成

    

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

  

<bean id="indexController" name="/index.action" class="com.lh.controller.testController"></bean>

  注意:使用 对象名映射 时,对象配置时的name属性必须为 "/xxx.action" 的形式,即 对象名 即为访问的 URL名

    2、SimpleUrlHandlerMapping

        SimpleUrlHandlerMapping的配置

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/a.action">indexController</prop>
<prop key="/b.action">indexController</prop>
<prop key="/c.action">indexController</prop>
</props>
</property>
</bean>

Controller对象的配置

<bean id="indexController" name="/index.action" class="com.lh.controller.testController"></bean>

      此时当请求的url 为xxx/a.action 或 xxx/b.action 或 xxx/c.action 时,映射器都会映射为id是 indexController 的controller对象这

    3、ControllerClassNameHandlerMapping 控制器类名映射

      控制器类名处理器映射对象配置

      

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>

注意:在用 控制器类名处理器映射 时,类名必须为xxxController ,访问地址为输入 /xxxController 或 /xxxcontroller 或 /xxx;

不过工业上一班用注解方式实现  控制器映射器对 控制器的 映射  如:@controller ; @requestMapping(value="/xxx.action",method=RequestMethod.POST) 等;

  

  在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping注解映射器。

  在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping注解映射器。

  在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter注解适配器。

  在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter注解适配器。

    对于适配器和解析器的配置,我们可以使用<mvc:annotation-driven></mvc:annotation-driven>代替

  

@Controller
public class FirstHandler{
@RequestMapping("/handler.action")
public ModelAndView handler(){
ModelAndView mav = new ModelAndView();
mav.addObject("name", "zhangsan");
mav.setViewName("index");
return mav;
}
}

SpringMVC 学习笔记(处理器映射器的配置)的更多相关文章

  1. SpringMVC的HandlerMapping(处理器映射器)

    SpringMvc有四种HandlerMapping:BeanNameUrlHandlerMapping ,SimpleUrlHandlerMapping,ControllerClassNameHan ...

  2. springMVC三种处理器映射器

    1.配置处理器映射器,springmvc默认的处理器映射器BeanNameUrlHandlerMapping <bean class="org.springframework.web. ...

  3. SpringMVC学习笔记九:拦截器及拦截器的简单实用

    SpringMVC中的interceptor拦截器是非常重要的,它的主要作用就是拦截指定的用户请求,并进行相应的预处理和后处理. 拦截时间点在"处理器映射器根据用户提交的请求映射出所要执行的 ...

  4. SpringMVC 学习笔记(六)拦截器

    5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器) 类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. ...

  5. SpringMVC学习笔记:拦截器和过滤器

    首先说明一下二者的区别: 1. 拦截器基于java的反射机制,而过滤器是基于函数回调 2. 拦截器不依赖于servlet容器,过滤器依赖servlet容器 3. 拦截器只能对action请求起作用,而 ...

  6. SpringMVC:学习笔记(7)——验证器(JSR303)

    JSR 303(Bean Validation ) 说明: 在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情.应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是 ...

  7. springMVC学习记录1-使用XML进行配置

    SpringMVC是整个spring中的一个很小的组成,准确的说他是spring WEB这个模块的下一个子模块,Spring WEB中除了有springMVC还有struts2,webWork等MVC ...

  8. SSM-SpringMVC-07:SpringMVC中处理器映射器

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping BeanN ...

  9. SpringMVC学习笔记_01

    1.JAVAEE体系结构 JAVAEE体系结构图如下所示: 2.什么是springmvc? 什么是mvc? Model1 Model2 SpringMVC是什么? SpringMVC是一个web层mv ...

随机推荐

  1. epoint:TreeView

    Epoint.Web.UI.WebControls2X.EpointTreeNode 思路:就是使用递归 RootNodeText 根节点名称RootNodeUrl 根节点路径ShowRootNode ...

  2. Java基础——概述

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  3. Class 'SoapClient' not found 解决方法

    Class 'SoapClient' not found ? 在百度上搜了解决办法,可是收效不佳,只知道好像要添加soap扩展模块,但怎么添加却没有说.于是,我上了google.果然,查看一些英文资料 ...

  4. C++设计模式之职责链模式

    代码实现: // chainResbonsibility.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stri ...

  5. Java 线程面试题 Top 50(转 ImportNew)

    不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程 ...

  6. js enter键激发事件

    document.onkeydown = function (e) {            if (!e) e = window.event;            if ((e.keyCode | ...

  7. PostgreSQL truncate table会释放索引的空间

    apple=# create table test(id integer, info text); CREATE TABLE apple=# insert into test select gener ...

  8. PostgreSQL锁级别及什么操作获取什么锁

    表级锁 大多数的表级锁是由内置的 SQL 命令获得的,但他们也可以通过锁命令来明确获取.可使用的表级锁包括: 访问共享(ACCESS SHARE) - SELECT 命令可在查询中引用的表上获得该锁. ...

  9. C# Seal用法

    C# Seal用法 sealed的中文意思是密封,故名思义,就是由它修饰的类或方法将不能被继承或是重写. sealed关键字的作用:     在类声明中使用sealed可防止其它类继承此类:在方法声明 ...

  10. RabbitMQ核心概念

    AMQP的四个主要概念 1.虚拟主机(virtual host)或(vhost) 2.交换机(exchange) 3.队列(queue) 4.绑定器(bind) 什么是虚拟主机? 一组交换机.队列和绑 ...