Blogger Information
Blog 3
fans 0
comment 0
visits 1635
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
servlet三大作用域:request,session,application
小木偶的话的博客
Original
818 people have browsed it

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对象方法:

        在Servlet中:HttpSession session = request.getSession();

        由于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对象一般用于在多个客户端间共享数据时使用。

        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.如何正确的选择作用域不正确,会出现什么情况

       内存浪费.


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post