美文网首页
Servlet与JSP学习笔记(二)Session

Servlet与JSP学习笔记(二)Session

作者: 爆米花_rrh | 来源:发表于2018-07-02 10:25 被阅读0次

1:Session是什么?

会话。

虽然Http不保存请求,但是现实要求web应用要有能力保存用户的会话, 不能总让用户输入用户名密码

2:保持Session的四种技术:

(1)网址重写:

概念:

轻量化Session追踪技术

把token作为查询字符串加到url后面,用?号隔开

token是健值对,每两个token之间用&隔开

适用于:

token不必在过多的URL中四处携带,并且Token信息不太重要的情况

缺点:

URL限制2000字符

仅当有链接要插入token值时,值才能转化为资源

token值不容易插到静态链接中

空格、&符、问号等都必须编码

URL中信息时明文可见的

网址重写必须在服务端有效

(2)隐藏域

概念:

轻量化Session追踪技术

将token放到HTML表单的隐藏域中,用户提交表单,隐藏域也提交到服务器中

适用于:

页面包含表单、或者可以在页面添加表单,并且信息不必在跨越多个URL的情况

与网址重写比优点:

不必对字符进行编码

(3)cookie

概念:

自动地在Web服务器和浏览器之间来回传递的一小块信息

作为HTTP标头嵌入,传输过程由HTTP协议处理

根据需要可以设置cookie有效期 (maxAge属性)

每台Web服务器最多支持20个cookie

适用于:

需要跨越很多页面的信息

缺点:

用户可以通过修改浏览器设置拒绝接受cookie

取值不方便,只有getName方法,没有getCookieByName方法

不能直接删除cookie,只能创建同名的cookie,并设置maxAge = 0,并添加到HttpServletResponse中;

使用:

服务器创建cookie:Cookie languageCookie = new Cookie(“language”,“Italian”);

服务器发送cookie:httpServletResponse.addCookie(cookie);

浏览器获取cookie:

Cookie[]  cookies =  request.getCookies();

if ( cookies != null ) {

for( Cookie cookie : cookies  ){

if (cookie.getName() .equals("maxRecords")) {

maxRecordsCookie = cookie;

break;

}

}

}

删除Cookie:

Cookie languageCookie = new Cookie(“language”,“”);

languageCookie.setMaxAge ( 0 );

httpServletResponse.addCookie(cookie);

(4)HttpSession对象

概念:

第一个用户第一次访问某个网站时自动创建。

可以没有或只有1个HttpSession

用户只能访问自己的HttpSession

使用:

获取:HttpServletRequest的getSession()获得: HttpSession getSession();

存储:HttpSession的setAttribute(String name, Object value)将值放在HttpSession中

销毁:invalidate和setMaxInactiveInterval是设置静默多久后(即最后一个用户访问后多久)销毁

比较:

放在HttpSession的值时存在内存中。

存储对象要小而少,对象要实现Serializable接口

相关文章

网友评论

      本文标题:Servlet与JSP学习笔记(二)Session

      本文链接:https://www.haomeiwen.com/subject/ninhrxtx.html