springMVC-映射处理器(上)

1.简析映射处理器
在spring mvc中,使用映射处理器可以把web请求映射到正确的处理器上,spring内置了很多映射处理器,而且
我们也可以自定义映射处理器。下面的实例展示spring中最常用的两个映射处理器:
BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping。
(1)映射处理器都能把请求传递到处理器执行链接(HandlerExecutionChain)上,并且处理器执行链接必须
包含能处理该请求的处理器(实质就是处理器链上动态添加了了此处理器,可以结合filter工作原理理解),而
且处理器链接也能包含一系列拦截器。
(2)上面列举的spring最常用的两种处理器都是继承自AbstractHandlerMapping类,因而它们具备父类的属
性。
2.实例:BeanNameUrlHandlerMapping
建立springMVC_03_handlerMappings项目,并导入相关jar包。
步骤一:建立后端控制器MessageController.java,代码如下:

package com.asm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class MessageController implements Controller{

    @Override
    public ModelAndView handleRequest(HttpServletRequest arg0,
            HttpServletResponse arg1) throws Exception {
        ModelAndView mav=new ModelAndView("message");
        mav.addObject("message", "你好,springMVC!");
        return mav;
    }
}

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

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

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

<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"/>

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

  <body>
  获取message中的信息:
    ${message}
  </body>

步骤五:启动服务器,输入…/message.do访问测试。
简析执行过程:
(1)启动服务器后,当我们向服务器发送message.do请求后,首先被宰web.xml中配置的前端控制器dispatcherServlet拦截到
(2)前端控制器把请求转交给后端控制器,下面分析转交过程:当在springmvc-servlet.xml中查找能执行message.do请求的映射器处理器时,发现没有能处理的映射器处理器,则使用默认的映射器处理器BeanNameUrlHandlerMapping.我们还需注意:这种后端控制器
的bean Name必须以“/”开头,并且要结合DispatcherServlet的映射配置。同时beanName支持通配符配置。比如如果配
置: 时,当访问messasge.do时也可以成功访问
到MessageController类。
(3)BeanNameUrlHandlerMapping处理器会查找spring容器中是否存在名为“message.do”的bean实例,当查找到此实例后,则把此bean作为处理此请求的后端控制器,同时把自身加到映射器处理器链上,并向处理器链传递此请求。
(4)后端处理器进行处理,并返回视图。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值