javaweb开发中Servlet三大域对象的应用(request、session、application(ServletContext))。

1. request

request是表示一个请求,只要发出一个请求就会创建一个request,它的作用域:仅在当前请求中有效。



用处:常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。



方法:request.setAttribute(); request.getAttribute(); request.removeAttribute(); request.getParameter().

2. session

服务器会为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享。



会话:用户打开浏览器会话开始,直到关闭浏览器会话才会结束。一次会话期间只会创建一个session对象。     



用处:常用于web开发中的登陆验证界面(当用户登录成功后浏览器分配其一个session键值对)。



方法:session.setAttribute(); session.getAttribute(); session.removeAttribute();



获得session对象方法:

  1. 在Servlet中:HttpSession session = request.getSession();
  2. 由于session属于jsp九大内置对象之一,当然可以直接使用。例如:<%session.serAttribute("name","admin")%>。

session被销毁

          1)session超时;

          2)客户端关闭后,再也访问不到和该客户端对应的session了,它会在超时之后被销毁;

          3)调用session.
invalidate();

备注: session是服务器端对象,保存在服务器端。并且服务器可以将创建session后产生的sessionid通过一个cookie返回给客户端,以便下次验证。(session底层依赖于cookie)

3. Application(ServletContext)

作用范围:所有的用户都可以取得此信息,此信息在整个服务器上被保留。Application属性范围值,只要设置一次,则所有的网页窗口都可以取得数据。ServletContext在服务器启动时创建,在服务器关闭时销毁,一个JavaWeb应用只创建一个ServletContext对象,所有的客户端在访问服务器时都共享同一个ServletContext对象;ServletContext对象一般用于在多个客户端间共享数据时使用;



获取Application对象方法(Servlet中):  

                   ServletContext app01 = this.getServletContext();

                   app01.setAttribute("name", "kaixuan");    //设置一个值进去

           

                    ServletContext app02 = this.getServletContext();

                     app02.getAttribute("name");    //获取键值对  



ServletContext同属于JSP九大内置对象之一,故可以直接使用



备注:服务器只会创建一个ServletContext 对象,所以app01就是app02,通过app01设置的值当然可以通过app02获取。

总结:

1.作用域: request session application
 *    使用作用域传递数据和存储数据
 *    使用作用域传递数据时,必须掌握作用域对应的生命周期和作用范围
 *
2. * 生命周期
 * (1)  request:只限于一次请求
 * (2)  session:一次会话(多次请求)
 *    开始
 *      用户向服务器发送请求的时候
 *      结束
 *        客户端
 *         丢失JsessionId值的时候(关闭浏览器)
 *        服务器端
 *            关闭服务器
 *            超过会话的不活动周期时间
 *  (3) application:项目的加载到卸载
 *3.作用范围
 * (1) requset:所有被请求转发的Servlet
 * (2) session:所有的Servlet
 *  (3)application:所有的Servlet(换一个浏览器演示,跟session作用域区分)
 *  
 4.*如何正确的选择作用域
 *(1)  request:跟当前操作功能相关
 * (2) session: 跟用户信息相关
 * (3) application:跟项目全局信息相关----》京东配送地址
 *  
 * 5.如何正确的选择作用域不正确,会出现什么情况
 *   内存浪费

servlet三大作用域:request,session,application的更多相关文章

  1. request, session, application辨析(待更新)

    作用域 request < session < application 分析 1. request 只在一次请求中有效,当请求发送变化时,信息将失效. 2. session 在当前一次会话 ...

  2. 【转载】servlet三大作用域:request,session,application

    javaweb开发中Servlet三大域对象的应用(request.session.application(ServletContext)). 1. requestrequest是表示一个请求,只要发 ...

  3. request,session,application

    JSP 的3个内置对象request,session,application,其实都有一个作用域,这些对象内部有一个Map成员用于存放数据,比如session对象的setAttribute(key,v ...

  4. Struts2里如何取得request,session,application

    第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import c ...

  5. page,request,session,application四个域对象的使用及区别

    转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束, ...

  6. Strut2 ognl取出存放在request,session,application和对象栈的中的值

    1.取出request,session,applicaiton中的值 a.往里面加入request,session,application中加入值 public String testServlet( ...

  7. Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)

    truts2在Action中如何访问request,session,application(即ServletContext)对象???? 方式一:与Servlet API解耦的方式      可以使用 ...

  8. struct2访问或添加request/session/application

    访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute()  {     ActionConte ...

  9. JavaWeb -pageContext/request/session/application

    pageContext/request/session/application总结 一.范围差异 1. pageContext jsp页面容器 当前页面有效 2. request 请求对象 同一次请求 ...

随机推荐

  1. 谷歌笔试题——排序,只允许0和其他元素交换

    2.2 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序. 这题有一个隐含条件:即数组元素是连续的,即0--n-1,当你排好序后,你会发现数组元素和该元素的下标 ...

  2. Vases and Flowers

    hdu4614:http://acm.hdu.edu.cn/showproblem.php?pid=4614 题意:给你n个花瓶,然后有两种操作:1从a开始选择b个花瓶,放进花,输出左端点,右端点 2 ...

  3. Mybatis bug修正

    http://1358440610-qq-com.iteye.com/blog/1827391

  4. node.js + gulp用JENKINS作CI编译

    这里还是有点坑,要注意. 安装NODE.JS不说,GULP绿色化也不说. 但要让JENKINS识别环境变量. /etc/profile.... export NODE_HOME=/usr/local/ ...

  5. http://f.dataguru.cn/forum.php?mod=viewthread&tid=44212&fromuid=4771

    http://f.dataguru.cn/forum.php?mod=viewthread&tid=44212&fromuid=4771

  6. Android:Fragment+ViewPager实现Tab滑动

    public class FragAdapter extends FragmentPagerAdapter { private List<Fragment> fragments ; pub ...

  7. 转自 Because of you 的总结

    上下界网络流的问题严格的分,可以分为四类吧. 1:无源汇可行流  sgu 194 2:有源汇可行流  poj 2396  这题比较好,我建图建了将近200行 3:有源汇最大流  zoj 3496  这 ...

  8. Master Nginx(3) - Using the Mail Module

    Basic proxy service Authentication service Combining with memcached Interpreting log files Operating ...

  9. Microsoft Azure File 服务简介

    我们非常高兴地宣布在微软Azure中国区推出 Microsoft Azure File 服务预览版.Azure File 服务使用标准 SMB 2.1 协议提供文件共享.Azure 中运行的应用程序现 ...

  10. C# 深复制

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...