Spring的MVC模型运行序列分析

原创 2004年09月20日 15:34:00

1)假定你的请求为http://localhost:8080/springapp/index.jsp
2)为安全考虑,在index.jsp中将请求redirect到WEB-INF目录下:
  <c:redirect url="/hello.htm"/>
3)在web.xml中,对*.htm的请求都发到
org.springframework.web.servlet.DispatcherServlet进行处理:

  <servlet>
    <servlet-name>springapp</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>springapp</servlet-name>
    <url-pattern>*.htm</url-pattern>
  </servlet-mapping>
4)org.springframework.web.servlet.DispatcherServlet会获取当前应用名称apringapp,
并自动到WEB-INF目录下寻找并解析springapp-servlet.xml文件.
5)在springapp-servlet.xml文件中,将/hello.htm转发到springappController
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/hello.htm">springappController</prop>
            </props>
        </property>
</bean>
6)在springapp-servlet.xml文件中,配置springappController对应的类文件
<bean id="springappController" class="web.SpringappController">
        <property name="productManager">
            <ref bean="prodMan"/>
        </property>
</bean>
7)实现你自己的控制器类web.SpringappController,举例如下:
package web;

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

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

import java.io.IOException;
import java.util.Map;
import java.util.HashMap;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import bus.Product;
import bus.ProductManager;

public class SpringappController implements Controller {

    /** Logger for this class and subclasses */
    protected final Log logger = LogFactory.getLog(getClass());

    private ProductManager prodMan;

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String now = (new java.util.Date()).toString();
        logger.info("returning hello view with " + now);

        Map myModel = new HashMap();
        myModel.put("now", now);
        myModel.put("products", getProductManager().getProducts());

        return new ModelAndView("hello", "model", myModel);
    }

    public void setProductManager(ProductManager pm) {
        prodMan = pm;
    }

    public ProductManager getProductManager() {
        return prodMan;
    }
}
注意,控制器中采用了IOC模式的type2方式.
8)你返回的ModelAndView有三个参数,第一个是下个view的名称,
第二个是Model Object的别名,第三个是Model Object对象,后两个参数
将在下个VIEW中使用.

版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring的MVC模型运行序列分析

1)假定你的请求为http://localhost:8080/springapp/index.jsp2)为安全考虑,在index.jsp中将请求redirect到WEB-INF目录下:  3)在w...
  • techcrunch
  • techcrunch
  • 2008年04月09日 01:46
  • 140

Spring MVC中的模型数据处理

一、综述 Spring MVC 提供了以下途径来输出模型数据: 1、ModelAndView 当处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据到请求域。 ...
  • xiaokang123456kao
  • xiaokang123456kao
  • 2017年03月28日 15:17
  • 416

springMVC运行流程分析

在整个 Spring MVC 框架中, DispatcherServlet 处于核心位置,负责协调和组织不 同组件以完成请求处理并返回响应的工作 。SpringMVC 处理请求过程: 1). 若一个...
  • u013628152
  • u013628152
  • 2016年05月17日 23:06
  • 2479

SpringMVC入门之三:控制器&模型

编写基本的控制器在SpringMVC中,控制器只是方法上添加了@RequestMapping注解的类,这个注解声明了他们所要处理的请求。下面是一个简单的小例子HomeController: packa...
  • zhoucheng05_13
  • zhoucheng05_13
  • 2017年02月20日 12:02
  • 473

浅谈SpringMVC之架构与工作流程

MVC模式是在Java的Web应用开发中非常常用的模式。MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设...
  • James_shu
  • James_shu
  • 2017年01月19日 14:49
  • 6004

springMVC4(8)模型数据绑定全面分析

使用@ModelAttribute、Model、Map、@SessionAttributes能便捷地将我们的业务数据封装到模型里并交由视图解析调用。下面开始一一分析在方法入参上使用@ModelAttr...
  • qwe6112071
  • qwe6112071
  • 2016年04月03日 10:02
  • 3686

Spring MVC深入分析(快速入门,由浅入深)

 目录  一、前言 二、spring mvc 核心类与接口 三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring...
  • chenleixing
  • chenleixing
  • 2015年02月02日 17:01
  • 2190

spring MVC 运行简单分析

http://note.youdao.com/yws/public/redirect/share?id=f2800d34204690b31a4bcec1e2fc104e&type=false
  • aihairuyue
  • aihairuyue
  • 2016年06月02日 11:32
  • 81

Spring MVC 传递模型数据到视图中方法总结

Spring MVC 传递模型数据到视图中的方法总结一般来说,有如下的4种方法来传递模型数据到视图中1、ModelAndView要求:处理方法返回值类型为 ModelAndView。在方法体中我们通过...
  • u010412719
  • u010412719
  • 2017年05月13日 16:16
  • 3016

说说Spring MVC的工作原理、流程

在整个Spring MVC框架中,DispatcherServlet处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应的工作。具体流程为: 1)客户端发送http请求,web应用服务器接收...
  • nimeijian
  • nimeijian
  • 2015年10月17日 23:57
  • 19609
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring的MVC模型运行序列分析
举报原因:
原因补充:

(最多只允许输入30个字)