cookie ,session,servletContext的区分

cookie ,session,servletContext的区分

刚刚学完servlet,感觉也没什么东西,只是用到了api中的几个类。这几个类能够作为一门技术来被人学习,可见他们是很重要的。

servlet的整个过程就是cookie,session和servletContext的处理,再加上一些分页的处理。

其实这三个类很容易区分。

cookie:

cookie对我们并不陌生,每个浏览器都有是否要保存cookie的设置。cookie是存放在客户端的缓存文件,比如登录的用户名,密码。对页面的一些个性设置等。

session是客户端意识不到的。他是存放在服务器的内存中的。他存在的时间比较短,一般处理页面的跳转时用到,用来提交数据。session是对浏览器而言的,而不是对浏览器的每一个页面。比如我登录人人网时就在服务器端创建一个该浏览器的session,欢迎界面也可以访问到这个session,他可以从这个session中提取数据。如果我们在单独打开一个浏览器,他是访问不到上面的那个session的。

servletContext也是保存在服务器端的。但他与session不同,他是可以被每个连接到该服务器的客户访问到的。我们在处理网页的浏览次数时就用到了servletContext,我们把浏览次数保存在servletContext中,每个人都可以看到这个网页总共被浏览了多少次。这是session做不到的。

下面说一下登录的处理过程进一步体会cookie,session,servletContext的用法:

我们用到了三个页面,login (登录界面) ,loginCl(登录处理界面,处理完就会跳转到欢迎界面,跳转很快客户是看不到的),wel(欢迎界面)

当用户输入用户名,密码,点击登录后,就会跳转到logincl界面,并把用户名,密码数据提交过去。

在logincl界面接受数据,并访问数据库进行校验,把校验成功的数据写入cookie(用户可以下次直接进入欢迎界面不必重新登录)和session

写完之后跳转到欢迎界面。

在欢迎界面 服务器 获取session,并校验是否存在该用户名,如果存在校验成功。如果不存在就可能是以前登录过的用户直接输入的欢迎界面的url,应该从客户端获取cookie,从中取值在到logincl中校验。

浏览次数的处理用到了cookie和servletContext。 这个cookie是保存在服务器端的,当servlet启动时就从cookie文件中读取浏览次数(比如是100次)并把数据存放到servletContext中。客户端没登录一次,servletContext中的值就+1。当服务器关闭时再把servletContext中的值写入到cookie文件中。为了做到上面的功能,cookie的读取应该放到servlet的init()方法里(这样他只读取一次)。把写入存放在destory()方法中。这样服务器从启动到关闭只对这个cookie进行了一次读取,一次写入,大大减少了服务器的负担。

注:cookie,session,servletContext 中存放的数据应该是小量的。他们扮演的角色是为他人做嫁衣。他们就像是救苦救难的观音菩萨,只有当自己遇到克服不了的困难时才会求救于他,如果事事都叫菩萨来帮忙,菩萨就不灵了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值