java cookie和session,java中cookie和session区别

  java cookie和session,java中cookie和session区别

  00-1010 1.第二节课。保存会话的两个技巧3。烹饪4 .会话

  00-1010会话:用户打开浏览器,点击许多超链接,访问多个web维度,然后关闭浏览器。这个过程可以称为会话。

  有状态会话:具有访问记录的会话。

  1.服务器会给客户机一个cookie,客户机下次访问时可以用cookie访问它。

  2.服务器注册客户端已访问,并在下次访问时将其匹配到客户端;会议

  

目录

cookie客户端技术(响应、请求)

 

  会话技术,使用该技术,可以保存用户的会话信息,可以保存会话中的信息或数据。

  常见场景:登录网站后,下次不需要再登录,第二次访问后直接上去!

  00-1010 1.从请求中获取cookie信息

  2.服务器响应客户端cookie。

  Cookie相关方法:

  cookie[]cookie=req . get cookies();//Get cookiecookie . getname()//Get key cookie . getvalue()//Get value new cookie( lastlog intime ,system . current time millis() )//新建一个cookie . set maxage(24 * 60 * 60);//设置cookie有效期resp . add cookie(cookie);//向客户端响应cookie案例:

  @ override protected void doget(http servlet req req,http servlet response resp)抛出servlet异常,io exception {//解析中文乱码req。setcharacterencoding(“UTF-8”);resp . setcharacterencoding( utf-8 );resp . set content type( text/html;charset=utf-8 );PrintWriter out=resp . getwriter();cookie[]cookie=req . get cookies();//判断cookie是否存在if(cookies==null){ out.println(第一次访问网站);}else{ out.write(你最后一次访问是什么时候:);for(cookie cookie cookie 3360 cookie){ if( lastlog intime 。equals(cookie . getname()){//获取cookie中的值long time=long . parse long(cookie . getvalue());日期date=新日期(时间);date format DFD=date format . getdate instance(date format。中等,地区。中国);date format DFT=date format . gettime instance(date format。中等,地区。中国);out . write(DFD . format(date)DFT . format(date));} } } Cookie Cookie=new Cookie( last log in time ,system . current time millis() );//设置cookie有效期为一天的cookie . Set maxage(24 * 60 * 60);resp . add cookie(cookie);}cookie:一般会保存在本地用户目录appdate;

  网站cookie有上限吗?

  一个cookie只能保存一条信息;一个网站可以向浏览器发送多个cookie,最多存储20个cookie;Cookie大小受限4kb300 cookies浏览器上限删除cookie:

  不设置有效期,关闭浏览器,自动失效;将有效期设置为0;注意:当cookie值为中文时,最好使用URLEncod。

  er.encode()来进行编码,防止中文乱码。取值时用URLDecoder.decode()来解码。

  

 

  

4.Session

什么事session:

 

  服务器会给每一个用户创建一个session对象一个session独占一个浏览器,只要浏览器没有关闭,这个Session就存在;用户登录之后,整个网站都可以访问 -->保存用户的信息;

 

  Session常用的方法

  

 

  Session和cookie的区别:

  Cookie是把用户的数据写到用户的浏览器,浏览器保存(可以保存多个)session把用户的数据写到用户独占的Session中,服务器端保存(保存重要的信息,减少服务器资源的浪费)session对象由服务器创建;使用场景:

  保存一个登录用户的信息;购物车信息;在整个网站中经常会使用的数据,我们将它保存到Session中;使用session:

  

@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决乱码 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html; charset=utf-8"); PrintWriter out = resp.getWriter(); //得到Session HttpSession session = req.getSession(); //给session中存东西 session.setAttribute("name",new Person("张三",18)); //获取session的id String id = session.getId(); //判断session是不是新创建的 if(session.isNew()){ out.write("session创建成功,ID:"+id); }else{ out.write("session已经存在,id:"+id); } //Session创建的时候做了什么事 // Cookie jsessionid = new Cookie("JSESSIONID", id); // resp.addCookie(jsessionid);}//Person类public class Person { private String name; private int age; @Override public String toString() { return "Person{" + "name=" + name +  + ", age=" + age + }; } public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}

获取session中的信息

 

  

//得到SessionHttpSession session = req.getSession();Person name = (Person) session.getAttribute("name");System.out.println(name);

注销session

 

  

//得到SessionHttpSession session = req.getSession();session.removeAttribute("name");//注销sessionsession.invalidate();

会话自动过期:web.xml配置

 

  

<!-- 设置Session的默认失效时间--> <session-config><!-- 15分钟后session自动失效,以分钟为单位--> <session-timeout>15</session-timeout> </session-config>

到此这篇关于JavaWeb详细讲述Cookie和Session的概念的文章就介绍到这了,更多相关JavaWebCookie和Session内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: