我现在正在自学jsp,觉得有点盲目,可能是开发经验不足,一直弄不太明白cookie和session,我自己做项目时很少用到cookie,一般都是用session,当然也应该用session,但我发现我做的项目里甚至没有cookie的影子,cookie在现在的开发中到底有什么用呢,session我看书上说也不可滥用,会造成资源浪费,可我遇到页面和servlet进行值交互时,必须用到session,这样数据大了,还是会造成session的滥用,有什么经典的解决办法么
还有个问题,我html做的不是太好,是不是到了公司,一般都会有专业的美工,而程序员只需编写servlet?
给解答一下吧,谢了

解决方案 »

  1.   

    先说说session造成资源浪费一事,取决于你的网站的访问量,加入网站是公司内部网站,同时在线人数不超过10人,那你session中存nK,n兆问题都不大,但是在线人数是100万,那
    数据尽量放request域中cookie保存于客户端,很多浏览器都能直接看,可以看成是浏览器的一个记事本,随便放些东西,方便取用。session保存于服务器端,是针对没个用户的一块自留地,它比cookie安全
    另,session可存任意数据类型的,cookie只能纯文本,
    session的销毁,取决于web服务器,cookie销毁是浏览器行为,看待cookie生命周期不能太执著,现代浏览器都强调缓存,这个不好整。html总归慢慢学,就能学会的呀,其实不难,包括css,javascript,你精通于此,公司项目进展就顺利些
      

  2.   

    session保存在哪里呢?
    我没有看错的话,有些服务器可以选择以cookie的方式保存session.当然大部分服务器默认不是这样的。所以session还是安全些,有效率些,但不是绝对的
      

  3.   

    cookie 在客户端保存
    session 是服务端保存.你使用了 session, 客户端就一定会使用 cookie, 只是你不用操作这些 Web Service 和 IE 会做这些工作。
      

  4.   

    http协议是无状态的,那你觉得session是如何在页面之间传递值的呢?我印象中是这样的,建立session后,会把sessionid保存在客户端的cookie里,这个是自动完成的,跳到下个界面时再通过cookie中的sessionid来访问保存的数据,所以说你在使用session的时候已经使用了cookie公司是有专门的美工,但界面你还是得写的,你要把基础的页面写出来,先不管美观与否,美工再来加工而已
      

  5.   

    美工的Jsp对程序员就是恶梦,反之亦然!!!!!!
      

  6.   

    不同点就不说了,说说他们的关联吧。
    为何每个用户切换时,直接使用session都能获取到相同的对象呢?
    原因是因为servlet运行环境保留啦类似这样HashMap<sessionId,session>的一个大Map。
    每当创建一个session时,就会分配一个sessionId然后将sessionid和session加入到这个map中。而sessionid,在服务器端给响应的时候,会将他记录到cookies中(即http消息头有一个特殊的字段cookies,他用传递客户端和服务端的一些附加参数)
    而客户端收到这个响应后,就会将这个cookies原封不动的保存到磁盘上(你先理解为一定会保存到磁盘上吧),等到下次再给这个服务器发送请求时,只要本地保存的cookies没有过期,他就一定会将保存的信息原封不动的上传回给服务器。
    这样服务器收到请求后,会自动的检测消息中是否含有cookies字段、这个字段中是否含有sessionid字段。如果有,将其取出,然后用sessionid到HashMap<sessionid,session>中取会session对象。
    明白否?
      

  7.   

    一般用的是session和request,用于页面之间的传值,里面放的东西很多种,可以是值,对象,集合
    cookie用于保存一些不太重要的数据,重要的数据放在客户端不安全的,像用户的登录信息,购买物品的数量等,相比下session放的就是金额等重要数据。
    其实session可以说是个特殊的cookie,看过http协议就清楚的理解了,http给session一个sessionId作为cookie的ID来存放的,session放的值作为cookie的值,不同的是消亡时间,session是半小时或关闭浏览器,而cookie可以自己设置多久都行。