分布式计算学习笔记之四:RESTfulWebservice 编程
来源:互联网 发布:域名注册实名认证 编辑:程序博客网 时间:2024/06/07 08:24
1. RESTful Webservice 作为远程调用(RPC),它的输入是什么?输出是什么?
※输入时GET、POST、PUT、DELETE;输出是PRODUCE。
2. 有一个 Java 远程函数声明 public Customer getCustomer(String id),把HTTP 协议输入/输出映射到该函数,至少要申明(annotation)哪些信息?请写出这些annotation,并简单解释协议与函数的关系。
※@GET、@Path(“customers/{id}”).协议类似于一个接口,让客户端的函数与服务端交互的时候,有一个统一的标准,常见的协议方法有GET、POST、PUT、DELETE等,@Path(“/customers/{id}/”)项目根访问该方法的 URI路径,其中 {ID}是一个变量模板, @PathParam(“id”)可以获取该变量。
3. 修改 实验1 的 @Path为 @Path(“/myservice/”),请用curl -v 给出结果
※修改路径,
命令行下,curl -v http://localhost:9000/myservice/customers/123
结果如下:
4. 简述 GET 与 POST 的区别
※GET用于获取信息,不会修改服务端的数据,是数据安全的;POST可以向服务端发送修改请求,从而修改服务端的数据。
5. 在实际应用中 Map<Long, Customer> customers使用会产生副作用吗?为什么?
※实际应用中可能会产生副作用,例如customer的id不唯一时,会导致识别错误,又或者在customer数据被删除后,关联数据不能及时删除。
6. Spring IOC 与 DI是 java编程核心内容之一。阅读 Spring IoC使用详解 用自己的语言解释IoC 解耦原理。
※传统应用程序需要客户端主动去创建用户类,用户信息类,并将用户信息类注入到用户类。有了IoC容器后,上述工作就由IoC完成,并且由IoC来管理它们的生命周期。这意味着,创建和查找依赖的控制权交给了容器,由容器进行注入组合对象,所以对象和对象之间是松散耦合,便于测试和功能复用。
7. (!)使用 Maven 构建(6)给出的案例,项目名称IOC_test
8. 在 Spring 试验中, 阅读 beans.xml, 写出申明根资源的关键内容
<jaxrs:server id="customerService" address="/service1">
<jaxrs:serviceBeans>
<ref bean="customerBean" />
</jaxrs:serviceBeans>
</jaxrs:server>
<bean id="customerBean" class="demo.jaxrs.server.CustomerService" />
9. (!)尝试写一个根资源类 Hello,用GET 方法实现String SayHello() 远程服务。请给出Hello类代码,增加根资源的配置(不是修改)XML内容,curl测试结果。
package com.example.jaxrs;
@javax.ws.rs.Path("exampleWithInjection")public class StringResource {
public StringResource() {
/* use a no-argument constructor */
}
@javax.ws.rs.core.Context
private javax.ws.rs.core.HttpHeaders httpHeaders;
@javax.annotation.PostConstruct
private void myPostConstruct() {
/* read from the httpHeaders if required */
}
@javax.ws.rs.GET
@javax.ws.rs.Produces(javax.ws.rs.core.MediaType.TEXT_PLAIN)
public String SayHello() {
return "Hello world!";
}}
10. WADL 的全称。从程序结果返回中截取一段 WADL内容。
※Web Application Description Language
11. 输出对象格式协商是 Resquest 的 Header 段的哪个Field 决定的?
※Content-Type
12. JAX-RS 的全称
※Java API for RESTful Web Services
@Produces 和 @Consumers的作用
※@Produces用于指定输出格式,参数可以是字符串数组;@Consumers指定处理输入媒体的类型,例如 “Content-Type: application/json”。
- 分布式计算学习笔记之四:RESTfulWebservice 编程
- 分布式计算学习笔记之三:Web编程方式与 Java Web编程基础
- hadoop学习笔记之分布式计算框架
- 分布式计算学习笔记
- 《ASP网络编程》学习笔记之四
- 《网页编程》学习笔记之四
- erlang学习笔记:分布式编程
- Zookeeper学习笔记(四)分布式锁
- linux网络编程学习笔记之四 -----多线程并发服务端
- 分布式计算学习笔记之二:Socket通讯与HTTP服务器
- OpenMP编程学习笔记四
- shell编程学习笔记四
- ANSYS12分布式计算笔记
- 分布式计算基础【笔记】
- JSP学习笔记之四
- C++学习笔记之四
- JAVA学习笔记之四
- Mysql学习笔记之四
- MySQL 数据库及表的创建
- AES加密
- js闭包的用途
- WebView使用详解
- SetWindowsHookEx 详解(三)
- 分布式计算学习笔记之四:RESTfulWebservice 编程
- com.google.gson string to JsonObject
- 项目四
- Spring MongodbTemplate 查找10公里范围内的目标(以车辆为例)
- linux安装jdk(2)
- 博客搬家啦
- 基本数据类型和String等对equals重写了,其他的equals未重写的例子
- 关于C++的<iostream>和C的scanf()、printf()
- UEditor chrome 点击上传文件选择框会延迟几秒才会显示 反应很慢