作用时:
session对象能和客户建立意义对应的关系依赖于客户的浏览器是否支持cookie,如果客户的浏览器不支持的话,那么客户再不同网页之间的session对象可能时互不相同的,因为服务器无法将ID存放到客户端,就不能建立session对象和客户的一一对应关系。可以通过URL重写来实现session对象的唯一性。所谓URL重写就是当客户从一个页面重新连接到一个页面时,通过向这个新的URL添加参数,把session对象的id传过去,这样能够保证session对象是完全相同的。可以使用response对象调用encodeURL()或encodeRedirectURL()方法实现URL重写。
eg:
Stringstr=response.encodeRedirectURL("hope.jsp");
连接目标写成:<%=str%>即可。
encodeURL()是本应用级别的,encodeRedirectURL()是跨应用的。
以下时网上搜索到的解析:
第一种解释:
作用:
Encodes the specified URL for use with redirect( )by adding an necessary session ID.
Example
Response.redirect( Response( ).encodeRedirectURL( url ))
第二种解释:
1.response.encodeRedirectURL(url)是一个进行URL重写的方法, 使用这个方法的作用是为了在原来的url后面追加上Jsessionid 。 目的是保证即使在客户端浏览器禁止了cookie的情况下,服务器端仍然能够对其进行事务跟踪.
2.response.sendRedirect(url) 是一个url重定向的方法, 服务器端的通过该方法,“告诉”客户端的浏览器去访问url所指向的资源
第三种解释:
对于要进行跳转时把url
response.sendRedirect(response.encodeRedirectURL("MatchList.jsp"));
而我一般记得就是response.sendRedirect("MatchList.jsp")
不知道二者谁对,如果都对,其区别是什么呢?
后来自己搜索得到答案:
对sendRedirect方法使用的指定URL进行编码。如果不需要编码,就直接返回这个URL。之所以提供这个附加的编码方法,是因为在redirect的情况下,决定是否对URL进行编码的规则和一般情况有所不同。所给的URL必须是一个绝对URL。相对URL不能被接收,会抛出一个IllegalArgumentException。
所有提供给sendRedirect方法的URL都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行 。
虽然有了答案,还是记录下