Session\ ServletContext及文件的上传和下载

本文介绍了Session和ServletContext的使用,包括如何获取session对象、设置session有效期,比较session和cookie的区别。此外,详细讲解了ServletContext的获取方式以及如何在ServletContext中存储数据。最后,探讨了文件上传下载的步骤,提供了文件上传的代码示例。
摘要由CSDN通过智能技术生成

一.session

session是一种服务端的会话技术。主要作用是为了标识一次会话,并且在一次会话期间共享数据。

1.获取session对象
 //通过req.getSession()获取当前会话对象
 HttpSession session = req.getSession();
2.session到期时间

1.默认到期时间

​ 当客户端第一次请求 servlet 并且操作 session 时,session 对象生成,Tomcat 中 session 默认的存活时间为 30min,即你不操作界面的时间,一旦有操作,session 会重新计时。可以在 Tomcat 中的 web.xml 文件中进行修改。

2.自己设定销毁时间

 //通过session.setMaxInactiveInterval(int)来设定不活动时间,单位秒
 HttpSession session = req.getSession();
 session.setMaxInactiveInterval(5);

3.设置立即失效

 //让session立刻失效
 session.invalidate();

4.关闭浏览器

session主要依赖cookie实现,当关闭浏览器时,cookie因有效时间到期而消失,导致session也失效

5.关闭服务器

​ 当服务器非正常关闭时,seesion销毁;当服务器正常关闭时,session将被序列化到磁盘上,保存到工作空间目录下的session.ser文件中。此时,当保存在session中的对象实现了Serializable接口,在下次服务器启动时,将自动加载到内存中。

3.session和cookie的区别

区别:

1.session保存在服务器,cookie保存在客户端

2.session是以对象的形似保存在服务器,cookie则以字符串的形式保存在和客户端

3.session适合做客户端的身份验证,cookie适合保存用户的个人信息

4.cookie的安全性不如session。cookie信息存放在本地不安全,他人可以分析本地的cookie并且进行cookie欺诈。

5.单个cookie存储的限制是3k。一般浏览器所含有的cookie的最大数量在30到50之间。而session则没有大小限制。

6.session不能区分路径,同一用户在访问一个网站期间,所有的session在任何一个地方都可以访问到;cookie中如果设置了参数路径,那么同一个网站下的cookie互相访问不到

二.ServletContext

1.ServletContext的三种获取方式

1.通过request获取

ServletContext servletContext = request.getServletContext();

2.通过Session获取

ServletContext servletContext = request.getSession().getServletContext();

3.通过ServletConfig获取

ServletConfig servletConfig = getServletConfig();
		ServletContext servletContext4 = servletConfig.getServletContext();

4.直接获取(通过获取父类方法)

ServletContext servletContext = getServletContext();
2.往ServletContext中存数据
servletContext.setAttribute("uname", "憨憨");

三.ServletContext和session作用域的比较

1.Servlet三大作用域

Request(一次请求)、Session(一次会话)、ServletContext(Application)(整个应用)

2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值