java session cookie的使用

Cookie; Session; URL重写; 

   cookie在J2EE项目中的使用,Java中把Cookie封装成了java.servlet.http.Cookie类。每个Cookie都是该Cookie类的对象。服务器通过操作Cookie类对象,对客户端Cookie进行操作。通过request.getCookies()获取客户端提交的所有Cookie(以Cookie[]数组形式返回),通过response.addCookie(Cookiecookie)向客户端设置Cookie。Cookie对象使用key-value属性对的形式保存用户状态,一个Cookie对象保存一个属性对,一个request或者response同时使用多个Cookie。cookie的不可跨域名性和cookie的有效期。

复制代码
// 服务器端获取cookie
Cookie[]cookies = request.getCookies();
for (int i = 0; cookies != null && i < cookies.length;i++) {
         Cookiecookie = cookies[i];
         if("username".equals(cookie.getName())) {
         }
      }

//服务器端设置cookie

 String username = "sa";

 Cookie usernameCookie = new Cookie("username", username);

 response.addCookie(usernameCookie);

复制代码

   Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。Session是另一种记录客户端状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查询该客户的状态就可以了。如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。Session保存在服务器端。为了获得更高的存取速度,服务器一般把Session放在内存里。每个用户都会有一个独立的Session。如果Session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。因此,Session里的信息应该尽量精简。Session在用户第一次访问服务器的时候自动创建。需要注意的是,只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。如果尚未生成Session,也可以使用request.getSession(true)强制生成Session。Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session“活跃(active)”了一次。

复制代码
//  服务器端获取session
    HttpSessionsession = request.getSession();
    Stringusername = (String)session.getAttribute("username");

// 服务器端设置session
    HttpSessionsession = request.getSession();
    session.setAttribute("username","sa");
posted @ 2015-07-25 15:12  java高级技术汇  阅读(382)  评论(0编辑  收藏  举报