HTTP请求重定向和包含.docx

HTTP请求重定向和包含.docx

ID:59254914

大小:90.33 KB

页数:9页

时间:2020-09-08

HTTP请求重定向和包含.docx_第1页
HTTP请求重定向和包含.docx_第2页
HTTP请求重定向和包含.docx_第3页
HTTP请求重定向和包含.docx_第4页
HTTP请求重定向和包含.docx_第5页
资源描述:

《HTTP请求重定向和包含.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使Web应用程序如此强大的原因之一是它们彼此链接和聚合信息资源。J2EE 平台为特定URL的 Web组件提供三种相互关联、 但是有区别的方式,以便使用其他URL的数据来创建响应。本技巧讨论了如何使用JavaServletAPI来实现请求转发、URL重定向和包含。请求转发请求转发允许组件发送请求到某个应用程序中的URL,并通过同一应用程序中的不同URL中的组件来处理该请求。这种技术通常用于Web层控制器servlet, 它检查Web请求中的数据,并将请求定向到合适的组件,以便进行处理。Servlet可以使用javax.servlet.Reque

2、stDispatcher.forward方法来转发它所收到的HTTP 请求。接收转发请求的组件能够处理该请求并生成一个响应, 或者它还可以将请求转发到另一个组件。 最初请求的ServletRequest 和ServletResponse 对象被传递给转发目标组件。这允许目标组件访问整个请求上下文。请求可以只转发给同一应用程序上下文根中的组件,而不在应用程序之间转发。表单通过POST方法发送给 DispatchDemoServlet, 将完成本技巧中三个例子的处理。请求转发由servlet 的doForward 方法处理,代码如下。  prot

3、ectedvoiddoForward(HttpServletRequestreq,                          HttpServletResponseres)    throwsIOException,ServletException{    Stringname=req.getParameter("name");    //Lookupthesitebyname    Stringurl=(String)_p.get(name);    if(url==null){       url="errorPage.html"

4、;    }    //Gettherequestdispatcher--requestwillbe     //dispatchedtothisURL.    RequestDispatcherrd=       req.getRequestDispatcher(url);    //ForwardtorequestedURL    rd.forward(req,res); }POST参数“name”指出用户请求的文件的符号名。方法在散列表中查找该文件的URL(散列表从应用归档文件中的属性文件装载) 。然后方法从 HttpServletRe

5、quest 对象中获得 RequestDispatcher 对象。 RequestDispatcher 由Web容器来实现。调用rd.forward指示Web容器调用指定URL的Web组件。请求的结果是该URL的组件返回的任何内容。URL重定向URL 重定向类似于请求转发, 但也有一些重要的区别。Web组件可以将请求重定向到任一URL, 而不仅仅是同一应用上下文中的URL。但最初请求的内容(比如POST参数)丢失了。这是因为服务器与重定向请示的过程无关,这与请求转发的情况是一样的 。URL通过使用HTTPMETA头部的Refresh功能来完成

6、重定向工作。本质上就是,服务器返回一个META标记,告诉浏览器直接去其他地方。这时,最初URL所附带POST数据就会丢失。URL 重定向可以直接通过操作HTTP 头部来完成, 但首选的方式还是使用方法javax.servlet.ServletResponse.sendRedirect。这个方法的唯一参数就是重定向的目标URL 。URL 重定向的示例代码使用了示例应用程序中index.html 文件的第二个表单。用户从java.sun.com网站的几个URL中选择一个, 然后单击GO。本例子对应于Tip2 表单中的第2项。该表单将选定的表单名作

7、为POST方法的参数发送给 DispatchDemoServlet,它再调用方法doRedirect,代码如下所示: protectedvoiddoRedirect(HttpServletRequestreq,                           HttpServletResponseres)    throwsIOException,ServletException{    Stringname=req.getParameter("name");    //Lookupthesitebyname    Stringurl=(

8、String)_p.get(name);    if(url==null){       url="errorPage.html";    }     //Redi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。