首页 > 代码库 > 分布式计算(四)——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)