@nextleaf
2018-09-19T16:38:43.000000Z
字数 1933
阅读 1336
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 会话无效之前,指定客户端请求之间的时间,以秒为单位。 |
