`
rustlingwind
  • 浏览: 21235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

springmvc rest 学习笔记(1)

阅读更多
spring mvc

http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch18s02.html

18.2.1 URI Templates

///////////////////////////////////////////////////////////
RequestMethod.GET
///////////////////////////////////////////////////////////

@RequestMapping("/users/{userid}", method=RequestMethod.GET)
public String getUser(@PathVariable String userId) {
  // implementation omitted...
}


@RequestMapping("/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable("ownerId") String theOwner, Model model) {
  // implementation omitted
}

@RequestMapping("/owners/{ownerId}/pets/{petId}", method=RequestMethod.GET)
public String findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {
  Owner owner = ownerService.findOwner(ownderId); 
  Pet pet = owner.getPet(petId); 
  model.addAttribute("pet", pet); 
  return "displayPet";
}

@Controller
@RequestMapping("/owners/{ownerId}/**")
public class RelativePathUriTemplateController {

  @RequestMapping("/pets/{petId}")
  public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {   
    // implementation omitted
  }
}

method parameters that are decorated with the @PathVariable annotation can be of any simple type such as int, long, Date... Spring automatically converts to the appropriate type and throws a TypeMismatchException if the type is not correct.

///////////////////////////////////////////////////////////
RequestMethod.PUT
///////////////////////////////////////////////////////////

The @RequestBody method parameter annotation is used to indicate that a method parameter should be bound to the value of the HTTP request body. For example,

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body, Writer writer) throws IOException {
  writer.write(body);
}


** Mapping the request body with the @RequestBody annotation

18.2.2 Returning multiple representations

A RESTful architecture may expose multiple representations of a resource. There are two strategies for a client to inform the server of the representation it is interested in receiving.

To support multiple representations of a resource Spring provides the ContentNegotiatingViewResolver to resolve a view based on the file extension or Accept header of the HTTP request.

@Controller
public class ContentController {
   
    private List<SampleContent> contentList = new ArrayList<SampleContent>();
   
    @RequestMapping(value="/content", method=RequestMethod.GET)
    public ModelAndView getContent() {
        ModelAndView mav = new ModelAndView();
        mav.setViewName("content");
        mav.addObject("sampleContentList", contentList);
        return mav;
    }

}

18.2.3 Views

Several views were added in Spring 3 to help support creating RESTful services. They are:

    *

      AbstractAtomFeedView - return an Atom feed
    *

      AbstractRssFeedView - returns a RSS feed
    *

      MarshallingView - returns an XML representation using Spring's Object to XML mapping (OXM) functionality

[Note] Note

Available separately is the JacksonJsonView included as part of the Spring JavaScript project.

18.2.3.2 XML Marshalling View

18.2.4 HTTP Method Conversion

18.2.5 ETag support
这个先略过。

18.2.6 Exception Handling

感觉 spring3 的异常处理还是比较变态的,至少比 struts2 麻烦多了。刚又看到一篇文章:http://www.oschina.net/bbs/thread/13937,难道真的这么变态么?

不过这篇文章看起来还不赖:
http://blog.csdn.net/sinlff/archive/2010/09/09/5872724.aspx

其他:
有人说 springmvc 对静态资源的处理需要自己定制:
http://www.iteye.com/topic/743651

以上只是对spring 3 mvc 的一些粗略的了解。信息渠道主要是 spring3 的官方文档。具体应用方面的知识还非常欠缺。从网上找了些其他的例子:
http://www.iteye.com/topic/748006
http://ttaale.iteye.com/blog/761877
http://mxdba.iteye.com/blog/643168 (用户注册的例子)

这篇文章上有 spring3 rest 的文件上传和一个简单的demo,不错:
http://www.javabloger.com/page/9?author=1

百度贴吧上的一篇 demo:
http://tieba.baidu.com/f?kz=883344164

http://www.blogjava.net/pengo/archive/2010/07/03/325164.html

分享到:
评论

相关推荐

    SpringMVC学习笔记与项目源码

    内容概要:超详细SpringMVC笔记,包含初始SpringMVC,请求与响应,REST风格,SSM整合,表现层数据封装,异常处理器,项目异常处理方案,前后台联调,拦截器等知识点适合人群:学习过Spring课程的人群,初步理解框架...

    springmvc课堂笔记(两天)

    1. **Spring MVC概述**:介绍SpringMVC作为Spring框架的一部分,如何简化Java Web应用程序的开发,以及其与其他MVC框架的区别。 2. **DispatcherServlet**:这是SpringMVC的入口点,负责请求的分发。讲解它如何拦截...

    springmvc学习笔记-前端控制器、上传、异常、开发心得小结等.zip

    本学习笔记将涵盖前端控制器、文件上传、异常处理以及开发过程中的心得小结。 1. **前端控制器(DispatcherServlet)** 前端控制器是SpringMVC的核心组件,负责接收所有HTTP请求,然后根据请求的类型和映射规则...

    传智博客SpringMvc课堂笔记和老师教案

    7. **RESTful API设计**:利用SpringMvc构建符合REST原则的API,实现资源的CRUD操作。 这些笔记和教案将涵盖SpringMvc的各个方面,帮助你深入理解其工作原理和实践技巧,无论你是初学者还是有一定经验的开发者,都...

    springMVC学习笔记

    Spring MVC 是目前最主流的 MVC 框架之一 Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请 求的控制器,而无须实现...支持 REST 风格的 URL 请求 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具 扩展性和灵活性

    springMVC教程(备课笔记)

    1. **SpringMVC基本概念** - **MVC架构**:模型负责业务逻辑,视图负责展示数据,控制器负责接收请求并调用模型进行处理,最后更新视图。 - **DispatcherServlet**:SpringMVC的前端控制器,它负责接收所有请求,...

    SpringMVC笔记

    **SpringMVC笔记** SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨SpringMVC的核心概念、工作原理以及如何在实际项目中应用。 **...

    SpringBoot经典学习笔记

    1. **起步依赖(Starter Dependencies)**:SpringBoot通过starter依赖来简化构建配置,比如`spring-boot-starter-web`用于Web应用,`spring-boot-starter-data-jpa`用于数据库操作,`spring-boot-starter-data-rest...

    springmvc教程

    在文档"springmvc第一天课堂笔记.docx"中,可能会详细讲解Spring MVC的基本概念,包括DispatcherServlet、ModelAndView、视图解析器等。而"springmvc第二天课堂笔记.docx"可能深入讨论文件上传的实现步骤,以及如何...

    Springmvc第一天课堂笔记

    【Springmvc第一天课堂笔记】 Spring MVC 是 Spring 框架的一部分,它是一个基于 Model-View-Controller(MVC)设计模式的Web应用框架。在B/S系统中,MVC模式被广泛采用,其中C(Controller)是控制器,M(Model)...

    基于ssm云的学习笔记系统.zip

    这是一个关于使用SSM(Spring、SpringMVC、MyBatis)和SpringBoot技术栈构建的云学习笔记系统的项目。此项目可能适用于Java开发者的毕业设计,同时也涉及到微信小程序的开发。下面将详细介绍SSM和SpringBoot框架,...

    docs:Java 学习笔记

    Headline 学习文档记录. TODO :party_popper: Java Java 面试题 Java 基础:balloon: Java 进阶:balloon: Java Web:balloon: Mysql ...SpringMVC ...Git 学习笔记 PostWoman 第三方插件 IDE 设置与插件

    springboot学习思维笔记.xmind

    springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...

    尚硅谷SSM整合

    本视频基于Maven+SpringMVC+Spring+MyBatis+Bootstrap的组合,快速开发一个完整的CRUD功能,视频除过对框架组合的基本使用外,还涉及到许多的开发细节:Bootstrap搭建页面,MyBatis逆向工程使用,Rest风格的URI,@...

    自学b站黑马ssm框架思维导图XMind笔记

    在"自学b站黑马ssm框架思维导图XMind笔记"中,我们可以深入学习SSM的核心概念和使用技巧。下面,我们将逐一解析每个文件所涵盖的知识点。 1. **02IoC&DI.xmind** —— 控制反转(IoC)与依赖注入(DI) - IoC:...

    spring学习文档及源码笔记

    这个资源包含的"spring学习文档及源码笔记"是深入理解并掌握 Spring MVC 的宝贵资料。下面,我们将详细探讨 Spring MVC 的核心概念、工作原理以及如何利用它来构建 Web 应用。 1. **Spring MVC 架构** - **...

    基于Springboot的学生读书笔记共享系统源码数据库.doc

    1. **首页**:展示最新的笔记分享、热门话题等,提供快速入口链接至各个功能模块。 2. **个人中心**:用户可以管理个人信息、查看收藏笔记、修改密码等。 3. **用户管理**:仅限管理员操作,包括添加新用户、编辑...

    基于Springboot的学生读书笔记共享系统源码数据库.zip

    这是一个基于Spring Boot技术的学生读书笔记共享系统的源码和数据库项目,主要应用于教育和学习环境,旨在促进学生之间的知识交流和分享。该项目的核心是利用Java语言和Spring Boot框架构建一个高效、稳定且易于维护...

    Eclipse开发分布式商城系统+完整视频代码及文档

    ├─补充1:拔高课程(Redis3.0持久化、集群、MySQL5.6优化、Tomcat7优化) │ │ 打开必读.txt │ │ │ ├─课前资料 │ │ ├─MySQL5.6优化 │ │ │ MySql5.6性能优化.docx │ │ │ │ │ ├─Redis集群 │ ...

    基于java的-21-[计算机毕业设计]基于SSM的游戏论坛平台-源码.zip

    .zip:这可能是一个包含详细说明或源代码的文档,可能是项目的设计文档或者开发者笔记,用于理解项目结构和功能。 2. ??java?-21-[???????]??SSM???????-??\:这可能是项目根目录,包含了整个项目的所有子文件夹和...

Global site tag (gtag.js) - Google Analytics