三大域对象详情解析
1.ServletContext作用于整个APP
- ServletContext在服务器启动时创建,在服务器关闭时销毁,一个JavaWeb应用只创建一个ServletContext对象。
- 作用范围:所有的用户都可以取得此信息,此信息在整个服务器上被保留。
- 属性范围值:只要设置一次,则所有的网页窗口都可以取得数据。
1 //获取ServletContext对象 2 ServletContext servlet = this.getServletContext(); 3 servlet.setAttribute("name","zhangsan");
2.session
- 会话:用户打开浏览器会话开始,直到关闭浏览器会话才会结束。一次会话期间只会创建一个session对象。
- 用处:常用于web开发中的登陆验证界面(当用户登录成功后浏览器分配其一个session键值对)。
- 方法:session.setAttribute();
备注: session是服务器端对象,保存在服务器端。并且服务器可以将创建session后产生的sessionid通过一个cookie返回给客户端,以便下次验证。(session底层依赖于cookie)
3.request
- reques:表示一个请求,只要发出一个请求就会创建一个request,它的作用域:仅在当前请求中有效。
- 用处:常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。
- 方法:request.setAttribute();
三大对象获取方式:
1 class Demo extends HttpServlet { 2 @Override 3 protected void doGet(HttpServletRequest req, HttpServletResponse resp) { 4 5 //获取Session对象存储数据 6 HttpSession session = req.getSession(); 7 session.setAttribute("name","zhangsan"); 8 9 //获取ServletContext对象存储数据 10 ServletContext servlet = this.getServletContext(); 11 servlet.setAttribute("name","zhangsan"); 12 13 //通过session对象获取ServletContext 14 ServletContext servlet1 = session.getServletContext(); 15 servlet1.setAttribute("name","zhangsan"); 16 17 //通过request直接存储数据 18 req.setAttribute("name","zhangsan"); 19 } 20 @Override 21 protected void doPost(HttpServletRequest req, HttpServletResponse resp){ 22 this.doGet(req,resp); 23 } 24 }
当你的才华还撑不起你的野心时,那你就应该静下心来学习。 清醒时做事,糊涂时读书,大怒时睡觉,独处时思考。 再难也要坚持,再好也要淡泊,再差也要自信,再多也要节省。 你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经。 你成不了心态的主人,必然会沦为情绪的奴隶。 生命太短,一分钟都不要留给那些让你不快的人或事。 没有人陪你走一辈子,所以你要适应孤独。没有人会帮你一辈子,所以你要一直奋斗。 路是自己的,不必用别人的标准来框定自己的人生。