response.encodeURL的用法

简介: Java Servlet API 中引用 Session 机制来追踪客户的状态。Servlet API 中定义了 javax.servlet.http.HttpSession 接口,Servlet 容器必须实现这个接口。
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“)%>“>
今天碰到了一道华为的面试(笔试)题目,如下,希望能帮助大家更好的理解这一点!

Which method is used by a servlet to place its session ID in a URL that is written to the servlet’s response output stream?

(译:那个方法是servlet用于将其session ID入在一个URL中,该URL写入servlet的响应输出流)

A. The encodeURL method of the HttpServletRequest interface.

B. The encodeURL method of the HttpServletResponse interface.

C. The rewriteURL method of the HttpServletRequest interface.

D. The rewriteURL method of the HttpServletResponse interface.

目录
相关文章
|
应用服务中间件 API
08JavaWeb基础 - Response类
08JavaWeb基础 - Response类
52 0
|
5月前
|
Java 缓存
response.setHeader用法总结
response.setHeader用法总结
|
5月前
|
XML JSON 前端开发
response.setcontenttype用法详解
response.setcontenttype用法详解
|
6月前
|
JSON 数据格式
这个错误信息表示在执行`requests.post(url, data=data, headers=head).json()`时出现了问题
这个错误信息表示在执行`requests.post(url, data=data, headers=head).json()`时出现了问题
80 2
|
11月前
|
JSON 缓存 Java
修改Request与Response中的内容
修改Request与Response中的内容
88 0
jmeter获得Response Headers,Response Body里的值
jmeter获得Response Headers,Response Body里的值
280 0
jmeter获得Response Headers,Response Body里的值
|
Python
Flask - 访问返回字典的接口报错:The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a dict.
Flask - 访问返回字典的接口报错:The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a dict.
1526 0
Flask - 访问返回字典的接口报错:The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a dict.
|
Java
Request和Response对象详解
Request和Response对象详解
213 0
Request和Response对象详解