在禁用Cookie的浏览器中使用Session
2011-04-01 11:41
447 查看
关键字: java
Java Servlet API 中引用 Session 机制来追踪客户的状态。Servlet API 中定义了
javax.servlet.http.HttpSession 接口,Servlet 容器必须实现这个接口。当一个 Session
开始时,Servlet 容器将创建一个 HttpSession 对象,Servlet 容器为 HttpSession 分配一个唯一标识符,称为
Session ID。Servlet 容器将 Session ID 作为 Cookie 保存在客户的浏览器中。每次客户发出 HTTP
请求时,Servlet 容器可以从 HttpRequest 对象中读取 Session ID,然后根据 Session ID 找到相应的
HttpSession 对象,从而获取客户的状态信息。
当客户端浏览器中禁止 Cookie,Servlet 容器无法从客户端浏览器中取得作为 Cookie 的 Session ID,也就无法跟踪客户状态。
Java Servlet API 中提出了跟踪 Session 的另一种机制,如果客户端浏览器不支持 Cookie,Servlet 容器可以重写客户请求的 URL,把 Session ID 添加到 URL 信息中。
HttpServletResponse 接口提供了重写 URL 的方法:public java.lang.String encodeURL(java.lang.String url)
该方法的实现机制为:
● 先判断当前的 Web 组件是否启用 Session,如果没有启用 Session,直接返回参数 url。
● 再判断客户端浏览器是否支持 Cookie,如果支持 Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url。
我们可以对网页中的链接稍作修改,解决以上问题:
修改前:
<a href=“maillogin.jsp“>
修改后:
<a href=“<%=response.encodeURL(“maillogin.jsp“)%>“>
Java Servlet API 中引用 Session 机制来追踪客户的状态。Servlet API 中定义了
javax.servlet.http.HttpSession 接口,Servlet 容器必须实现这个接口。当一个 Session
开始时,Servlet 容器将创建一个 HttpSession 对象,Servlet 容器为 HttpSession 分配一个唯一标识符,称为
Session ID。Servlet 容器将 Session ID 作为 Cookie 保存在客户的浏览器中。每次客户发出 HTTP
请求时,Servlet 容器可以从 HttpRequest 对象中读取 Session ID,然后根据 Session ID 找到相应的
HttpSession 对象,从而获取客户的状态信息。
当客户端浏览器中禁止 Cookie,Servlet 容器无法从客户端浏览器中取得作为 Cookie 的 Session ID,也就无法跟踪客户状态。
Java Servlet API 中提出了跟踪 Session 的另一种机制,如果客户端浏览器不支持 Cookie,Servlet 容器可以重写客户请求的 URL,把 Session ID 添加到 URL 信息中。
HttpServletResponse 接口提供了重写 URL 的方法:public java.lang.String encodeURL(java.lang.String url)
该方法的实现机制为:
● 先判断当前的 Web 组件是否启用 Session,如果没有启用 Session,直接返回参数 url。
● 再判断客户端浏览器是否支持 Cookie,如果支持 Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url。
我们可以对网页中的链接稍作修改,解决以上问题:
修改前:
<a href=“maillogin.jsp“>
修改后:
<a href=“<%=response.encodeURL(“maillogin.jsp“)%>“>
相关文章推荐
- 禁用Cookie的浏览器使用session
- 如果用户将浏览器的cookie禁用,问session还能使用吗?为什么?如何解决?
- URL重写 浏览器禁用cookie后使用session的方法
- 浏览器禁用cookie后,非共享使用session
- JavaWeb基础 session 当浏览器禁用cookie时,可以使用response.encodeURL传递JSESSIONID
- PHP中浏览器禁用COOKIE时SESSION的安全使用方法
- PHP---浏览器禁用cookie后如何使用session
- 浏览器禁用cookie后,怎么使用session,求解决方案
- 当浏览器的cookie被禁用了,怎么使用session
- 浏览器禁用cookie后,怎么使用session,求解决方案
- 浏览器禁用cookie后,怎么使用session
- 在禁用Cookie的浏览器中使用Session
- 当cookie禁用时怎么使用session技术--URL重写技术
- session依赖于cookie,cookie存储着sessionid。禁用cookie,session是否可以使用。
- 禁用cookie后,如何使用session?
- PHP客户端禁用cookie如何使用session
- session依赖cookie,如果浏览器禁用了cookie呢?
- 使用URL重写解决 Cookie被禁用,导致的用户Session遗失
- 对于不支持cookie的浏览器,使用response.encodeURL方法来使用session
- 对于不支持cookie的浏览器,使用response.encodeURL方法来使用session