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都应通过这个方法运行,这样才能确保会话跟踪能够 在所有浏览器中正常运行。
实际上看完之后还是不怎么理解,等等学完会话控制再探讨。。。。
encodeURL() vs encodeRedirectURL()的更多相关文章
- Servlet/JSP-06 Session
一. 概述 Session 指客户端(浏览器)与服务器端之间保持状态的解决方案,有时候也用来指这种解决方案的存储结构. 当服务器端程序要为客户端的请求创建一个 Session 时,会首先检查这个请求里 ...
- Servlet&jsp基础:第四部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- HeadFirst Jsp 06 (会话管理)
现在我们希望能够跨多个请求保留客户特定的状态. 现在, 模型中的业务只是检查请求中的参数, 并返回一个响应(建议), 应用中没有谁记得在当前请求之前与这个客户之间发生过什么. 与一个客户的整个会话期间 ...
- 浏览器禁用Cookie,基于Cookie的会话跟踪机制失效的解决的方法
当浏览器禁用Cookies时.基于Cookie的会话跟踪机制就会失效.解决的方法是利用URL重写机制跟踪用户会话. 在使用URL重写机制的时候须要注意.为了保证会话跟踪的正确性,全部的链接和重定向语句 ...
- Session笔记
一.Session机制 session机制採用的是在server端保持 HTTP 状态信息的方案 . server使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息. 当程序须要为某个cli ...
- java_web学习(8)会话与状态管
HTTP简介 WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议.HTTP是hypertext transfer protocol(超文本传输协 ...
- 分布式cookie-session的实现(spring-session)
分布式cookie-session的实现(spring-session) 本文使用的spring-session版本为 1.0.0,地址为: https://github.com/spring-pro ...
- Java中的会话管理——HttpServlet,Cookies,URL Rewriting(译)
参考谷歌翻译,关键字直接使用英文,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url ...
- Java Web高级编程(二)
使用会话维持状态 一.会话 为了实现关联同一个用户端的多个请求和这些请求之间数据的共享,需要用到会话,会话用于维持请求和请求之间的状态.从服务器的角度,当用户的Web浏览器打开第一个链接到服务器的套接 ...
随机推荐
- 聊一聊 Android 6.0 的运行时权限
权限一刀切 棉花糖运行时权限 权限的分组 正常权限 正常权限列表 特殊权限危险权限 请求SYSTEM_ALERT_WINDOW 请求WRITE_SETTINGS 必须要支持运行时权限么 不支持运行时权 ...
- Cocos2d-x 3.1.1 学习日志9--一“上一下其乐无穷”游戏开发系列一
下载地址:http://app.mi.com/search?keywords=%E4%B8%80%E4%B8%8A%E4%B8%80%E4%B8%8B%E5%85%B6%E4%B9%90%E6%97% ...
- 浅析@Deprecated
如果有一个方法你觉得不合适,想要删除,但是别人已经引用了很多次,删除了会对他人的工作产生影响,那该怎么办? 加入@Deprecated注解即可,看代码: @Test public void test1 ...
- Java 反射学习笔记
要学反射,先要了解Class这个类,Class是所有Java类的一个总称,Class的实例中存储的是一个类的字节码,获取Class的实例有三种方式: System.class new Date().g ...
- Android(java)学习笔记189:eclipse 导入项目是提示:某些项目因位于工作空间目录中而被隐藏。
导致这个错误的原因是工程重名了: 并不是仅仅指文件夹重名,相信很多人也曾经修改过文件夹的名称,可惜没什么用处,关键是修改工程里面的一个文件!也就是.project这个文件! 用记事本打开,修改一下&l ...
- 以非root权限安装nginx及运行
本章主要讲如何在无root权限(包含无sudo权限)条件下于centos命令行中安装nginx以及在大于1024的端口(这里用8080)上运行. 1. 安装 两种方式,一是下载预编译好的rpm包安装, ...
- 通过扫描包路径获取包内class
public static Set<Class<?>> getClasses(ClassLoader classLoader, String pack) { Set<Cl ...
- Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群
Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群 >>>>>>>>>>>>>> ...
- 1,php概述
学习了这么久的php,今天就跟着这本书,一章一章的去复习一下php的基础知识,个人理解如下:php是一门编写动态语言的web语言,能编写web语言的有好几种,但是人们都喜欢php,第一,php是开源的 ...
- MITMF使用import error
安装问题: 1.ubuntu 14.04.安装使用capstone时候,提示出现import error:ERROR: fail to load the dynamic library. 解决方法:将 ...