学习笔记二Session 管理

保持状态的四种方法:网址重写,隐藏域,Cookie和HttpSession对象


2.1网址重写

一种session追踪技术,将一个或者多个token作为查询字符串添加到一个URL中

token格式为键=值;

语法:url?key-1=value1&key-2=value2&key-3=value3


缺点:

有些浏览器URL长度有限制

仅当有链接要插入值时,值才能转换成后面的资源

网址重写必须在服务器端有效。所有链接都必须带有值

某些字符需要进行编码

添加到URL的信息是可见的


使用域:

需要保持,不跨越太多页面,信息不太重要


2.2 隐藏域

将值放在HTML表单的隐藏域中。

只有当页面包含表单或者在页面中添加表单的时候,且不需要跨越多个页面时,才会使用隐藏域



2.3 cookie

自动地在web服务器和浏览器之间来回传递的一小块信息,适用于需要跨越许多页面的信息

cookie是作为HTTP标头嵌入的,传输它的过程由http协议处理


创建cookie Cookie cookie = new Cookie(name,value);

可以设置cookie的domain,path,maxAge属性


将cookie发送到浏览器使用HttpServletResponse.add(Cookie cookie)方法

访问浏览器返回的cookie,使用HttpServletRequest.getCookies()方法


要删除cookie,添加一个同名cookie,并将其maxAge设置为0




2.4 HttpSession对象

获取HttpSession对象

HttpServletRequest.getHttpSession()

HttpServletRequest.getHttpSession(boolean create)

方法:

void setAttribute(String name,Object value)  传递已有名称时,关联新值

Object getAttribute(String name)  获取名称对应的值

String getId()   获取HttpSession的标识符

void invalidate()  强制过期

long getMaxInactiveInterval() HttpSession在用户最后一次访问后还可以维持多久

void setMaxInactiveInterval(long millionSeconds)  设置为0时永不过期

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容