zoukankan      html  css  js  c++  java
  • SpringMVC 学习笔记(处理器映射器的配置)

    前端控制器(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;
        }
    }
  • 相关阅读:
    People Picker 处理过程
    DC与GC的区别
    说明DOS命令格式的语法
    SQL Server Express的Limitation
    关于IE缓存的一些基础
    Content Deployment入门(上)
    Microsoft SQL Server版本号小结
    要研究一下的技术要点
    区分斜杠与反斜杠
    Windows Virtual PC的虚拟机与宿主机共享文件
  • 原文地址:https://www.cnblogs.com/lhblogs/p/7478800.html
Copyright © 2011-2022 走看看