@nextleaf
2018-09-20T00:38:43.000000Z
字数 1933
阅读 1105
JSP
Java
Servlet
cookie
session
//String str= URLEncoder.encode("中文","utf-8");
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cooky : cookies) {
out.print(cooky.getName() + ":" + cooky.getValue() + "<br>");
}
第二次运行该页面时,名为“huang”的cookie不见了。
Cookie[] cookies = request.getCookies();
//cookie删除
for (Cookie c : cookies) {
if (c.getName().equals("huang")) {
//修改生命时间
c.setMaxAge(0);
response.addCookie(c);
break;
}
}
在默认情况下,只有与创建 cookie 的页面处于同一个目录或在创建cookie页面的子目录下的网页才可以访问。
cookie路径的作用是决定浏览器访问服务器的某个资源时,需要将浏览器端保存的那些Cookie归还给服务器
一类用来在客户端和服务器之间保持状态的解决方案
术语session
<input type="hidden" name="sessionid" value="12345">
但是点击常规的超文本链接(<A HREF...>
)不会导致表单提交
3. URL 重写
4. HttpSession 对象
Servlet容器使用HttpSession接口来创建一个 HTTP 客户端和 HTTP 服务器之间的 session 会话。
通过调用 HttpServletRequest 的公共方法 getSession() 来获取 HttpSession 对象:
//在向客户端发送任何文档内容之前调用 request.getSession()
HttpSession session = request.getSession();
序号 | 方法 & 描述 |
---|---|
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 会话无效之前,指定客户端请求之间的时间,以秒为单位。 |