Spring之MVC web 框架

转载 2007年09月11日 18:44:00

Spring包括一个强大而且高度可配置的MVC web 框架。

Spring的MVC model类似于Struts。在多线程服务对象这点上,Spring的Controller类似于Struts Action,只有一个实例处理所有客户的请求。然而,我们相信Spring的MVC比起Struts有很多优点,例如:

Spring在controllers,JavaBean,models和views提供了一个非常清晰的划分。

Spring 的MVC是非常灵活的。不像Struts,它强制你的Action和Form对象进入固化的层次之中(因而你迫使你使用Java的实体继承), Spring MVC完全是基于接口的。而且,通过插入你自己的接口几乎Spring MVC 框架的所有部分都是可配置的。当然我们也提供了方便的类作为实现选择。

Spring MVC是真正的view无关的。你不会被强制使用JSP,如果你不想那么做的话。你可以使用Velocity,XSLT或其他view技术。如果你想要使用自定义的view机制——例如,你自己的模板语言——你可以简单实现Spring的View接口并且把它集成进来。

和其他对象一样,Spring的Controllers是通过IoC配置的。着使得它们易于测试,并且完美地和其他由Spring管理的对象集成。

Web层变成了业务对象层之上的薄薄一层。这鼓励了好的习惯。Struts和其他专门的web框架让你去实现你自己的业务对象;Spring提供了你应用程序所有层的集成。


如在Struts 1.1中所见的,你可以有和你在Spring MVC 应用程序中所需要的一样多的dispatcher servlets。

下面的例子展示了一个简单的Spring Controller如何能够访问定义在应用程序context中的业务对象。这个controller在它的handleRequest()方法中执行了Google搜索:

public   class  GoogleSearchController   implements  Controller 
        
private  IGoogleSearchPort google; 
        
private  String googleKey; 
        
public   void  setGoogle(IGoogleSearchPort google) 
                
this .google  =  google; 
        }
 

        
public   void  setGoogleKey(String googleKey) 
                
this .googleKey  =  googleKey; 
        }
 

        
public  ModelAndView handleRequest( 
                                HttpServletRequest request, HttpServletResponse response) 
                
throws  ServletException, IOException 
                String query 
=  request.getParameter( " query " ); 
                GoogleSearchResult result 
=  
                        
//  Google property definitions omitted 

                        
//  Use google business object 
                        google.doGoogleSearch( this .googleKey, query, 
                                start, maxResults, filter, restrict, 
                                safeSearch, lr, ie, oe); 

                
return   new  ModelAndView( " googleResults " " result " , result); 
        }
 
}
 

这 段代码使用的prototype中,IGoogleSearchPort是一个GLUE web services代理,由Spring FActoryBean返回。然而,Spring把controller从底层web service库中分离出来。接口可以使用普通的Java对象,test stub,mock对象或者如下面要讨论的EJB代理实现。这个contorller不包括资源查找;除了支持它的web交互的必要代码之外没有别的什么 了。

Spring还提供了数据绑定,forms,wizards和更复杂的工作流的支持。

 

Spring Web MVC框架(一) 搭建环境

学过Java的都知道SSH,也就是Struts、Spring和Hibernate。其中Struts是一个Web MVC框架,Hibernate是ORM框架,Spring是一组框架。不过由于Struts...
  • u011054333
  • u011054333
  • 2017年02月04日 00:37
  • 1342

在Java web项目springMVC框架中实现定时任务

在工作中遇到一个需求,需要定时自动执行某项功能,这就需要用到定时任务了。首先先来理一下实现思路,定时任务可以用Java.util中的timer类,把需要定时执行的任务封装到timer类的调度表中,这个...
  • u013703363
  • u013703363
  • 2017年11月16日 10:21
  • 155

java web文件上传-spring web MVC

之前我们介绍了在无框架支持的环境下如何进行文件上传的方式,此种方式比较基础,相对而言比较麻烦一点。 在接下来的文章中,我们将借助spring web mvc框架简化文件上传的操作。 一、创建web...
  • u012454773
  • u012454773
  • 2015年07月05日 15:20
  • 906

Java Web - SM(SpringMVC + Mybatis) 代码自动生成

SSH已经过时,SpringMVC比Structs2轻多了,Mybatis比Hibernate轻多了,阿里巴巴的标准架构是 Spring + Mybatis但是,使用SM还是不方便。对于小的web项目...
  • caib1109
  • caib1109
  • 2016年07月05日 10:17
  • 2888

Spring Web MVC详解

2.1、Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行...
  • baijianjun123456
  • baijianjun123456
  • 2016年03月23日 10:55
  • 649

SpringMVC集成Tiles布局引擎框架

Tiles布局框架, http://tiles.apache.org/ Spring已经对Tiles进行了集成。页头页尾公共模板页要靠这个,不然重复代码太多。 org.a...
  • unix21
  • unix21
  • 2016年07月12日 18:23
  • 2131

基于spring框架的BS构架web应用程序的一些学习心得

按照mvc模式,整个项目分为视图层、控制层和模型层,视图层和模型层在这里不多说,说一说控制层的一些心得体会。 按照javaee的模式,视图层发送一个请求后有一个servlet组件进行处理,在spri...
  • yunjiandemimi
  • yunjiandemimi
  • 2015年09月02日 00:29
  • 230

spring一站式框架(web层)

一站式里面的springMVC
  • qq_37307063
  • qq_37307063
  • 2017年04月03日 15:04
  • 1022

用DevExpress做界面开发:ASP.NET界面开发框架

亲身体验高性能Web界面开发控件DevExpress ASP.NET Controls开发的6个Web实例。
  • IBigPig
  • IBigPig
  • 2015年11月05日 16:50
  • 3513

springmvc4 整合 tiles3

使用springmvc4整合tiles3,
  • fhxmn14991
  • fhxmn14991
  • 2015年04月16日 11:44
  • 3594
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring之MVC web 框架
举报原因:
原因补充:

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