- 概述
- HproseContext 类
- getUserData 方法
- getByte 方法
- getInt 方法
- getLong 方法
- getFloat 方法
- getDouble 方法
- getBoolean 方法
- getString 方法
- get 方法
- setByte 方法
- setShort 方法
- setInt 方法
- setLong 方法
- setFloat 方法
- setDouble 方法
- setBoolean 方法
- setString 方法
- set 方法
- ClientContext 类
- getClient 方法
- getSettings 方法
- ServiceContext 类
- clients 字段
- getRemoteMethod 方法
- setRemoteMethod 方法
- getMethods 方法
- setMethods 方法
- isMissingMethod 方法
- setMissingMethod 方法
- isByref 方法
- setByref 方法
- HttpContext 类
- getRequest 方法
- getResponse 方法
- getSession 方法
- getConfig 方法
- getApplication 方法
- TcpContext 类
- getSocketChannel 方法
- getSocket 方法
- WebSocketContext 类
- getSession 方法
- getConfig 方法
概述
Hprose 在客户端和服务器端提供了过滤器和中间件功能,如果用户希望在这些过滤器和中间件传递数据,就会用到 Hprose 上下文对象,另外,用户在服务器事件和服务方法中也可以使用 Hprose 上下文对象来存取环境变量。
Hprose 上下文对象的基类是 HproseContext。
在客户端,有 ClientContext 子类实现。
在服务器端,有 ServiceContext 子类实现。ServiceContext 同时又是 HttpContext、TcpContext 和 WebSocketContext 的父类。
需要注意的是,客户端上下文和服务器端上下文是各自独立的,客户端上下文对象的数据只在客户端的整个调用过程中传递,服务器端上下文对象也只在服务器端的整个调用过程中传递。客户端上下文对象的内容不会传递到服务器端。
另外,每个调用的上下文对象也都是各自独立的,因此在一个调用中设置的上下文数据也不会传递到另一个调用中去。
我们现在来看一下这几个类上都有哪些方法。
HproseContext 类
HproseContext 类的主要功能是提供了一个存取用户数据的上下文。
getUserData 方法
public Map
getByte 方法
public byte getByte(String key); 获取一个 byte 类型的值。当该值未设置时,返回 0.
getShort 方法 public short getShort(String key); 获取一个 short 类型的值。当该值未设置时,返回 0.
getInt 方法
public int getInt(String key); 获取一个 int 类型的值。当该值未设置时,返回 0.
getLong 方法
public long getLong(String key); 获取一个 long 类型的值。当该值未设置时,返回 0L.
getFloat 方法
public float getFloat(String key); 获取一个 float 类型的值。当该值未设置时,返回 0.0f.
getDouble 方法
public double getDouble(String key); 获取一个 double 类型的值。当该值未设置时,返回 0.0d.
getBoolean 方法
public boolean getBoolean(String key); 获取一个 boolean 类型的值。当该值未设置时,返回 false.
getString 方法
public String getString(String key); 获取一个 String 类型的值。当该值未设置时,返回 “”.
get 方法
public Object get(String key); 获取一个对象。当该值未设置时,返回 null.
setByte 方法
public void setByte(String key, byte value); 设置一个 byte 类型的值到 userData 中。
setShort 方法
public void setShort(String key, short value); 设置一个 short 类型的值到 userData 中。
setInt 方法
public void setInt(String key, int value); 设置一个 int 类型的值到 userData 中。
setLong 方法
public void setLong(String key, long value); 设置一个 long 类型的值到 userData 中。
setFloat 方法
public void setFloat(String key, float value); 设置一个 float 类型的值到 userData 中。
setDouble 方法
public void setDouble(String key, double value); 设置一个 double 类型的值到 userData 中。
setBoolean 方法
public void setBoolean(String key, boolean value); 设置一个 boolean 类型的值到 userData 中。
setString 方法
public void setString(String key, String value); 设置一个 String 类型的值到 userData 中。
set 方法
public void set(String key, Object value); 设置一个 Object 类型的值到 userData 中。
ClientContext 类
ClientContext 类的功能是提供了一个存取客户端信息的上下文。
getClient 方法
public HproseClient getClient(); 返回客户端对象本身。
getSettings 方法
public InvokeSettings getSettings(); 返回客户端当前调用的设置。
ServiceContext 类
ServiceContext 类的功能是提供了一个存取服务信息的上下文。
clients 字段
public final HproseClients clients; 只读字段,用来获取一个客户端代理对象。通过该对象,可以实现服务器对客户端的推送操作。后面我们在介绍推送时,在详细介绍 HproseClients 接口上的方法。
getRemoteMethod 方法
public HproseMethod getRemoteMethod(); 获取当前调用对应的 HproseMethod 远程方法对象。
setRemoteMethod 方法
public void setRemoteMethod(HproseMethod method); 设置当前调用对应的 HproseMethod 远程方法对象。用户通常不需要使用该方法,该方法在 Hprose 服务内部会被自动调用,除非你希望替换调用 Hprose 服务解析出来的方法。
getMethods 方法
public HproseMethods getMethods(); 获取非全局发布的 HproseMethod 远程方法对象集。
setMethods 方法
public void setMethods(HproseMethods methods); 设置非全局发布的 HproseMethod 远程方法对象集。该方法在 Hprose 服务内部被调用,用户无需调用。
isMissingMethod 方法
public boolean isMissingMethod(); 返回当前调用是否是 MissingMethod。
setMissingMethod 方法
public void setMissingMethod(boolean missingMethod); 设置当前调用是否是 MissingMethod。该方法在 Hprose 服务内部被调用,用户无需调用。
isByref 方法
public boolean isByref(); 返回当前调用是否是引用参数传递调用。
setByref 方法
public void setByref(boolean byref); 设置当前调用是否是引用参数传递调用。该方法在 Hprose 服务内部被调用,用户无需调用。
HttpContext 类
HttpContext 类的功能是提供了一个存取 HTTP 服务信息的上下文。
getRequest 方法
public HttpServletRequest getRequest(); 返回 HttpServlet 的 request 对象。
getResponse 方法
public HttpServletResponse getResponse(); 返回 HttpServlet 的 response 对象。通常用这个对象来输出一些用户自己定制的头信息,但是不要用它输出内容,否则会影响正常内容的返回。
getSession 方法
public HttpSession getSession(); public HttpSession getSession(boolean create); 返回 HttpServlet 的 session 对象。
getConfig 方法
public ServletConfig getConfig(); 返回 Servlet 的配置。
getApplication 方法
public ServletContext getApplication(); 返回 Servlet 的上下文对象。
TcpContext 类
TcpContext 类的功能是提供了一个存取 TCP 服务信息的上下文。
getSocketChannel 方法
public SocketChannel getSocketChannel(); 返回当前调用所使用的 SocketChannel 对象。
getSocket 方法
public Socket getSocket(); 返回当前调用所使用的 Socket 对象。是 context.getSocketChannel().socket() 的简化写法。
WebSocketContext 类
WebSocketContext 类的功能是提供了一个存取 WebSocket 服务信息的上下文。
getSession 方法
public Session getSession(); 返回 WebSocket 的 javax.websocket.Session 对象。
getConfig 方法
public EndpointConfig getConfig(); 返回 WebSocket 的 javax.websocket.EndpointConfig 对象。