Servlet和JavaServer Page使用介绍
创始人
2024-04-12 08:41:14
0

通过使用 Servlet和JavaServer Pages来集成瘦客户机与 MQSeries。这种集成需要用户详细填写 HTML 表单,并从该表单中收集用户数据然后通过一个消息队列将数据发送到后端应用程序。接下来后端应用程序将处理该表单数据并通过该消息队列发回一个应答。该应答需要在浏览器中显示。

本文讨论了瘦客户机、Servlet 及消息队列间的交互,并演示了如何在该解决方案中使用 IBM 提供的不同产品。读者应该了解Java语言并熟悉 WebSphere 和 MQSeries。

体系结构概述 下图给出了所建议的解决方案体系结构。它涉及三层方法。

解决方案体系结构

解决方案体系结构

处理流程

用户填写 HTML 表单。 将表单发送给 Servlet。 Servlet 将该 HTTP 请求转换成一个 MQSeries 消息,并将其放入一个队列。 后端应用程序处理该消息,然后通过消息队列发回一个应答。 Servlet 从队列中检索消息,并将其存放在一个 Java Bean 中。 然后调用编译过的Servlet和JavaServer Page并动态生成结果 HTML 页面。 JSP 从 Java Bean 检索该页面的消息内容,将其合并到 HTML,然后将结果页面回显在浏览器上。

该解决方案利用了下列技术:

HTML/HTTP、Java Beans、Servlet和JavaServer Page、Web 服务器、消息队列

该解决方案集成了下列产品:

Netscape 4.0/Internet Explorer 3.0 或更高版本 、IBM HTTP Server 3.0 、WebSphere 2.02 、JDK 版本 1.1.7 、MQSeries 版本 5.0

连接至 MQSeries

我们选择 Servlet 模型是因为该模型相对于 CGI 有许多优点。Servlet 是扩展了 Web 服务器的功能的标准服务器端 Java 应用程序。Servlet 完全运行在 Web Server 上,不会将任何东西下载到浏览器。在装入期间或初始请求期间会将 Servlet 装入服务器的地址空间。在初始请求之后,Servlet 非常迅速地作出响应。Servlet 的 init 方法为 Servlet 的运行做好了准备。每个 Servlet 装入只调用一次 init 方法。在 init 方法中,按如下建立到 MQSeries 队列管理器的连接:

  1. public void init(ServletConfig config)  
  2. throws ServletException {  
  3. super.init(config);  
  4. try {  
  5. //Create a connection to the queue manager  
  6. qMgr = new MQQueueManager("NC.QManager");  
  7. }  
  8. catch (MQException ex)  
  9. {  
  10. System.out.println  
  11. ("An MQ error occurred in init(): Completion code "  
  12. + ex.completionCode +  
  13. " Reason code" + ex.reasonCode);  
  14. try  
  15. {  
  16. if (qMgr != null)  
  17. //Disconnect from the queue manager  
  18. qMgr.disconnect();  
  19. }  
  20. catch (MQException e)  
  21. {  
  22. System.out.println("An MQ error occurred "  
  23. + "in init() while disconnecting:" + " Completion code " +  
  24. e.completionCode + " Reason code" + e.reasonCode);  
  25. }  
  26. }  

由于只须建立一次到 MQSeries 的队列管理器的连接,并且建立连接需要很长时间,因此 init 方法是执行这一过程的理想位置。然后对该 Servlet 的后继调用会执行得更快。WebSphere 也允许用户通过使用管理 GUI 预先装入 Servlet,因此随着队列管理器连接的建立,Servlet 做好了准备,接下来就等着传递任何消息。

如果在 init 方法中捕获到 MQException,则上述代码会与队列管理器断开连接。结果是,为了建立与队列管理器的连接,用户将不得不重新装入 Servlet。

为了使 Servlet 与 MQSeries 对话,必须使用 MQSeries Bindings for Java。MQSeries Bindings for Java 使您能够用 Java 语言编写 MQSeries 应用程序。这些应用程序直接与 MQSeries 队列管理器通信以提供高生产率、高性能开发选项。它们使用 Java 本机方法直接调用到现有的队列管理器 API 而不是通过 MQSeries 服务器连接通道进行通信;这为 Java MQSeries 应用程序提供了更佳性能。在代码中我们必须导入“com.ibm.mqbind.*”包。MQSeries 的 java 类也应该位于 WebSphere 的类路径中;这将允许 WebSphere 应用程序服务器定位 MQSeries Bindings for Java 包。

【编辑推荐】

  1. 详解Apache Servlet的安装
  2. 优化Servlet配置为web.xml瘦身
  3. 如何让XML来配置Servlet
  4. 解决Servlet JSP页面乱码问题
  5. Servlet和JSP的安全问题

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...