即兴的灵感

思维是一种艺术; 艺术需要灵感。

博客好友

最新评论

偶遇Spring MVC


    个人认为Spring其核心是其IOC和AOP方面,对其SpirngMVC框架并不关注,我看好的是JSF,简单易懂。但最近由于工作上需要,所以有需要对SpringMVC做个了解学习,因此,本次对SpirngMVC的相遇纯属偶遇....下面对其做见识性了解说明:

    SpingMVC的架构其实也很简单,它通过一个共通的入门DispatcherServlet来接收所有的request,接下来根据request要求的页面通过handler转送给Controller处理,处理结果返回View给用户,因此对SpringMVC来说,其核心为DispatcherServlet。
    DispatcherServlet作为一扇门,我们要使用这个门,首先得安装上这个门,安装在哪呢?没错,就安装在web.xml这个大屋子,象其他servlet一样,描述servlet的名字和类,再给他一个mapping描述对应映射的网页。在下例中,我们给DispatcherServlet的起名为SpringMVCDemo,并让container知道所有.do结尾的request都丟给dispatcher。
     < servlet >
        
< servlet-name > SpringMVCDemo </ servlet-name >
        
< servlet-class >
            org.springframework.web.servlet.DispatcherServlet
        
</ servlet-class >
        
< load-on-startup > 1 </ load-on-startup >
    
</ servlet >

    
< servlet-mapping >
        
< servlet-name > SpringMVCDemo </ servlet-name >
        
< url-pattern > *.do </ url-pattern >
    
</ servlet-mapping >
    门安装好了之后,我们需要定义门能打开的范围,在哪定义呢?就在门的上面贴上一张“入门指导”,介绍从哪方面(hello.do)进门需要使用何种交通方式(springmvcController)进去,并定义该交通方式。
     < bean  id ="urlMapping"
        class
="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
        
< property  name ="mappings" >
            
< props >
                
< prop  key ="/hello.do" > springmvcController </ prop >
            
</ props >
        
</ property >
    
</ bean >

    
<!--  SpringmvcController  -->
    
< bean  id ="springmvcController"
        class
="org.improviser.webapp.controller.SpringmvcController" >
    
</ bean >
    接下来该渲染一下页面了,下面为渲染所有以
WEB-INF/pages/ 开头并以.jsp结尾的页面。
     <!--  ViewSolver  -->
    
< bean  id ="viewResolver"
        class
="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        
< property  name ="viewClass" >
            
< value > org.springframework.web.servlet.view.JstlView </ value >
        
</ property >
        
< property  name ="prefix" >
            
< value > /WEB-INF/pages/ </ value >
        
</ property >
        
< property  name ="suffix" >
            
< value > .jsp </ value >
        
</ property >
    
</ bean >
   上面提到的SpringmvcController,现在该作个定义了,该类需要实现Controller接口。
public class SpringmvcController implements Controller {
    
/** Logger for this class and subclasses */
    
protected final Log logger = LogFactory.getLog(getClass());

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

        Map model 
= new HashMap();

        String str
= "即兴诗人";
        logger.info(
"returning hello view with " + currTime);
        model.put(
"coldice", str);

        
return new ModelAndView("hello""message", model);
    }
   编写jsp测试页面。
<html>
    
<head>
        
<title>Spring Application</title>
    
</head>
    
<body>
        
<h1>
            
<br />
            Hello
            <c:out value="${message.coldice}" /></br>
            Spring MVC 测试成功!
        
</h1>
    
</body>
</html>
    现在对以上内容作个总结,正如上面所叙述,SpringMVC框架的处理过程机制如下图所示,接收请求页面,通过DispatcherServlet映射到相应规则处理,并找到相应的控制器,结果控制器处理后返回相应的页面最后返回给用户。
138199405_8b54d56b71_o.png



 
凤凰涅槃/浴火重生/马不停蹄/只争朝夕
     隐姓埋名/低调华丽/简单生活/完美人生

posted on 2007-11-04 10:44 poetguo 阅读(6682) 评论(13)  编辑  收藏 所属分类: Spring

评论

# re: 偶遇Spring MVC 2007-11-04 12:00 BeanSoft

呵呵 Spring MVC 是紧耦合 和它自己的设计理念冲突啊... 所以 Spring Web 连 Struts 也打不过...  回复  更多评论   

# re: 偶遇Spring MVC 2007-11-04 12:06 improviser

嗯嗯 目前只是原型系统使用到 偶用一下测试看看而已啊  回复  更多评论   

# re: 偶遇Spring MVC 2007-11-04 14:21 山风小子

@BeanSoft
"Spring MVC 是紧耦合"
具体体现在哪里呢?谢谢 :)  回复  更多评论   

# re: 偶遇Spring MVC 2007-11-04 18:08 BeanSoft

public class SpringmvcController implements Controller {

这一句就是. 兄弟你用过 Struts 1 和 Struts 2 嘛? Spring 不是一直都讲究 POJO 嘛? 也许现在新的 Spring MVC 也不需要继承自它自己的 Web 层的接口了 呵呵. 这一点是和它自己的理念违背的.  回复  更多评论   

# re: 偶遇Spring MVC 2007-11-04 18:49 山风小子

Struts2 中不也是
public class Login extends ActionSupport {
吗?

您所说的‘紧耦合’似乎各大框架都存在噢 :)  回复  更多评论   

# re: 偶遇Spring MVC 2007-11-05 16:41 BeanSoft

呵呵 JSF 不存在. 如果标注算松耦合的话, EJB 3, JPA 也不存在. 不过 Spring 这个地方是紧耦合不假. 所以这里它只能和 Struts 来类比了, 当然不影响使用, 嘿嘿.  回复  更多评论   

# re: 偶遇Spring MVC 2007-11-05 22:48 improviser

这也许就是正是欣赏jsf的地方  回复  更多评论   

# re: 偶遇Spring MVC[未登录] 2007-12-01 13:58 duma

@山风小子
struts2 , webwork 可以不用这样写.  回复  更多评论   

# re: 偶遇Spring MVC 2007-12-23 18:46 广州_Soar

Spring Web MVC 也许你只是用来玩玩,呵呵!!
它的好处做过大型系统的朋友应该都有体会,不过目前大家都使用EXTJS2.0做前台了,直接跟Service层进行调用!!呵呵!!  回复  更多评论   

# re: 偶遇Spring MVC 2007-12-24 22:27 improviser

算玩过2个月了哈哈,还不错,
技术本身没有错,每一种都有它的有点,存在即合理!  回复  更多评论   

# re: 偶遇Spring MVC 2008-02-29 13:47 平淡无味

第一次来 以后就常来了 希望能多写一些 要好好学习了  回复  更多评论   

# re: 偶遇Spring MVC[未登录] 2008-11-26 06:59 Scott.H

有 Spring 2.5 的 Annotation 以后,就不存在所谓的紧耦合,everything is a POJO  回复  更多评论   

# re: 偶遇Spring MVC 2010-09-28 17:49 11

是啊,Spring 2.5 的 Annotation用起来真的很方便。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: