`
wangyanlong0107
  • 浏览: 502225 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

session何时创建

    博客分类:
  • jsp
 
阅读更多
没有 HttpServletRequest.getSession(true) ,Sesion是不会创建的, 即便Servlet又转发(或者重定向)到第二个页,只要第二个页(html)依然不是jsp页,Session就依然不会创建,如果是jsp则自动创建一个session对象,放到jsp的内置对象里面:jsp生成的servlet.java
//可以看到内置对象有session:
public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    JspFactory _jspxFactory = null;
    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;


    try {
      _jspxFactory = JspFactory.getDefaultFactory();
      response.setContentType("text/html;charset=UTF-8");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

      out.write("\r\n");
      out.write("\r\n");
      out.write("\r\n");
      out.write("<html>\r\n");
      out.write("<head>\r\n");

String selfUrl = (String) SystemParameter.getValue(ConfigClassType.SYSTEM, "SSO", "SelfUrl");

      out.write("\r\n");
      out.write("</head>\r\n");
      out.write("<body>\r\n");
      out.write("<SCRIPT language=\"javascript\">\r\n");
      out.write("<!--\r\n");
      out.write("top.window.location = '");
      out.print( request.getContextPath());
      out.write("/loginindex.do';\r\n");
      out.write("//-->\r\n");
      out.write("</SCRIPT> \r\n");
      out.write("<!-- top.window.location = '");
      out.print( request.getContextPath() + selfUrl);
      out.write("';-->\r\n");
      out.write("<!-- top.window.location = '");
      out.print( request.getContextPath());
      out.write("/loginindex.do';-->  \r\n");
      out.write("</body>\r\n");
      out.write("</html>");
    } catch (Throwable t) {
      if (!(t instanceof SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          out.clearBuffer();
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
      }
    } finally {
      if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }
分享到:
评论

相关推荐

    监听session的创建到销毁

    - **统计在线用户**:通过监听Session创建和销毁,可以实时统计网站上的在线用户数量。 - **资源释放**:在Session销毁时,可以清理与之关联的数据库连接或其他资源。 - **安全控制**:检测长时间未活动的Session...

    HttpSessionListener监听session的创建及销毁,实现在线用户统计

    用户登录时,调用LoginServlet,将用户名写入application的在线用户列表中,用户退出时,调用LogoutServlet,调用session.invalidate(),交给HttpSessionListener的sessionDestroyed()方法,将用户从在线列表中删除。...

    解决Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程问题

    在本文中,我们主要探讨了在使用Spring Session以及Redis作为存储方式时,由于消息监听导致创建大量线程的问题及其解决方案。我们将从Spring Session的基础知识、Redis在Spring Session中的作用、监听机制导致线程...

    session session session szsessdifn

    当用户首次访问网站时,服务器会为该用户创建一个唯一的Session ID,并将其存储在服务器的内存中。这个ID随后通过Cookie或者URL重写等方式返回给客户端。每次客户端请求服务器时,都会携带这个Session ID,服务器...

    报表session与应用session常识普及

    每个用户访问网站时,服务器都会为该用户创建一个唯一的会话标识(session ID),通过这个标识可以在多次请求之间共享数据。系统session和报表session是两个独立的概念,它们在Web服务器下共存时,不会发生冲突,...

    jsp中Session对象源码

    首先,`Session` 对象的创建通常发生在用户第一次访问受保护的资源时。服务器通过 `HttpServletRequest` 对象的 `getSession()` 方法来创建一个新的 `HttpSession` 实例。如果当前会话不存在,该方法会创建一个新的...

    自己实现的spring-session

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

    Jsp内置对象session总结

    6. 取得用户最后一次操作的时间: 方法:`public long getLastAccessedTime()`, 用户在线时间 = Session 最后一次操作时间 - Session 创建时间。 Session 与 Cookie 的区别 Session 将信息保存在服务器上,而 ...

    session监听小例子

    Session监听器是Servlet API提供的一种机制,允许开发者对Session的生命周期事件进行监听和处理,比如Session创建、更新、失效等。下面,我们将深入探讨Session监听及其在实际应用中的作用。 首先,我们需要了解...

    sessionsession

    Session的工作原理是,当用户访问服务器并进行登录或其他需要记录状态的操作时,服务器会在内存中创建一个唯一的Session ID,并将其发送给浏览器。这个Session ID通常以Cookie的形式存储在客户端。之后,每当客户端...

    session实验

    1. **Session的创建与销毁**:实验可能涉及到如何在服务器端创建一个新的Session,以及在用户登出或会话超时时如何销毁Session。通常,开发者会设置一个会话超时时间,超过这个时间未收到客户端的请求,服务器将自动...

    session之用户交互间隔&&session持久化

    - **创建**:当用户第一次访问服务器时,如果没有提供有效的 Session ID,则服务器会为该用户创建一个新的 Session,并将 Session ID 存储在 Cookie 中返回给客户端。 - **销毁**:Session 的销毁可以由服务器自动...

    js操作session例子

    当用户访问网站时,服务器会为每个用户创建一个唯一的Session ID,并将其通过Cookie返回给浏览器。之后,浏览器在每次发送请求时都会带上这个Session ID,服务器根据ID找到对应的Session数据。 在JavaScript中,...

    判断session过期的方式

    当用户登录网站后,服务器会创建一个Session对象,并将其关联到用户的浏览器。这个Session对象通常包含用户的一些关键信息,如用户名、权限等。然而,为了安全考虑,Session不会无限期地保持活跃状态,而是设置有...

    重写session机制,将session写入数据库,建表和注释写的都很清晰,已测试

    重写session机制,默认session是以临时文件形式存储在服务器,将session写入数据库,建表和注释写的都很清晰,已测试

    JAVA SESSION监听器

    HttpSessionListener提供了对Session创建、销毁事件的监听,而HttpSessionAttributeListener则可以监听Session属性的变化,比如添加、移除和替换事件。 以下是创建一个简单的HttpSessionListener的例子: ```java ...

    vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离

    对于更复杂的交互场景,开发者需要借助如CreateProcessAsUser这样的API,或者使用WCF(Windows Communication Foundation)、.NET远程处理等技术进行跨Session通信,实现在用户桌面创建应用程序界面。例如,服务可以...

    Springboot实现多服务器session共享

    1. 创建一个Springboot项目,添加spring-session-data-redis依赖项。 2. 配置Redis服务器,用于存储Session数据。 3. 在应用程序中使用Spring Session代替传统的HTTPSession。 4. 使用Nginx或其他反向代理服务器来...

    Hibernate-nosession

    在这种情况下,使用Hibernate-nosession模式可以避免创建和管理Session的开销,从而提高应用性能。nosession模式并不意味着完全不使用Hibernate,而是尽量减少对Session的依赖,转而使用其他API,例如Query或...

Global site tag (gtag.js) - Google Analytics