赛迪网 > IT技术 Java > JJ2EE介绍
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

J2EE基础:Spring的MVC模型运行序列分析

发布时间:2007.11.01 04:39     来源:赛迪网技术社区    作者:baocl

1)假定你的请求为http://localhost:8080/springapp/index.jsp

2)为安全考虑,在index.jsp中将请求redirect到WEB-INF目录下:
 

3)在web.xml中,对*.htm的请求都发到
org.springframework.web.servlet.DispatcherServlet进行处理:

 
    springapp
    org.springframework.web.servlet.DispatcherServlet
    1
 

 
    springapp
    *.htm
 


4)org.springframework.web.servlet.DispatcherServlet会获取当前应用名称apringapp,
并自动到WEB-INF目录下寻找并解析springapp-servlet.xml文件.

5)在springapp-servlet.xml文件中,将/hello.htm转发到springappController

       
           
                springappController
           

       


6)在springapp-servlet.xml文件中,配置springappController对应的类文件

       
           
       


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中使用.


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 检测JSP服务器内存的Ajax程序 (10-31) · 用JAVA读取硬盘序列号 (10-31)
· JAVA基础--java语言中的文件操作方法 (10-31) · J2EE--关于用JAVA开发短信方面的知识 (10-31)
· JAVA基础--Tomcat的配置技巧精华详解 (10-31) · Java数据库中连接驱动程序类型 (10-31)
· 文档:在Struts和Hibernate之间搭起桥梁 (10-31) · Java容器分析--数组 (10-31)
· java通过JDBC访问Oracle的2个异常 (10-31) · Struts中不同的Action和ActionForm组合 (10-30)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网银交易收费 我国银行业如何达国际化标准
· 家庭信息化普及率提高 网上缴费成为新时尚
· 五条黄金准则能够让CIO巧妙加薪 CIO焦虑调查
· 网上书店解决方案 深圳边检指挥中心ITSM项目
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统