[关闭]
@nextleaf 2018-09-20T00:38:43.000000Z 字数 1933 阅读 1105

2018-09-18 工作日志(2)

JSP Java Servlet cookie session


  1. //String str= URLEncoder.encode("中文","utf-8");
  2. Cookie[] cookies = request.getCookies();
  3. if (cookies != null) {
  4. for (Cookie cooky : cookies) {
  5. out.print(cooky.getName() + ":" + cooky.getValue() + "<br>");
  6. }

使用JSP删除Cookie

  1. 获取一个已经存在的cookie。
  2. 将cookie的有效期设置为0。
  3. 将这个cookie重新添加进响应头中。

第二次运行该页面时,名为“huang”的cookie不见了。

  1. Cookie[] cookies = request.getCookies();
  2. //cookie删除
  3. for (Cookie c : cookies) {
  4. if (c.getName().equals("huang")) {
  5. //修改生命时间
  6. c.setMaxAge(0);
  7. response.addCookie(c);
  8. break;
  9. }
  10. }

下午

cookie的路径

在默认情况下,只有与创建 cookie 的页面处于同一个目录或在创建cookie页面的子目录下的网页才可以访问。
cookie路径的作用是决定浏览器访问服务器的某个资源时,需要将浏览器端保存的那些Cookie归还给服务器

session

一类用来在客户端和服务器之间保持状态的解决方案
术语session

Servlet Session维持方式

  1. cookie
    一个 Web 服务器可以分配一个唯一的 session 会话 ID(上述的JSESSIONID)作为每个 Web 客户端的 cookie,对于客户端的后续请求可以使用接收到的 cookie 来识别。
  2. 隐藏的表单字段
  1. <input type="hidden" name="sessionid" value="12345">

但是点击常规的超文本链接(<A HREF...>)不会导致表单提交
3. URL 重写
4. HttpSession 对象
Servlet容器使用HttpSession接口来创建一个 HTTP 客户端和 HTTP 服务器之间的 session 会话。
通过调用 HttpServletRequest 的公共方法 getSession() 来获取 HttpSession 对象:

  1. //在向客户端发送任何文档内容之前调用 request.getSession()
  2. HttpSession session = request.getSession();

HttpSession 对象中可用的几个重要的方法

序号 方法 & 描述
1 public Object getAttribute(String name)
该方法返回在该 session 会话中具有指定名称的对象,如果没有指定名称的对象,则返回 null。
2 public Enumeration getAttributeNames()
该方法返回 String 对象的枚举,String 对象包含所有绑定到该 session 会话的对象的名称。
3 public long getCreationTime()
该方法返回该 session 会话被创建的时间,自格林尼治标准时间 1970 年 1 月 1 日午夜算起,以毫秒为单位。
4 public String getId()
该方法返回一个包含分配给该 session 会话的唯一标识符的字符串。
5 public long getLastAccessedTime()
该方法返回客户端最后一次发送与该 session 会话相关的请求的时间自格林尼治标准时间 1970 年 1 月 1 日午夜算起,以毫秒为单位。
6 public int getMaxInactiveInterval()
该方法返回 Servlet 容器在客户端访问时保持 session 会话打开的最大时间间隔,以秒为单位。
7 public void invalidate()
该方法指示该 session 会话无效,并解除绑定到它上面的任何对象。
8 public boolean isNew()
如果客户端还不知道该 session 会话,或者如果客户选择不参入该 session 会话,则该方法返回 true。
9 public void removeAttribute(String name)
该方法将从该 session 会话移除指定名称的对象。
10 public void setAttribute(String name, Object value)
该方法使用指定的名称绑定一个对象到该 session 会话。
11 public void setMaxInactiveInterval(int interval)
该方法在 Servlet 容器指示该 session 会话无效之前,指定客户端请求之间的时间,以秒为单位。

#

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注