快速业务通道

走上开放之路: ASP开发人员的J2EE基础(下) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
etMessage());     }   }

JSP 页面和 sevlet 中的会话之间的区别在于,在 sevlet 中,您必须显式地创建和检索 它,而在 JSP 页面中,这是自动为您完成的。注意 pageContext 仅适用于 JSP 页面,而不 适用于 servlet;还要注意 servlet API 如何提供了两个要覆盖的方法来处理 GET 和 POST HTTP 请求。这个例子提供了一个名为 performTask() 的通用方法来同时处理这两种类型的 请求,不过您可以基于触发 servlet 调用的 HTTP 类型而使用不同的处理。

走上开放之路: ASP开发人员的J2EE基础(下)(10)

时间:2011-04-09 IBM Jeff Wilson

编程式导航

在代码中从一个资源导航到另一个资源的情况在 Web 应用程序中是相当普遍的。导航与 应用程序状态密切相关,因为当您在一系列资源中导航时,可能需要维护状态信息。与 ASP 比较而言,J2EE 提供更多的选项进行编程式导航。

ASP 使用 RESPONSE.REDIRECT() 函数支持编程式导航。J2EE 支持以下形式的编程式导航 :

使用 HttpServletResponse.sendRedirect() 方法 :这会导致向客户端浏览器返回一个 特殊的 HTTP 返回代码(连同要重定向的页面),然后客户端浏览器又对重定向的目标发出 新的请求。如果需要在这两个请求之间共享数据,那就必须将数据存储在会话或应用程序范 围中。这类似于 ASP 中的 RESPONSE.REDIRECT() 函数。

使用 servlet 中的 RequestDispatcher.forward() 方法或 JSP 页面中的特殊标签: 这 会导致调用此方法的资源终止,同时终止对作为转发目标的资源的调用。对客户端浏览器来 说,这看起来就像是单个请求。例如,如果将请求从 servlet 转发到 JSP 页面,则您可能 要附加该 servlet 中的某些处理结果,以便这些结果可以在 JSP 页面中显示出来。

使用 RequestDispatcher.include() 方法或 JSP 页面中的特殊标签 :这会导致调用此 方法的资源挂起,同时挂起对目标资源的调用。当目标资源完成时,挂起的资源又继续处理 。对客户端浏览器来说,这看起来就像是单个请求。

清单 33 包括了 JSP 页面中这些导航方法的一些例子。

清单 33. JSP 页面中的编程式导航

<!-- This scriptlet shows how you can redirect to another resource - -> <% response.sendRedirect("anotherPage.jsp"); %> <!-- This special JSP tag allows you to forward the request to another resource --> <jsp:forward page="anotherPage.jsp"/> <!-- This special JSP tag allows you to include another resource                as part of the processing of this page --> <jsp:include page="anotherPage.jsp" flush="true"/>

清单 34 展示了 servlet 中这些导航方法的一些例子。

清单 34. servlet 中的编程式导航

public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {   ...    // Redirecting to another resource response.sendRedirect("anotherResource.jsp");   ... } // This code snippet shows the use of a RequestDispatcher to forward to another resource public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {   ...   // Get a RequestDispatcher instance   RequestDispatcher rd = getServletContext().getRequestDispatcher ("anotherResource.jsp");   // Forward the request   rd.forward(request, response);   ... } // This code snippet shows the use of a RequestDispatche

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号