一、Spring mvc是基于Model2实现的技术框架,利用处理器分离模型、视图和控制。spring mvc框架包括注解驱动器、请求及相应的信息处理、视图解析、本地化解析、上传文件解析、异常处理及表单标签绑定。
二、Spring mvc 3.0的新特征:
>>支持REST风格的URL
(具体可参考:
http://www.360doc.com/content/12/0925/10/7471983_238046800.shtml
使用Spring MVC构建REST风格WEB应用)里面介绍的比较详细,在此感谢windli。
简单说明一下:REST(Representational State Transfer)是一种编程风格,特别是针对网络应用的设计和开发,采用REST可以显著降低开发的复杂性,提高系统的可伸缩性。
使用REST风格开发WEB应用程序强调以下几点规则:
- 1.网络上的所有事物都被抽象为资源(resource);
- 2.每个资源对应一个唯一的资源标识(resource identifier);
- 3.通过通用的连接器接口(generic connector interface)对资源进行操作;
- 4.对资源的各种操作不会改变资源标识;
- 5.所有的操作都是无状态的(stateless)。
-
- REST强调资源必须有具有唯一名称和ID,名称用来区分不同资源,ID用来定位同类资源中唯一的一条数据。REST风格URI设计的特点:http://host/context/资源名称/[资源ID]。其中资源名称是必选项,资源ID可省略,省略资源ID用来标识一类资源的所有数据。用HTTP Method(请求方法)标识操作类型:
- HTTP GET:查询和获取资源;
- HTTP POST:创建资源;
- HTTP PUT: 修改资源;
- HTTP DELETE: 删除资源。
>>添加更多注解,可完全注解驱动
>>引入HTTP输入输出转换器(HttpMessageConverter)
>>与数据转换、格式化、验证框架无缝集成
>>对静态资源处理提供特殊支持
>>更加灵活的控制器方法签名,可完全独立于Servlet API
三、Spring mvc和Struts的比较
1.机制:spring mvc的入口是Servlet
2.性能:spring会稍微比Struts快。Spring mvc是基于方法的设计,粒度更细。Spring 3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。
3.参数传递:对于Spring mvc,每个方法都对应各自的属性,互不影响。
4.Spring3 mvc的验证也是一个亮点,支持JSR303(JSR 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案。2009 年 12 月 Java EE 6 发布,Bean Validation 作为一个重要特性被包含其中。),处理ajax的请求更是方便,只需一个注解@ResponseBody,然后直接返回响应文本即可。
5.对于线程安全问题的处理:Spring mvc是方法级别的,请求参数什么的都在方法的参数上,因而不存在线程安全问题。
四、Spring mvc常用的一些注解
>>@Controller
第一个Controller:
package com.minx.crm.web.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@RequestMapping("/index")
public String index() {
return "index";
}
}
@Controller注解标识一个控制器,@RequestMapping注解标记一个访问的路径(/index.htm),return "index"标记返回视图(index.jsp);
注:如果@RequestMapping注解在类级别上,则表示一相对路径,在方法级别上,则标记访问的路径。
>>@RequestMapping(value="/index.htm"),这代表映射路径。
>>@RequestParam 注解获取GET请求或POST请求提交的参数。
>>@CookieValue 注解获取Cookie的值。
>>@Autowired 注解实现自动装配
最后,提供一个链接:http://www.oschina.net/question/84460_9608(基于注解的Spring MVC简单入门),讲解的很清楚,大家可以去看看。