`

Request、Session、servletContext区别

 
阅读更多
就servlet规范本身,servlet可以再三个不同的作用域存储数据,分别是:              Request对象、Session对象和getServletContext()方法返回的servletContext对象中保存。以下是本人对他们之间区别的分析:
    1    首先从作用范围来说
    Request       保存的键值仅在下一个request对象中可以得到。
    Session        它是一个会话范围,相当于一个局部变量,从Session第一次创建知道关闭,数据都一直 保存,每一个客户都有一个Session,所以它可以被客户一直访问,只要Session没有关闭和超时即浏览器关闭。
    servletContext    它代表了servlet环境的上下文,相当于一个全局变量,即只要某个web应用在启动中,这个对象就一直都有效的存在,所以它的范围是最大的,存储的数据可以被所有用户使用,只要服务器不关闭,数据就会一直都存在。
    2   它们的优缺点:
    request
    好处:用完就仍,不会导致资源占用的无限增长。
    弊处:数据只能被下一个对象获取,所以在写程序时会因为无法共享数据导致每次要用都从数据库中取,多做操作,自然会对性能有一些影响。
    session
    好处:是一个局部变量,可以保存用户的信息并直接取出,不用每次都去数据库抓,少做操作,极大的方便了程序的编写。
    弊处:每个客户都有一个session,只能自己使用,不同session可能保存大量重复数据; 可能耗费大量服务器内存; 另外session构建在cookie和url重写的基础上,所以用session实现会话跟踪,会用掉一点点服务器带宽和客户端保持联络, 当然session越多,耗费的带宽越多,理论上也会对性能造成影响。 集群的session同步会是个问题。
    servletContext
    好处:不用每次都去数据库抓,少做操作。 存储的数据所有客户都可以用。 可减少重复在内存中存储数据造成的开销。
分享到:
评论

相关推荐

    四个范围 pagecontext request session application

    在Java Web开发中,"四个范围"是指PageContext、Request、Session和Application这四个不同的作用域,它们分别代表了Web应用程序中数据存储的不同层级和生命周期。理解并熟练掌握这四个范围,对于编写高效且可维护的...

    pageContext-request-session-application的使用及区别

    ### pageContext-request-session-application的使用及区别 #### 一、概述 在Web开发中,`pageContext`, `request`, `session`, 和 `application` 是四个非常重要的内置对象,它们分别代表了不同作用域内的数据存储...

    访问或添加三个范围的属性与获取Request-Session-ServletContext-Response对象.rar

    标题中的“访问或添加三个范围的属性与获取Request-Session-ServletContext-Response对象”指的是在Java Web开发中,如何操作四个重要的请求处理对象:HttpServletRequest(Request)、HttpSession(Session)、...

    关于servlet中request,session,application三者关系的形象解析

    request、session和application是Servlet编程中三种重要的域对象,它们各自管理着特定范围的数据存储。本文将深入解析这三者的概念、特点以及它们之间的关系。 1. HttpServletRequest request对象: request对象...

    监听request、session、ServletContext 对象存放的数据变化情况

    博客地址:...存放数据指的是这三个对象在工程中setAttribute(),removeAttribute()的时候,我们的监听器就会知道,然后在对应的方法中执行相应的操作。

    request、session作用域的理解

    Request、Session 和 Application 作用域的区别: * Request 作用域是指在当前请求中有效的信息共享范围 * Session 作用域是指在当前会话中有效的信息共享范围 * Application 作用域是指在所有应用程序中有效的信息...

    struts2访问request,session,application作用域

    ### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...

    【柠萌】服务器四大作用域对象的区别

    快速认清pageContext,request,session,application/ServletContext的区别。 区别1:生命周期 区别2:共享范围 区别3:适合存储什么样的数据

    Struts2学习笔记(三) Struts2中访问request,session,和application对象

    在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...

    struts2访问application、session以及request等web资源的示例代码

    在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...

    jsp用的session和appliction的用法

    通过 `request.getSession()` 方法创建一个新的 Session,如果已有 Session,则返回该 Session。如果 `true` 作为参数传递(如 `request.getSession(true)`),则在不存在 Session 时会新建一个。 2. **存储数据**:...

    javaweb监听session

    然后,你可以通过`getSessionById()`方法传入Session ID和ServletContext来获取对应的Session。 总的来说,Java Web中的Session监听器允许我们在Session生命周期的关键时刻执行自定义操作,而根据Session ID获取...

    struts2创建 request response session application

    在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...

    普通java类 获取Request

    HttpSession session = request.getSession(); if (session != null) { return session.getServletContext(); } } return null; } } ``` #### 如何在Filter中设置Request 为了能够在普通的Java类中获取到`...

    第21章 Cookie和Session.pdf

    3.4 Session与Request应用区别 Request对象仅用于单次请求,而Session在整个会话期间有效,可以跨多个请求存储数据。 3.5 Session的生命周期 默认情况下,Session在用户一段时间内无活动后自动失效,这个时间间隔...

    Session.docx

    Session对象的创建是在程序中首次调用`request.getSession()`时触发,如果返回的Session是新创建的,可以通过`isNew()`方法验证。而Session的销毁有两种情况:一是超过默认的30分钟无活动,二是通过调用`session....

    jsp网站开发的课后习题,application,session,周期,转发和跳的区别,模拟淘宝等

    本课后习题主要关注以下几个关键知识点:Application、Session、页面生命周期、请求转发与重定向的区别,以及如何模拟像淘宝这样的电子商务平台的功能。让我们逐一深入探讨。 1. Application(应用上下文) ...

    数据库测试test.sql

    HttpSession session = request.getSession(); // session.setAttribute("username",username); session.setAttribute("user",user); //response.sendRedirect("/myservlet2/admin/success.jsp"); //response....

    Java Web程序设计入门课件-Session对象.pptx

    作为Servlet的三大域对象之一(request、session、application/ServletContext),`HttpSession`提供了多种方法,如设置和获取属性、检查会话是否有效、以及销毁会话等。开发者可以通过`setAttribute()`和`...

    spring-session:spring session+redis实现分布式缓存

    sessionFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); } } ``` 5. **测试验证**: 创建一个简单的Controller,检查session数据是否能在不同的服务器实例间共享。 **优点与...

Global site tag (gtag.js) - Google Analytics