zoukankan      html  css  js  c++  java
  • encodeURL() vs encodeRedirectURL()

            当用URL重写方式来管理Session的时候,通过以上两个方法把session ID写到URL中。不同点是:两个方法确定是否需要包含session ID的逻辑不同。在调用HttpServletResponse.sendRedirect前,应该先调用encodeRedirectURL()方法,否则可能会丢失Sesssion信息。

            下面来自于参看J2EE帮助文档。

    • java.lang.String encodeRedirectURL(java.lang.String url),对sendRedirect方法使用的指定URL进行编码。如果不需要编码,就直接返回这个URL。 之所以提供这个附加的编码方法,是因为在redirect的情况下,决定是否对URL进行编码 的规则和一般情况有所不同。所给的URL必须是一个绝对URL。相对URL不能被接收,会抛 出一个IllegalArgumentException。所有提供给sendRedirect方法的URL都应通过 这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行。
    • java.lang.String encodeURL(java.lang.String url),对包含session ID的URL进行编码。如果不需要编码,就直接返回这个URL。Servlet引 擎必须提供URL编码方法,因为在有些情况下,我们将不得不重写URL,例如,在响应对应的 请求中包含一个有效的session,但是这个session不能被非URL的(例如cookie)的手 段来维持。所有提供给Servlet的URL都应通过这个方法运行,这样才能确保会话跟踪能够 在所有浏览器中正常运行。

            实际上看完之后还是不怎么理解,等等学完会话控制再探讨。。。。

  • 相关阅读:
    mysql表的查询(连接查询)练习
    mysql基础语法
    Linux 常用命令整理
    1.django 环境搭建
    2.django 操作笔记
    mysql基础笔记(1)
    VMware复制Linux虚拟机后网络配置
    uC/OS-III 软件定时器(三)
    uC/OS-III 时间管理(二)
    uC/OS-III 时钟节拍(一)
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3422188.html
Copyright © 2011-2022 走看看