当接收到请求时,如何防止servlet创建新会话?

时间:2019-02-21 16:02:25

标签: java api http session servlets

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

仅当第一个获取请求到达时,我才会创建新会话。

2 个答案:

答案 0 :(得分:0)

Servelet不会在每个请求上创建新会话,除非您添加了一些自定义代码以在每个请求上创建新会话。您可以按以下方式检查会话,

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

答案 1 :(得分:0)

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

var resultToReturn = (from i in lstOverview
                              select new string[]
                              {
                i.num.ToString(),
                i.name,
                DataAccess.data.getGameType(i.type),
                i.dateComingOut.Value.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture),
                i.userLastUpdated.ToString(),
                i.freeOrPay.ToString(),
                $"<div><a href='{editLink + "/" + i.id}' class='btn btn-primary'>Edit</a></div>"
                              }).ToArray();

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

干杯!