面向Web的JMS应用系统(二)

2014-11-23 23:26:13 · 作者: · 浏览: 2
在数据流模型中,XML元素和XML文档都由JDOM API建立,在发送方,通过用户提交的表单取得名/值对若干,这些数据经过JDOM方法处理生成XML元素对象,元素对象被作为消息的消息体发往主题存储;在接收方,持久订阅者接收到若干XML元素对象后,继续通过JDOM方法建立XML文档对象。且XML文档向Web浏览器输出也依赖于JDOM的XMLOutputte对象方法:

XMLOutputter serializer=new XMLOutputter();
...
PrintWriter out=response.getWriter(); // out 是ServletResponse的输出流对象
serializer.output(xmldoc,out); //通过out把XML文档输出到页面




3.2 XSL定义XML文档显示样式


XSL是可扩展的样式单语言,通知集的XML文档和反馈集的XML文档都有相关的XSL文档决定其页面显示,如通知集XML文档的XSL样式定义如下:

< xml version="1.0" encoding="GBK" >





...







...







3.3 Servlet间数据的传递
3.3.1 注册/登录


用户的一些处理工作需要注册/登录后才能进行,因此注册/登录的获准信息必须能在有关Servlet 组件之间传递。ServletContext 对象可设置和读取属性,使不同Servlet之间相互通信,在 系统中被用于有关组件对用户身份的验证。

3.3.2 通知与反馈的数据关联


每一条征求意见性通知都有一个相关联的反馈集合,关联可通过设置消息属性实现。JMS消息(包括通知类消息)都有系统级JMSMessageID属性,其值是唯一的,可用于表征每一条征求意见性通知,因此对任何反馈消息也可以设置一个应用级属性(CWNF中是FeedbackSN),让它取与之相关联的征求意见性通知的JMSMessageID属性值。这样就建立了两者间的数据关联。

因此数据流模型"③通知接收方到反馈接收方: XSL显示(含表单)→主题(存储)"的实现流程如下:用户在页面上选择一条征求意见性通知后,该通知的JMSMessageID属性值将被传递给FeedbackerSubServlet组件,该组件将使用这个属性值去匹配从主题取出的反馈消息的FeedbackSN属性,从而筛选出相关联的反馈消息。

那么一条征求意见性通知的JMSMessageID属性值又如何传递给FeedbackerSubServlet组件呢?通过ServletContex