欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    session和cookie.docx

    • 资源ID:24413665       资源大小:2.90MB        全文页数:55页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    session和cookie.docx

    1、session和cookieServlet知识2当用户第一次访问时,服务器会返回一个cookie给用户浏览器,第二次访问时,用户自己带着cookie过来,不需要再创建新的cookie。保存会话数据的两种技术: Cookie Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。 一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。 一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB

    2、浏览器也可以存储多个WEB站点提供的Cookie。 浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。 如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。 注意,删除cookie时,path必须一致,否则不会删除 Session(失效时间一般是半小时,但是可以自己设置时间) Session是服务器

    3、端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户

    4、的session中取出该用户的数据,为用户服务。 Session和Cookie的主要区别在于: Cookie是把用户的数据写给用户的浏览器。 Session技术把用户的数据写到用户独占的session中。 Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。Session默认是浏览器进程,关闭了,原来的就没有了,要自己重写cookieid,那么再重新打开一个或者多个浏览器就会使用原来的session里的信息或者数据。IE8以下版本,打开一个浏览器就会创建一个新的session。以上版本就不会,打开任意浏览器都是共用一个sessio

    5、n。Session和cookie都是用来保存用户数据的。怎么创建cookie?1.把用户的数据封装到cookie后2.通过response创建cookie3.服务器一看,response中有东西,会自动获取4.通过request的getCookies()方法拿到所有cookie(循环遍历)javax.servlet.http.Cookie类用于创建一个Cookie,response接口也中定义了一个addCookie方法,它用于在其响应头中增加一个相应的Set-Cookie头字段。 同样,request接口中也定义了一个getCookies方法,它用于获取客户端提交的Cookierequest

    6、.getSession();/当执行到这句代码时,才会创建session,不是一开始访问网站就会创建session的实现是基于cookie的,用户第一次访问后,服务器即servlet会为用户创建一个session并且创建一个sessionid号(是用cookie实现),会回写一个cookieid给浏览器即用户,用户下次访问后,就带着这个cookieid来,直接取相应的session给对应的用户服务request.getSession(false);只获取session,不创建session,用于购物车结账时,体现高超的编程。虽然用这个request.getSession();也能实现以下代码实

    7、现电子商务网站必写,含义是当用户打开多个浏览器,都是共用一个session。手工以cookie形式发sessionid,以解决关闭浏览器后,上次买的东西还在(哪里获取了session,以下代码就在哪里写)。String id=session.getId();Cookie cookie=new Cookie(JSESSIONID,id);/覆写sessionidcookie.setPath(/day07);/要一样,用httpwatch查看cookie.setMaxAge(30*60);/30 minutesresponse.addCookie(cookie);/回写给浏览器1. cookie案

    8、例-显示用户上次访问网站的时间public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out.print(清除上次访问时间); response.setCharacterEncoding(UTF-8); response.setContentType(text/html;charset=UTF-8); PrintWriter out = response.getWriter(); out.print(上次访问时间:); Coo

    9、kie cookies=request.getCookies(); for(int i=0;cookies!=null & icookies.length;i+) if(cookiesi.getName().equals(lastAccessTime) long cookieValue=Long.parseLong(cookiesi.getValue(); Date date=new Date(cookieValue); out.print(date.toLocaleString(); Cookie cookie=new Cookie(lastAccessTime,System.current

    10、TimeMillis()+); cookie.setMaxAge(1*30*24*3600);/ 以秒为单位,有效时间,不设置的话,是浏览器进程,关闭就没有了cookie cookie.setPath(/day07);/斜杠代表网站,设置cookie的有效路径,不设置的话,就是servlet的路径 response.addCookie(cookie)CookieDemo2代码如下:public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcep

    11、tion Cookie cookie=new Cookie(lastAccessTime,System.currentTimeMillis()+);cookie.setMaxAge(0);/ 以秒为单位cookie.setPath(/day07);response.addCookie(cookie);/将cookie回写给浏览器 response.sendRedirect(/day07/servlet/CookieDemo1);/清除cookie之后,回到第一个servlet 2. Cookie案例-显示商品浏览历史纪录public class CookieDemo3 extends Http

    12、Servlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setCharacterEncoding(UTF-8); response.setContentType(text/html;charset=UTF-8); PrintWriter out = response.getWriter(); /输出所有商品 out.write(本站有如下商品:); Mapmap=Db.getAll(); fo

    13、r(Map.Entry entry:map.entrySet() Book book=entry.getValue();out.print(+book.getName()+); /显示用户看过的商品 out.print(你曾经看过的商品); Cookie cookies=request.getCookies(); for(int i=0;cookies!=null & icookies.length;i+) if(cookiesi.getName().equals(bookHistory) String ids=cookiesi.getValue().split(,);/2,3,1 for(S

    14、tring id:ids) Book book=(Book) Db.getAll().get(id); out.print(+book.getName()+); class Db private static Map map=new LinkedHashMap(); static map.put(1, new Book(1,JavaWeb开发,老k,一本好书); map.put(2, new Book(2,jdbc开发,老张,一本好书); map.put(3, new Book(3,spring开发,老li,一本好书); map.put(4, new Book(4,struts开发,老张,一本

    15、好书); map.put(5, new Book(5,android开发,老bi,一本好书); public static Map getAll() return map; class Book private String id; private String name; private String author; private String description; public Book() super(); public Book(String id, String name, String author, String description) this.id = id; thi

    16、s.name = name; this.author = author; this.description = description; public String getId() return id; public void setId(String id) this.id = id; public String getName() return name; public void setName(String name) this.name = name; public String getAuthor() return author; public void setAuthor(Stri

    17、ng author) this.author = author; public String getDescription() return description; public void setDescription(String description) this.description = description; /显示详细信息的servletpublic class CookieDemo4 extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) t

    18、hrows ServletException, IOException /根据用户带过来的id,显示相应的详细信息 response.setCharacterEncoding(UTF-8); response.setContentType(text/html;charset=UTF-8); PrintWriter out = response.getWriter(); String id=request.getParameter(id); Book book=(Book)Db.getAll().get(id); out.write(book.getId()+); out.write(book.

    19、getName()+); out.write(book.getAuthor()+); out.write(book.getDescription()+); /2.构建cookie,回写给浏览器; String cookieValue=buildCookie(id,request); Cookie cookie=new Cookie(bookHistory,cookieValue); cookie.setMaxAge(1*30*24*3600);/1 个月 cookie.setPath(/day07); response.addCookie(cookie); private String bui

    20、ldCookie(String id, HttpServletRequest request) /bookHistory =null 1 1 /bookHistory=2,5,1 1 1,2,5 /bookHistory=2,5,4 1 1,2,5 /bookHistroy=2,5 1 1,2,5 / 假如列表最多3个 String bookHistroy=null; Cookie cookies=request.getCookies(); for(int i=0;cookies!=null & icookies.length;i+) if(cookiesi.getName().equals(

    21、bookHistory) bookHistroy=cookiesi.getValue(); if(bookHistroy=null) return id; /if(bookHistroy.contains(id)不能这样 21,23 也包括1 List list=Arrays.asList(bookHistroy.split(,);/把数组转换成集合 LinkedList linkedlist=new LinkedList(list);/把list集合转换成linklist集合,linklist有这样的构造函数 if(list.contains(id) linkedlist.remove(id

    22、); linkedlist.addFirst(id); else if(list.size()=3) linkedlist.removeLast(); linkedlist.addFirst(id); else linkedlist.addFirst(id); if(list.contains(id) linkedlist.remove(id); else if(list.size()=3) linkedlist.removeLast(); linkedlist.addFirst(id); StringBuffer sb=new StringBuffer(); for(String bid :

    23、 linkedlist) sb.append(bid+,); return sb.deleteCharAt(sb.length()-1).toString(); 3.session案例:将用户的数据保存在session范围内SessionDemo1:public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /response.setContentType(text/html); /PrintWriter out = respon

    24、se.getWriter();HttpSession session=request.getSession();session.setAttribute(name, 洗衣机);String id=session.getId();Cookie cookie=new Cookie(JSESSIONID,id);/覆写sessionidcookie.setPath(/day07);/要一样,用httpwatch查看cookie.setMaxAge(30*60);/30 minutesresponse.addCookie(cookie);/回写给浏览器 /session.setMaxInactiveI

    25、nterval(3600);/1小时 /session.invalidate();/摧毁/http:/localhost:8080/day07/servlet/sessionDemo1 以下是sessiondemo2,显示用户所购买的东西public class SessionDemo2 extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setCharacterE

    26、ncoding(UTF-8); response.setContentType(text/html;charset=utf-8); HttpSession session=request.getSession(); String name=(String) session.getAttribute(name); PrintWriter out = response.getWriter(); if(name!=null) out.write(name); else out.write(no buy); 以下是首页的servlet:第一次访问这个servletpublic void doGet(H

    27、ttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setCharacterEncoding(UTF-8); response.setContentType(text/html;charset=utf-8); PrintWriter out = response.getWriter(); request.getSession(); /URL重写技术,用于浏览器禁用cookie之后的技术。如果没有禁用cookie,第一次访问时,有2个cooki

    28、eid, /但是,第二次访问时,url重写技术就没有带cookieid啦, /因为用户自己带了cookieid过来(没有禁用cookie,服务器就会回写一个cookieid给用户,用户再次访问时就会自己带过来cookieid) String url1 = response.encodeRedirectURL(/sessiondemo/servlet/SessionDemo1); String url2 = response.encodeRedirectURL(/sessiondemo/servlet/SessionDemo2); out.print(购买 ); out.print(结账 ); 4. 用session实现简单的购物(以下代码只用于浏览器没有禁用cookie的条件下)/首页,列出所有书public class


    注意事项

    本文(session和cookie.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开