- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java Web 编程 第十三讲 HTTP重定向 和cookie 目标 HTTP重定向的含义 重定向的HTTP标题语法 从Servlet发送重定向命令 用HTTP重定向平衡Servlet负载 Cookie的含义 Cookie的HTTP标题的语法 用servlet api设置cookie HTTP重定向 HTTP重定向是一个指令集,这些指令包括在HTTP响应的标题中。正是HTTP响应指示浏览器向新的URL发送新的请求 HTTP重定向提供了一种无缝的方法,让用户从一个URL转移到另一个URL “301”属于永久性重定向,而“302”则属于临时性重定向,只有当一个网站或网页在24到48小时之内临时移到其它位置的情况下才能使用302。 不同性质的重定向会对搜索引擎产生影响 实现重定向的HTTP标题语法 2-1 把重定向传递给客户的HTTP响应的标题中有两个关键元素:HTTP状态码和Location标题 HTTP重定向响应使用的状态码要么是“301 Moved Permanently”,要么就是“302 Moved Temporarily”,同时还附带Location标题: 如果客户端收到状态码为301或302的HTTP响应,那么它会立即向Location标题指定的URL请求资源 如果没有Location标题,浏览器就显示状态码信息本身,也可能显示出对该问题比较详细的描述 实现重定向的HTTP标题语法 2-2 以下是一个典型的重定向响应: HTTP/1.1 301 Moved Permanetly Date: …… Server: …… Location: Content-Type: text/html Html headtitle 301 Moved Permanetly/title/head body h1 Moved Permanetly /h1 Documents has moveda href=“”here/a /body/html 从servlet发送重定向 9-1 方法一,手动设置HTTP状态码并把Location标题添加到这个响应中 String newURL=“”; response.setContentType(“text/html”); response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader(“Location”,newURL); PrintWriter out=response.getWriter(); 从servlet发送重定向 9-2 out.println(“html”); out.println(“head”); out.println(“title301 Moved Permanently/title”); out.println(“/head”); out.println(“body”); out.println(“Document moved to a href=/””+newURL+”\”here/a”); out.println(“/body”); out.println(“/html”); out.close(); 从servlet发送重定向 9-3 方法二,使用特殊标记META从HTML文档本身内发送 String newURL=“”; response.setContentType(“text/html;charset=GBK”); PrintWriter out=response.getWriter(); out.println(“html”); out.println(“head”); 从servlet发送重定向 9-4 out.println(“meta HTTP-EQUIV=\”Refresh\” CONTENT=\”0;url=“+newURL+”\””); out.println(“/head”); out.println(“body”); //body内容空白以便使转换看起来是无缝的 out.println(“/body”); out.println(“/html”); out.close 从servlet发送重定向 9-5 HTTP-EQUIV标记不能把响应状态码设置为301或302,因此Location标题在这种情况下就不会起作用。而浏览器必须收到指示才能用新的URL来“刷新”页面。如何解决这一问题? meta HTTP-EQUIV=“Refresh” content=“0; URL=” Meta标记的HTTP-EQUIV属性指示浏览器使用content属性中指定的信息重载页面。 content属性的第一部分(分号前面的部分)指明重载前浏
文档评论(0)