数据上下文在引擎中的应用

数据上下文主要应用在EOS的页面流引擎和逻辑流引擎中。

说明
页面流引擎、逻辑流引擎、页面流、逻辑流的详细定义请参见《产品介绍》中的"术语表"。

 

在页面流中的应用

在页面流中有3个数据上下文:会话上下文(Session Context)、页面流上下文、请求上下文,如下图所示:

  • 会话上下文数据区
    会话上下文数据区存储的数据是当前用户所在的HTTP会话数据的一个映射。
    开发页面流时可以使用s:XPATH_EXPRESSION来访问会话数据区中的数据,访问会话数据区中表达式的前缀为s:。
  • 请求上下文数据区
    请求上下文数据区中放置的是一个完整的Http Request/Response过程中产生的数据,当EOS的页面引擎接受到一个HTTP Request的请求后,它会将这个请求的Key/Value参数按照规则,转换成一个或者多个Java对象放入到请求上下文数据区中;也可以使用复制图元访问或创建请求上下文数据区中的数据;调用业务逻辑或者服务的返回值也可以设置到请求上下文的数据区中。
    访问请求上下文数据区中的数据可以采用r:XPATH_EXPRESSION或者不带前缀,直接使用XPATH_EXPRESSION访问请求上下文数据区中的数据。
  • 页面流上下文数据区
    页面流上下文数据区存储的是在页面流里定义的变量或者对象,访问页面流上下文的表达式为f:XPATH_EXPRESSION。
    页面流上下文数据区的数据生命周期相当于页面流流程级别的变量,在一个页面流实例中的不同页面、业务逻辑、赋值操作都可以使用页面流上下文中的数据。

在逻辑流中的应用

逻辑流使用到的数据上下文为两个数据区,包括MUO上下文数据区和逻辑流上下文数据区。

  • MUO上下文数据区
    MUO上下文数据区中存放的是受管用户数据对象(Managed User Object,英文缩写为MUO),访问的方式采用m:XPATH_EXPRESSION样式的表达式来访问和更新数据。
    在逻辑流中涉及用户数据(HttpSession)传递的过程时,因只允许对用户的部分数据有存取权限,这时就需要根据session中的部分数据构造一个受控的用户数据对象,用户只能对该受管用户数据对象进行操作。
  • 逻辑流上下文数据区
    逻辑流上下文数据区和页面流的请求上下文数据区比较类似,如果把一个逻辑流比作是一个Java方法,那么逻辑流上下文数据区中的数据包含的是这个Java方法传入的参数,以及这个方法中定义的成员变量。
    访问逻辑流请求上下文的数据直接采用XPATH_EXPRESSION访问,不需要加任何前缀。

 

你可能感兴趣的:(SOA)