精华内容
下载资源
问答
  • web作用域

    千次阅读 2012-07-26 23:15:16
    Servlet/JSP中的Session功能是通过作用域(scope)这概念来实现的。 作用域分为四种,分别为: page 在当前页面有效(仅用于JSP中)  request 在当前请求中有效  session 在当前会话中有效  app

    好像最近发现自己挺多最基本的知识都没有掌握牢固,哎。。。。

    几乎所有的Web开发语言都支持Session功能,Servlet也不例外。 Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的。

    作用域分为四种,分别为:

    page 在当前页面有效(仅用于JSP中) 
    request 在当前请求中有效 
    session 在当前会话中有效 
    application 在所有应用程序中有效

    是不是看不太明白?page因为仅用于JSP中,这里只讲述其他三种作用域。 首先要声明的一点,所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效。

    话说武松一日来到景阳岗,见一旗帜迎风飘扬,旗子上书五个大字“三碗不过岗”。 武松叫道:“店家,拿三碗酒来,再切两斤熟牛肉!”店小二应声道:“三碗好酒,二斤熟牛肉啰~~”里面厨师赶忙当当当当切好牛肉,店小二倒上三碗酒,店小二端上前来。

    武松咕咚咕咚连干三碗,叫一声“好酒!店家,再来三碗!”小二忙又倒上三碗好酒,武松一饮而尽。就这样前前后后武松一共喝了十八大腕。付了帐刚要走,店小二道: “客官,这前面山上有大虫,客官刚刚喝完十八碗酒恐怕过不得岗,不如在小店暂住一夜, 待明天和猎户一同过岗岂不是好?”

    之后武松说什么就留待各位看官自己去回忆啦。在这段武松打虎中, 大家有没有看到些熟悉的东西?

    武松: 浏览器。 
    酒馆: 服务器。 
    店小二、厨师: Servlet或者JSP。 
    来三碗好酒!: 浏览器向服务器发出HTTP请求。 
    店小二上酒: 服务器的响应。 
    武松从进店到离开: 一个HTTP对话。 
    我们可以看到,Web交互的最基本单位为HTTP请求(武松点菜)。 每个用户从进入网站到离开网站这段过程称为一个HTTP会话 (武松进店到出店),一个服务器的运行过程中会有多个用户访问,就是多个HTTP会话(酒馆当然不可能只接待武松一个客人)。那么作用域就可以理解为:

    request HTTP请求开始到结束这段时间 
    session HTTP会话开始到结束这段时间 
    application 服务器启动到停止这段时间

    request

    一个HTTP请求的处理可能需要多个Servlet合作(武松点菜时店小二就要吩咐厨房做菜), 几个Servlet之间可以通过某种方式传递信息(店小二就用吆喝的方式通知厨房),但这个信息在请求结束后就无效了(厨房在做完菜之后就不用再管这道菜的事儿了)。

    Servlet之间的信息共享是通过HttpServletRequest接口的两个方法来实现的:

    void setAttribute(String name, Object value) 将对象 value 以 name 为名称保存到request作用域中。 
    Object getAttribute(String name) 从request作用域中取得指定名字的信息。 
    doGet()、doPost()函数的第一个参数就是 HttpServletRequest 对象, 使用这个对象的 setAttribute 即可传递信息。

    那么设置好信息之后,如何将信息传给其他Servlet? 这就要用到 RequestDispatcher 接口的 forward 方法,将请求转发给其他Servlet。

    RequestDispatcher ServletContext.getRequestDispatcher(String path) 取得Dispatcher以便转发。path为转发的目的Servlet。 
    void RequestDispatcher.forward(ServletRequest request, ServletResponse response) 将request和response转发。 
    因此,只要在当前Servlet中先 setAttribute,然后forward,最后在forward到的Servlet中 getAttribute即可实现信息传递。

    PHP的程序员可能不太好理解这一段,因为PHP中没有转发的概念,一个请求只能由一个PHP文件来处理,所以PHP中根本没有request作用域的概念。而Servlet则不同,请求可以在应用程序中任意转发,所以用 request作用域在不同Servlet之间传递信息。 需要注意两点:

    转发不是重定向,转发是在Web应用内部进行的。PHP支持重定向但没有转发。 
    转发对浏览器是透明的,也就是说,无论在服务器上如何转发,浏览器地址栏中显示的仍然是最初那个Servlet的地址。 
    session

    session作用域比较容易理解,同一浏览器访问多次,在这多次访问之间传递信息,就是session作用域。 ('''武松每次点菜帐房先生都要记一笔账,等武松走之前结帐用。这笔帐在武松吃饭过程中始终有效,即位于session作用域中''')

    session是通过HttpSession接口实现的。

    Object HttpSession.getAttribute(String name) 从session中获取信息 
    void HttpSession.setAttribute(String name, Object value) 向session中保存信息 
    而通过HttpServletRequest.getSession()方法可以获得HttpSession对象。

    HttpSession HttpServletRequest.getSessio() 获取当前请求所在的session的对象。 
    session的开始容易判断(浏览器发出第一个HTTP请求即可认为会话开始),但结束就不好判断了(因为浏览器关闭时不会通知服务器“我关了,会话可以结束了”),所以只能通过这种方法判断:如果一定的时间内客户端没有反应,则认为会话结束。 Tomcat的默认值为120分钟,但这个值也可以通过 HttpSession 的 setMaxInactiveInterval 方法来设置。

    void setMaxInactiveInterval(int interval) 设置绘画的超时值。 
    如果想主动让会话结束,如用户单击“注销”的时候,可以使用 HttpSession 的 invalidate 方法:

    vooid invalidate() 强制结束当前session。 
    application

    application作用域就是服务器启动到关闭的整段时间, 在这个作用域内设置的信息可以被所有应用程序使用。 (餐馆打烊后结帐,用到的即是开张到打烊之间的所有信息。)

    还记得上一节提到的ServetContext吗? application作用域上的信息传递就是通过ServetContext实现的。

    Object getAttribute(String name) 从application中获取信息。 
    void setAttribute(String name, Object value) 向application作用域中设置信息。 
    总结

    可以看到,每个作用域除了实现接口不同、意义不同之外,它们的使用方法和作用都是相同的, 都是通过 getAttribute 和 setAttribute 方法进行信息传递。

    作用域 意义 实现接口 
    request HTTP请求内 HttpServletRequest 
    session HTTP会话内 HttpSession 
    application 服务器生命周期内 ServletContext

    展开全文
  • web容器有几作用域

    千次阅读 2018-09-05 23:12:01
    几乎所有web应用容器都提供了四种类似Map的结构:application session request page,Jsp或者Servlet通过向着这四对象放入数据,从而实现Jsp和Servlet之间数据的共享。 application:整个应用 对应servlet中...

    几乎所有web应用容器都提供了四种类似Map的结构:application session request page,Jsp或者Servlet通过向着这四个对象放入数据,从而实现Jsp和Servlet之间数据的共享。

    application:整个应用 对应servlet中ServletContext

    session:会话    对应servlet中HttpSession

    request:一次请求  对应servlet中的HttpServletRequest

    page:当前页面

    展开全文
  • web 四大作用域

    千次阅读 2018-08-29 16:52:35
    域的作用域范围大小:PageContext (page域) < request < session < servletContext(application域) 一、ServletContext 1、生命周期:当Web应用被加载进容器时创建代表整个web应用的...

    四个域的作用域范围大小:PageContext (page域) < request < session < servletContext(application域)

    一、ServletContext

    1、生命周期:当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟着销毁。

    2、作用范围:整个Web应用。

    3、作用:

    a) 在不同Servlet 之间转发

        this.getServletContext().getRequestDispatcher("/servlet/Demo10Servlet").forward(request,response);

       方法执行结束,service就会返回到服务器,再有服务器去调用目标servlet,其中request会重新创建,并将之前的request的数据拷贝进去。

    b) 读取资源文件。

    1、由于相对路径默认相对的是java虚拟机启动的目录,所以我们直接写相对路径将会是相对于tomcat/bin目录,所以是拿不到资源的。

          如果写成绝对路径,当项目发布到其他环境时,绝对路径就错了。

    2、为了解决这个问题ServletContext提供了:

         this.getServletContext().getRealPath(“/1.properties”),给进一个资源的虚拟路径,将会返回该资源在当前环境下的真实路径。

        this.getServletContext().getResourceAsStream(“/1.properties”),给一个资源的虚拟路径返回到该资源真实路径的流。

    3、当在非servlet下获取资源文件时,就没有ServletContext对象用了,此时只能用类加载器

         classLoader.getResourceAsStream(“../../1.properties”),此方法利用类加载器直接将资源加载到内存中,有更新延迟的问题,

         以及如果文件太大,占用内存过大。

         classLoader.getResource(“../1.properties”).getPath(),直接返回资源的真实路径,没有更新延迟的问题。

    二、Request 域

    1、生命周期:在service 方法调用前由服务器创建,传入service方法。整个请求结束,request生命结束。

    2、作用范围:整个请求链(请求转发也存在)。

    3、作用: 在整个请求链中共享数据。最常用到:在Servlet 中处理好的数据交给Jsp显示,此时参数就可以放置在Request域中带过去。

    三、Session 域

    HttpSession 在服务器中,为浏览器创建独一无二的内存空间,在其中保存会话相关的信息。

    1、生命周期:在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存 中创建一个session并返回。

    当一段时间内session没有被使用(默认为30分钟),则服务器会销毁该session。

    如果服务器非正常关闭(强行关闭),没有到期的session也会跟着销毁。

    如果调用session提供的invalidate(),可以立即销毁session。

    注意:服务器正常关闭,再启动,Session对象会进行钝化和活化操作。同时如果服务器钝化的时间在session 默认销毁时间之内,则活化后session还是存在的。否则Session不存在。如果JavaBean 数据在session钝化时,没有实现Serializable 则当Session活化时,会消失。

    2、作用范围:一次会话。

    四、PageContext 域

    1、生命周期:当对JSP的请求时开始,当响应结束时销毁。

    2、作用范围:整个JSP页面,是四大作用域中最小的一个,即超过这个页面就不能够使用了。(所以使用pageContext对象向其它页面传递参数是不可能的.)

    作用:

    (1)获取其它八大隐式对象,可以认为是一个入口对象。

    (2)获取其所有域中的数据

    pageContext 操作所有域中属性的方法

    public java.lang.Object getAttribute(java.lang.String name,intscope)

    public void setAttribute(java.lang.String name, java.lang.Objectvalue,int scope)

    public void removeAttribute(java.lang.String name,int scope)

    pageContext 中代表域的常量

    PageContext.APPLICATION_SCOPE

    PageContext.SESSION_SCOPE

    PageContext.REQUEST_SCOPE

    PageContext.PAGE_SCOPE

    findAttribute方法,在四大域中搜寻属性,搜寻的顺序是page域、request域、session域、application域,

    从小域到大域开始搜索,如果搜索到就直接获取该值,如果所有域中都找不到,返回一个null(与el表达式不同,此处返回null,对网页是不友好的)

    (3)跳转到其他资源,其身上提供了forward和include方法,简化重定向和转发的操作。

    展开全文
  • 深入理解JavaScript作用域作用域

    万次阅读 多人点赞 2019-03-15 09:22:30
    JavaScript中被称为作用域(Scope)的特性。虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,本文我会尽我所能用最简单的方式来解释作用域作用域链,希望大家有所收获! 作用域(Scope) 1.什么是...

    前言

    JavaScript中有一个被称为作用域(Scope)的特性。虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,本文我会尽我所能用最简单的方式来解释作用域和作用域链,希望大家有所收获!

    想阅读更多优质文章请猛戳GitHub博客,一年五十篇优质文章等着你!

    作用域(Scope)

    1.什么是作用域

    作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。可能这两句话并不好理解,我们先来看个例子:

    function outFun2() {
        var inVariable = "内层变量2";
    }
    outFun2();//要先执行这个函数,否则根本不知道里面是啥
    console.log(inVariable); // Uncaught ReferenceError: inVariable is not defined
    

    从上面的例子可以体会到作用域的概念,变量inVariable在全局作用域没有声明,所以在全局作用域下取值会报错。我们可以这样理解:作用域就是一个独立的地盘,让变量不会外泄、暴露出去。也就是说作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。

    ES6 之前 JavaScript 没有块级作用域,只有全局作用域和函数作用域。ES6的到来,为我们提供了‘块级作用域’,可通过新增命令let和const来体现。

    2.全局作用域和函数作用域

    在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:

    • 最外层函数 和在最外层函数外面定义的变量拥有全局作用域
    var outVariable = "我是最外层变量"; //最外层变量
    function outFun() { //最外层函数
        var inVariable = "内层变量";
        function innerFun() { //内层函数
            console.log(inVariable);
        }
        innerFun();
    }
    console.log(outVariable); //我是最外层变量
    outFun(); //内层变量
    console.log(inVariable); //inVariable is not defined
    innerFun(); //innerFun is not defined
    
    • 所有末定义直接赋值的变量自动声明为拥有全局作用域
    function outFun2() {
        variable = "未定义直接赋值的变量";
        var inVariable2 = "内层变量2";
    }
    outFun2();//要先执行这个函数,否则根本不知道里面是啥
    console.log(variable); //未定义直接赋值的变量
    console.log(inVariable2); //inVariable2 is not defined
    
    • 所有window对象的属性拥有全局作用域

    一般情况下,window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等等。

    全局作用域有个弊端:如果我们写了很多行 JS 代码,变量定义都没有用函数包括,那么它们就全部都在全局作用域中。这样就会 污染全局命名空间, 容易引起命名冲突。

    // 张三写的代码中
    var data = {a: 100}
    
    // 李四写的代码中
    var data = {x: true}
    

    这就是为何 jQuery、Zepto 等库的源码,所有的代码都会放在(function(){....})()中。因为放在里面的所有变量,都不会被外泄和暴露,不会污染到外面,不会对其他的库或者 JS 脚本造成影响。这是函数作用域的一个体现。

    函数作用域,是指声明在函数内部的变量,和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部。

    function doSomething(){
        var blogName="浪里行舟";
        function innerSay(){
            alert(blogName);
        }
        innerSay();
    }
    alert(blogName); //脚本错误
    innerSay(); //脚本错误
    

    作用域是分层的,内层作用域可以访问外层作用域的变量,反之则不行。我们看个例子,用泡泡来比喻作用域可能好理解一点:

    最后输出的结果为 2, 4, 12

    • 泡泡1是全局作用域,有标识符foo;
    • 泡泡2是作用域foo,有标识符a,bar,b;
    • 泡泡3是作用域bar,仅有标识符c。

    值得注意的是:块语句(大括号“{}”中间的语句),如 if 和 switch 条件语句或 for 和 while 循环语句,不像函数,它们不会创建一个新的作用域。在块语句中定义的变量将保留在它们已经存在的作用域中。

    if (true) {
        // 'if' 条件语句块不会创建一个新的作用域
        var name = 'Hammad'; // name 依然在全局作用域中
    }
    console.log(name); // logs 'Hammad'
    

    JS 的初学者经常需要花点时间才能习惯变量提升,而如果不理解这种特有行为,就可能导致
    bug 。正因为如此, ES6 引入了块级作用域,让变量的生命周期更加可控。

    3.块级作用域

    块级作用域可通过新增命令let和const声明,所声明的变量在指定块的作用域外无法被访问。块级作用域在如下情况被创建:

    1. 在一个函数内部
    2. 在一个代码块(由一对花括号包裹)内部

    let 声明的语法与 var 的语法一致。你基本上可以用 let 来代替 var 进行变量声明,但会将变量的作用域限制在当前代码块中。块级作用域有以下几个特点:

    • 声明变量不会提升到代码块顶部

    let/const 声明并不会被提升到当前代码块的顶部,因此你需要手动将 let/const 声明放置到顶部,以便让变量在整个代码块内部可用。

    function getValue(condition) {
    if (condition) {
    let value = "blue";
    return value;
    } else {
    // value 在此处不可用
    return null;
    }
    // value 在此处不可用
    }
    
    • 禁止重复声明

    如果一个标识符已经在代码块内部被定义,那么在此代码块内使用同一个标识符进行 let 声明就会导致抛出错误。例如:

    var count = 30;
    let count = 40; // Uncaught SyntaxError: Identifier 'count' has already been declared
    

    在本例中, count 变量被声明了两次:一次使用 var ,另一次使用 let 。因为 let 不能在同一作用域内重复声明一个已有标识符,此处的 let 声明就会抛出错误。但如果在嵌套的作用域内使用 let 声明一个同名的新变量,则不会抛出错误。

    var count = 30;
    // 不会抛出错误
    if (condition) {
    let count = 40;
    // 其他代码
    }
    
    • 循环中的绑定块作用域的妙用

    开发者可能最希望实现for循环的块级作用域了,因为可以把声明的计数器变量限制在循环内,例如:

    for (let i = 0; i < 10; i++) {
      // ...
    }
    console.log(i);
    // ReferenceError: i is not defined
    

    上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。

    var a = [];
    for (var i = 0; i < 10; i++) {
      a[i] = function () {
        console.log(i);
      };
    }
    a[6](); // 10
    

    上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向的就是全局的i。也就是说,所有数组a的成员里面的i,指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是 10。

    如果使用let,声明的变量仅在块级作用域内有效,最后输出的是 6。

    var a = [];
    for (let i = 0; i < 10; i++) {
      a[i] = function () {
        console.log(i);
      };
    }
    a[6](); // 6
    

    上面代码中,变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。你可能会问,如果每一轮循环的变量i都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本轮循环的值?这是因为 JavaScript 引擎内部会记住上一轮循环的值,初始化本轮的变量i时,就在上一轮循环的基础上进行计算。

    另外,for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。

    for (let i = 0; i < 3; i++) {
      let i = 'abc';
      console.log(i);
    }
    // abc
    // abc
    // abc
    

    上面代码正确运行,输出了 3 次abc。这表明函数内部的变量i与循环变量i不在同一个作用域,有各自单独的作用域。

    作用域链

    1.什么是自由变量

    首先认识一下什么叫做 自由变量 。如下代码中,console.log(a)要得到a变量,但是在当前的作用域中没有定义a(可对比一下b)。当前作用域没有定义的变量,这成为 自由变量 。自由变量的值如何得到 —— 向父级作用域寻找(注意:这种说法并不严谨,下文会重点解释)。

    var a = 100
    function fn() {
        var b = 200
        console.log(a) // 这里的a在这里就是一个自由变量
        console.log(b)
    }
    fn()
    

    2.什么是作用域链

    如果父级也没呢?再一层一层向上寻找,直到找到全局作用域还是没找到,就宣布放弃。这种一层一层的关系,就是 作用域链 。

    var a = 100
    function F1() {
        var b = 200
        function F2() {
            var c = 300
            console.log(a) // 自由变量,顺作用域链向父作用域找
            console.log(b) // 自由变量,顺作用域链向父作用域找
            console.log(c) // 本作用域的变量
        }
        F2()
    }
    F1()
    

    3.关于自由变量的取值

    关于自由变量的值,上文提到要到父作用域中取,其实有时候这种解释会产生歧义。

    var x = 10
    function fn() {
      console.log(x)
    }
    function show(f) {
      var x = 20
      (function() {
        f() //10,而不是20
      })()
    }
    show(fn)
    

    在fn函数中,取自由变量x的值时,要到哪个作用域中取?——要到创建fn函数的那个作用域中取,无论fn函数将在哪里调用

    所以,不要在用以上说法了。相比而言,用这句话描述会更加贴切:要到创建这个函数的那个域”。
    作用域中取值,这里强调的是“创建”,而不是“调用”
    ,切记切记——其实这就是所谓的"静态作用域"

    var a = 10
    function fn() {
      var b = 20
      function bar() {
        console.log(a + b) //30
      }
      return bar
    }
    var x = fn(),
      b = 200
    x() //bar()
    

    fn()返回的是bar函数,赋值给x。执行x(),即执行bar函数代码。取b的值时,直接在fn作用域取出。取a的值时,试图在fn作用域取,但是取不到,只能转向创建fn的那个作用域中去查找,结果找到了,所以最后的结果是30

    作用域与执行上下文

    许多开发人员经常混淆作用域和执行上下文的概念,误认为它们是相同的概念,但事实并非如此。

    我们知道JavaScript属于解释型语言,JavaScript的执行分为:解释和执行两个阶段,这两个阶段所做的事并不一样:

    解释阶段:

    • 词法分析
    • 语法分析
    • 作用域规则确定

    执行阶段:

    • 创建执行上下文
    • 执行函数代码
    • 垃圾回收

    JavaScript解释阶段便会确定作用域规则,因此作用域在函数定义时就已经确定了,而不是在函数调用时确定,但是执行上下文是函数执行之前创建的。执行上下文最明显的就是this的指向是执行时确定的。而作用域访问的变量是编写代码的结构确定的。

    作用域和执行上下文之间最大的区别是:
    执行上下文在运行时确定,随时可能改变;作用域在定义时就确定,并且不会改变

    一个作用域下可能包含若干个上下文环境。有可能从来没有过上下文环境(函数从来就没有被调用过);有可能有过,现在函数被调用完毕后,上下文环境被销毁了;有可能同时存在一个或多个(闭包)。同一个作用域下,不同的调用会产生不同的执行上下文环境,继而产生不同的变量的值

    给大家推荐一个好用的BUG监控工具Fundebug,欢迎免费试用!

    欢迎关注公众号:前端工匠,你的成长我们一起见证!如果你感觉有收获,欢迎给我打赏,以激励我更多输出优质开源内容

    参考文章和书籍

    展开全文
  • WEB前端学习二 JS作用域作用域

    千次阅读 2018-06-04 11:05:26
    先上三段说明作用域的代码?1234567891011121314151617181920212223242526272829303132//==========例1========== var scope='global';function fn(){ alert(scope); var scope='local'; alert(scope);}fn(); //...
  • spring 支持种 bean 的作用域

    万次阅读 2019-07-16 15:16:51
    spring 支持种 bean 的作用域? singleton:单例模式,在整个Spring IoC容器中,使用 singleton 定义的 bean 只有一实例 prototype:原型模式,每次通过容器的getbean方法获取 prototype 定义的 bean 时,都...
  • 在Spring中,Bean有几作用域?

    千次阅读 2017-06-06 12:16:59
    在Spring中,Bean有几作用域?  推荐于2016-11-20 05:51:17 1、singleton作用域 当一bean的作用域设置为singleton,那么Spring IOC容器中只会存在一共享的bean实例,并且所有对bean的...
  • Cookie的作用域

    千次阅读 2015-08-15 23:08:33
     Cookie可以说是我学习Web开发最早接触的几个概念之一了,本以为Cookie的使用对我来说应该毫无问题,但前端时间SSO的开发又给我上了一课 ,再一次让我经历了 “入门-精通-陌生-熟悉” 的过程。  以前对于Cookie...
  • 而这样的内置对象在JSP中一共以及四个作用域。 所谓“作用域”就是“信息共享的范围”,也就是说一信息能够在多大的范围内有效。4JSP内置对象的作用域分别为:application、session、request、page 。JSP...
  • request作用域

    千次阅读 2017-06-04 21:33:31
    1 一个HTTP请求的处理可能需要多个Servlet合作,而这几个Servlet之间可以通过某种方式传递信息,但这个信息在请求结束...void setAttribute(String name, Object value):将对象value以name为名称保存到request作用域
  • Spring 配置使用 - Bean 作用域

    千次阅读 2016-10-08 21:59:38
    在 Spring IoC 容器中具有以下作用域:基本作用域(request、prototype),Web 作用域(reqeust、session、globalsession),自定义作用域。Spring 的作用域在装配 Bean 时就必须在配置文件中指明,配置方式如
  • JavaWeb四大作用域

    千次阅读 2019-03-11 16:18:06
    Web开发中的四个域对象(范围由小到大): page(jsp有效) request(一次请求) session(一次会话) application(当前web应用) page指的是pageContext. request指的是HttpServletRequest session 指的是...
  • 作用域链、原型链、THIS指针是 JAVASCRIPT 入门级的三重要概念。作为初学者经常容易混淆作用域链和原型链,导致使用 this 指针时诸多混乱,比方企图使用 this 指针引用一私有变量;也可能导致在原型函数中使用类...
  • html的四个作用域

    千次阅读 2017-01-11 16:09:25
    首先要声明一点,所谓“作用域”就是“信息共享的范围”,也就是说一信息能够在多大的范围内有效。4JSP内置对象的作用域分别为:application、session、request、page 。JSP内置对象作用域表如下: ...
  • 解释Spring支持的种bean的作用域

    千次阅读 2020-06-14 20:37:04
    3.request:每次http请求都会创建一bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。 4.session:在一HTTP Session中,一bean定义对应一实例。该作用域仅在基于web的Spring ...
  • spring bean的作用域之间什么区别

    万次阅读 2018-03-05 22:29:20
    Spring的 bean5种作用域分别是:singleton、prototype、...作用域包括:singleton全局只有一实例prototype每次调用产生一新的实例在web使用的时候还有三个作用域,但是必须在web.xml中注册一RequestCont...
  • Spring bean的作用域之间什么区别

    千次阅读 2018-09-25 19:22:21
    Spring的 bean5种作用域分别是:singleton、prototype、request、session和GlobalSession 简单介绍: spring 起初的版本只有singleton,也就是是否是单例模式。 作用域包括: 1 、singleton全局只有一实例 ...
  • Spring中Bean的五个作用域

    万次阅读 2015-11-23 15:35:25
    当通过Spring容器创建一Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域: singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有...
  • spring bean的作用域

    千次阅读 2015-06-28 19:10:37
    我们需要了解下spring bean的作用域 在所有的spring bean默认都是单例的,当容器分配一bean时,它总是返回bean的同一实例(这点大家可以去试下)。但是时候我们需要每次请求...spring bean的作用域有如下种:
  • 作用域------顾名思义,起作用的大小范围也!如果是你自己去学习一知识点,你要达到哪些目标才算是对一知识点称得上是懂得,理解,掌握呢?从扁神医的望闻问切,到数据库的增删改查,所有的事物开始也不外乎:是...
  • JSP的四个作用域

    万次阅读 多人点赞 2012-07-25 20:54:45
    首先要声明一点,所谓“作用域”就是“信息共享的范围”,也就是说一信息能够在多大的范围内有效。4JSP内置对象的作用域分别为:application、session、request、page 。JSP内置对象作用域表如下: ...
  • @Scope(作用域

    千次阅读 2020-09-10 23:54:17
    @Scope注解是springIoc容器中的一个作用域,在 Spring IoC 容器中具有以下作用域:基本作用域singleton(单例)、prototype(多例),Web 作用域(reqeust、session、globalsession),自定义作用域 xml <?...
  • spring bean的5种作用域

    千次阅读 2018-03-28 15:34:04
    Spring的Bean以下五种作用域singleton:SpringIOC容器只会创建该Bean的唯一实例;prototype:每次请求都创建一实例;request:每次HTTP请求都会产生一新的bean。需要注意的是,该作用域仅在基于Web的Spring ...
  • Spring Bean的5种作用域

    2019-09-05 08:49:01
    Spring Bean的5种作用域 singleton作用域: Spring的scope的默认值是singleton Spring 只会为每一bean创建一实例,并保持bean的引用. 或 Spring1以上提供 prototype作用域: 每一次请求(将其注入到另...
  • jsp中四个作用域的区别

    千次阅读 2015-04-17 15:30:19
    jsp中四个作用域的区别  JSP内置对象作用域表  名称  作用域  application  在所有应用程序中有效  session  在当前会话中有效  request  在...
  • JSP的四种作用域

    万次阅读 2016-04-21 22:45:58
    Web应用中,JSP创建的对象一定的生命周期,也可能被其他组件或者对象访问。对象的声明周期和可访问性称为作用域。四种范围对象作用域从小到大顺序如下:pageContext----request----session----application。  ...
  • 有几个对象 1、Session:一个用户第一次访问网站,一个唯一的id 存在客户电脑里(cookie) 2、request:从浏览器的一次请求 3、ServletContext:可以表示多个sevlet,相同整个应用的存数据的对象 4、coockies:用户...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,959
精华内容 49,183
关键字:

web作用域有几个