`
xgbjmxn
  • 浏览: 269474 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

What is the difference between HTTPSession and Stateful Session Bean

阅读更多
What is the difference between HTTPSession and Stateful Session Bean

The answer:

From a logical point of view, a Servlet/JSP session is similar to an EJB session. Using a session, in fact, a client can connect to a server and maintain his state.
But, is important to understand, that the session is maintained in different ways and, in theory, for different scopes.

A session in a Servlet, is maintained by the Servlet Container through the HttpSession object, that is acquired through the request object. You cannot really instantiate a new HttpSession object, and it does not contains any business logic, but is more of a place where to store objects.

A session in EJB is maintained using the SessionBeans. You design beans that can contain business logic, and that can be used by the clients. You have two different session beans: Stateful and Stateless. The first one is somehow connected with a single client. It maintains the state for that client, can be used only by that client and when the client "dies" then the session bean is "lost".

A Stateless Session Bean does not maintain any state and there is no guarantee that the same client will use the same stateless bean, even for two calls one after the other. The lifecycle of a Stateless Session EJB is slightly different from the one of a Stateful Session EJB. Is EJB Containers responsability to take care of knowing exactly how to track each session and redirect the request from a client to the correct instance of a Session Bean. The way this is done is vendor dependant, and is part of the contract.
分享到:
评论

相关推荐

    httpSession

    1. **session的创建与销毁**:讲解何时服务器会创建session,以及在什么条件下会自动销毁session,比如超时或显式调用`HttpSession.invalidate()`。 2. **session的生命周期管理**:讨论session的默认超时时间...

    HttpSession/session,jsp,servlet——综合练习题一

    在IT行业中,尤其是在Web开发领域,`HttpSession`、`jsp`和`servlet`是三个非常重要的概念。这里我们将深入探讨这些技术,并结合一个名为"web26_session5示例1"的压缩包文件,来解析它们在实际应用中的综合运用。 ...

    cookie与session的区别

    Cookie 和 Session 是 Web 开发中两种重要的用户状态管理机制,主要用来识别和跟踪用户。在支付宝这样的大型互联网公司面试中,理解这两者的区别是至关重要的。 Cookie 是一种客户端存储机制,它通过 HTTP 响应头将...

    HttpSession的使用

    每个`HttpSession`都有一个生命周期,当用户关闭浏览器、手动清除session或者服务器达到预设的超时时,session会失效。默认情况下,session的超时时间为30分钟,但可以通过在web.xml配置文件中设置`<session-config>...

    session的使用

    6. **使用Session scoped bean**:在Spring框架中,可以创建Session级别的Bean,这样每个用户都有自己的Bean实例,避免了全局变量带来的问题。 综上所述,Session是Web开发中保持用户状态的关键工具。正确理解和...

    java后台请求http并保持Session

    HttpSession session = request.getSession(); session.setAttribute("userInfo", user); // 在后台请求中使用Session Map, String> cookies = new HashMap(); cookies.put("JSESSIONID", sessionId); // 设置...

    httpsession实现验证码登录小实例

    在本文中,我们将深入探讨如何使用Java编程语言和HttpSession接口来实现一个简单的验证码登录系统。验证码(CAPTCHA)是一种防止恶意机器人或自动化程序非法访问网站的安全机制,它要求用户输入图片上显示的一组随机...

    spring websocket获取httpsession

    HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getSession(); return new SessionInfo(session.getId(), principal.getName()); } } ``` 3. 获取...

    自己实现的spring-session

    如果没有sessionId就新创建session,如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId...

    spring session实现session共享

    1. **Session Registry**: Spring Session 提供了一个`SessionRegistry`接口,它用于存储和管理所有的Session信息,包括Session ID和对应的HttpSession对象。这样,即使在集群环境中,所有服务器也能访问到同一份...

    servlet2.4doc

    Returns the object bound with the specified name in this session, or null if no object is bound under the name. getAttributeNames() - Method in interface javax.servlet.ServletContext Returns an ...

    session配置secure和httpOnly

    在Web开发中,Session和Cookie是两种常见的会话管理机制。Cookie主要负责在客户端和服务器之间传递信息,而Session则是服务器端存储用户状态的一种手段。本文重点讨论的是Cookie中的两个重要属性:`secure`和`...

    Struts2 的Action使用session的方法

    在Struts2中,我们可以直接在Action类中注入HttpSession来访问session。以下是具体步骤: 1. **依赖注入**:首先,确保Action类继承自Struts2提供的`ActionSupport`类或自定义的Action支持类,并且已经添加了对...

    (转)讲解各种session

    Session有默认的过期时间,如Java的HttpSession默认为30分钟,超过这个时间未收到客户端的请求,Session将被自动销毁。开发者也可以自定义Session的存活时间。 **不同编程语言中的Session**: 1. **Java**:在...

    ServletHttpSession DEMO

    在Web应用程序中,当用户与服务器交互时,例如登录、购物等操作,通常需要跟踪用户的状态,这就需要用到Session。下面我们将深入探讨ServletHttpSession的相关知识点。 **1. HTTP协议的无状态性** HTTP协议本身是无...

    判断session过期的方式

    if (session == null || session.isNew()) { // 无法找到Session或者Session是新的,说明可能已过期 return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); } // 更新Session最后访问时间 session....

    WebSocket区分不同客户端两种方法(HttpSession和@PathParam)

    HttpSession httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName()); } } ``` 通过这种方式,可以在WebSocket连接建立时获取到当前用户的`HttpSession`,从而获取用户的相关...

    Springboot实现多服务器session共享

    Springboot实现多服务器session共享是指在分布式系统中,每个服务器上的Session可以共享,实现 Session 的同步和共享,从而解决了在分布式环境中Session不一致的问题。下面是关于Springboot实现多服务器session共享...

    spring-session实现session共享

    Spring-Session是Spring社区推出的一个项目,它的核心目标是替换传统的基于JSESSIONID的HttpSession,使得Session可以在分布式环境中进行存储和管理。Spring-Session能够透明地与Spring MVC和Spring Boot集成,无需...

    一篇优秀Session讲解

    - **设置Session属性**:使用HttpSession对象的setAttribute(String name, Object value)方法来设置Session属性。 - **获取Session属性**:使用HttpSession对象的getAttribute(String name)方法来获取Session属性。 ...

Global site tag (gtag.js) - Google Analytics