首页 > 代码库 > 分布式计算(四)——Socket通讯与HTTP服务器(3)

分布式计算(四)——Socket通讯与HTTP服务器(3)

1.RESTful Webservice 作为远程调用(RPC),它的输入是什么?输入是什么?输入URL,输出Json或者XML

 

2.有一个 Java 远程函数声明 public Customer getCustomer(String id),把 HTTP 协议输入/输出映射到该函数,至少要申明(annotation)哪些信息?请写出这些 annotation,并简单解释协议与函数的关系。

需要声明 HTTP 协议方法和项目根访问该方法的 URL 路径

@GET

@Path("/customers/{id}/")

事实上,函数实现了协议的功能,协议则定义了函数的内容

 

3.修改 实验1 的 @Path 为 @Path(“/myservice/”),请用 curl -v 给出结果

技术分享

 

 

 

4.简述 GET 与 POST 的区别

GET:从服务器上获取数据;get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到;服务器端用Request.QueryString获取变量的值;get传送的数据量较小,不能大于2KB;get安全性非常低。

 

POST:post是向服务器传送数据;post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,用户看不到这个过程;服务器端用Request.Form获取提交的数据;post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB;post安全性较高。

 

5.在实际应用中 Map<Long, Customer> customers 使用会产生副作用吗?为什么?

会。单实例类必须是多线程友好的。必须考虑类中实例变量(Field)线程共享问题。

 

6.Spring IOC 与 DI 是 java 编程核心内容之一。阅读 Spring IoC 使用详解 用自己的语言解释 IoC 解耦原理。

在项目中加入了容器,容器会实例化对象。通过在beans.xml文件中配置beans来为容器提供依赖注入的。容器会自动为组件推送资源。

 

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" />

10.WADL 的全称。从程序结果返回中截取一段 WADL 内容。

技术分享

 

 

11.输出对象格式协商是 Resquest 的 Header 段的哪个 Field 决定的?

Accept

 

12.JAX-RS 的全称

Java API for RESTful Services

 

13.@Produces 和 @Consumes 的作用

@Produces 用于指定输出格式,参数可以是字符串数组。 如果是一个数组,第

一个是默认输出格式

@Consumes 指定处理输入媒体的类型

分布式计算(四)——Socket通讯与HTTP服务器(3)