【问题标题】:How to prevent servlet to create new session when recieves get request?收到获取请求时如何防止servlet创建新会话?
【发布时间】:2019-07-15 14:50:52
【问题描述】:

我的 servlet 中有一个部分,它使用 API 创建一个新会话。由于它在doGet函数中,所以当servlet每次收到get请求时,它也会创建一个新的会话。

我只会在第一个 get 请求到达时创建新会话。

【问题讨论】:

    标签: java api http session servlets


    【解决方案1】:

    Servelet 不会为每个请求创建新会话,除非您添加了一些自定义代码来为每个请求创建新会话。您可以检查会话如下,

    HttpSession session = request.getSession();
    String sessionId = session.getId();
    

    【讨论】:

      【解决方案2】:

      假设当您说“使用 API 创建新会话”时,您正在 Servlet 中调用第 3 方 API,并补充 Code_Mode 的答案,您应该在调用此第 3 方之前验证 servlet 中的会话是否刚刚创建API。

      HttpSession session = request.getSession();
      if (session.isNew()) {
          // Do your API thing here
      } 
      

      如果有一个现有的会话并且这个会话不是新的,这意味着不是第一次调用 doGet 方法。

      干杯!

      【讨论】:

        猜你喜欢
        • 2011-11-05
        • 1970-01-01
        • 2017-01-03
        • 2014-02-11
        • 2016-01-23
        • 2014-03-22
        • 2016-09-10
        • 2015-09-25
        相关资源
        最近更新 更多