3

第一步:在web.xml文件中定义前端控制器

(front controller)DispatcherServlet来拦截用户请求,在web.xml文件中配置(文件配置核心部分)如下:
<!-- 定义前端控制器--->

<servlet>

    <servlet-name>springmvc</servlet-name>  <servleclass>org.springframework.web.servlet.DispatcherServlet</servletclass>
    <init-param>
         <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/springmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>

</servlet>

<!-- 让spring MVC的前端控制器拦截所有请求 -->

   <servlet-mapping>
                <servlet-name>springmvc</servlet-name>
                <url-pattern>/</url-pattern>
      </servlet-mapping>
  

如果需要一post方式提交请求,则定义包含表单数据的JSP页面,如果仅仅是以get方式提交请求则无需经过这一步

第二步:定义处理用户请求的Handle1类

,可以实现Controller类或者使用@Controller注解
配置Handle
在spring MVC配置文件中配置handle
在spring2.5之前采用注入方式来配置handle,举例如下:
<bean name="/pathname" class="the path of the handleclass"/>
在spring2.5之后推荐使用注解来配置handle,举例如下:

<context:component-scan base-package="org.fkit.controller"/><.context>    
 <beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>   <beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>     <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"/>    

下面来讲解一下spring--MVC请求响应的完整过程如下:

【1】用户向服务器发送请求,请求被spring的前端控制器DispatchServlet拦截下来

【2】DispatchServlet对请求的URL进行解析,得到URI,根据该URI,调用HandlerMapping获得该handler配置的所有相关对象,包括handler对象以及handler对象对应的拦截器

【3】DispatchServlet根据获得的handler,选择一个合适的handlerAdapter,HandlerAdapter会调用handler实际处理请求的方法

【4】提取请求的模型数据

【5】Handler执行完成后,向DispatchServlet返回一个ModelAndView对象

【6】根据ModelAndView对象,选择一个合适的ViewResolver

【7】ViewResolver结合model和View来渲染视图

【8】将视图渲染结果返回给客户端


james
202 声望24 粉丝