JavaWeb(十六)

setAttribute如果使用重定向由于地址发生了改变,超出request的作用域范围,所以页面会问无法获取到数据;
如果使用转发由于地址没有变,只是请求变了,所以没有超出request的作用域范围,页面可以获取到值

        req.setAttribute("user",user);
        //req.getSession().setAttribute("user",user);
        resp.sendRedirect("store");
        req.getRequestDispatcher("store").forward(req,resp);

管理会话的方法:

 session对象的存在周期:

      session的创建:

           ·浏览器访问服务器时,服务器为每个浏览器创建不同的session对象。

      session的关闭:

           ·调用session. invalidate()方法,使session对象失效。 

           ·访问时间间隔大于非活动时间间隔, session对象失效·关闭浏览器时,session对象失效。

会话跟踪技术:

。会话跟踪技术允许服务器确定访问站点的用户、用户访问站点的次数和用户停留站点的时间段。
。客户端和服务器之间的会话ID和状态信息,通常有四种方法:
          使用servlet API中的Session会话机制(存储在web服务器)。

          使用Cookie(存储在客户端浏览器)。

          . URL重写:URL可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对。

          · 隐藏表单域: <input type="hidden">,非常适合步需要大量数据存储的会话应用。

Cookie的概念:


Cookie的本意是“小甜饼”,我们俗称“曲奇饼”。

在JavaWeb中,Cookie是HTTP客户端和HTTP服务器之间传送的小块信息,用这类信息将状态添.加到无状态的HTTP协议中。

当HTTP服务器收到一个请求时,除了被请求的文档外,服务器还会选择返回一些状态信息给客户的浏览器。

这些状态信息应该由支持Cookie的客户端存储起来,放在客户端的机器里面。

客户端任何时候再发送新的请求给服务器,都要首先检查请求的URL和所存的Cookies中的URL是否对应。

Cookie的用法:

//Servlet类里的写法
Cookie c1=new Cookie( "name", name);
Cookie c2=new Cookie( "pwd", pwd);
//设置cookie得保存时间
c1.setMaxAge (60*60);
c2.setMaxAge(60*60);
//写入cookie
response.addCookie(c1);
response. addCookie(c2);
<-- jsp页面里的写法-->
<%
    Cookie []cookie1=request.getCookies();
    for(int i=0;i<cookie1.length;i++){
        out.print(cookie1[i].getName());
        out.print(cookie1[i].getValue());
    }
%>

总结:

Servlet API中使用HttpSession和Cookie来跟踪客户的状态。

getSession方法返回与客户端请求绑定的会话对象。

会话跟踪的4大技术分别是:使用Session和Cookie、URL重与、藏表单域。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值