HTTP请求重定向和包含.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HTTP请求重定向和包含

使Web应用程序如此强大的原因之一是它们彼此链接和聚合信息资源。J2EE?平台为特定URL的?Web组件提供三种相互关联、?但是有区别的方式,以便使用其他URL的数据来创建响应。本技巧讨论了如何使用Java Servlet API来实现请求转发、URL重定向和包含。请求转发请求转发允许组件发送请求到某个应用程序中的URL,并通过同一应用程序中的不同URL中的组件来处理该请求。这种技术通常用于Web层控制器servlet,?它检查Web请求中的数据,并将请求定向到合适的组件,以便进行处理。Servlet可以使用javax.servlet.RequestDispatcher.forward方法来转发它所收到的HTTP?请求。接收转发请求的组件能够处理该请求并生成一个响应,?或者它还可以将请求转发到另一个组件。?最初请求的ServletRequest?和ServletResponse?对象被传递给转发目标组件。这允许目标组件访问整个请求上下文。请求可以只转发给同一应用程序上下文根中的组件,而不在应用程序之间转发。表单通过POST方法发送给?DispatchDemoServlet,?将完成本技巧中三个例子的处理。请求转发由servlet?的doForward?方法处理,代码如下。??protected void doForward(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { String name = req.getParameter(name); // Look up the site by name String url = (String)_p.get(name); if (url == null) { url = errorPage.html; } // Get the request dispatcher -- request will be? // dispatched to this URL. RequestDispatcher rd =?req.getRequestDispatcher(url); // Forward to requested URL rd.forward(req, res); }POST参数“name”指出用户请求的文件的符号名。方法在散列表中查找该文件的URL (散列表从应用归档文件中的属性文件装载)?。然后方法从?HttpServletRequest?对象中获得?RequestDispatcher?对象。?RequestDispatcher?由Web容器来实现。调用rd.forward指示Web容器调用指定URL的Web组件。请求的结果是该URL的组件返回的任何内容。URL重定向URL?重定向类似于请求转发,?但也有一些重要的区别。Web组件可以将请求重定向到任一URL,?而不仅仅是同一应用上下文中的URL。但最初请求的内容(比如POST参数)丢失了。这是因为服务器与重定向请示的过程无关,这与请求转发的情况是一样的?。URL通过使用HTTP META头部的Refresh功能来完成重定向工作。本质上就是,服务器返回一个META标记,告诉浏览器直接去其他地方。这时,最初URL所附带POST数据就会丢失。URL?重定向可以直接通过操作HTTP?头部来完成,?但首选的方式还是使用方法javax.servlet.ServletResponse.sendRedirect。这个方法的唯一参数就是重定向的目标URL?。URL?重定向的示例代码使用了示例应用程序中index.html?文件的第二个表单。用户从网站的几个URL中选择一个,?然后单击GO。本例子对应于Tip 2?表单中的第2项。该表单将选定的表单名作为POST方法的参数发送给?DispatchDemoServlet,它再调用方法doRedirect,代码如下所示: protected void doRedirect(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { String name = req.getParameter(name); // Look up the site by name String url = (String)_p.get(name); if (url == null) { url = errorPage.html; } // Redirect request res.sendRedirect(url); }以上是使用doForward?方法来完成请求转发的例子,?doR

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档