有两种方法可以检测会话是否存在。
1)request.getSession(); + session.isNew()
–从“ request.getSession();”检索会话,无论如何,该函数将始终返回会话,这等同于request.getSession(true);。 唯一的问题是您不知道这是新会话还是现有会话。
–稍后您可以使用“ session.isNew()”进行检查,如果这是一个新会话,则为true,否则返回一个已存在的会话。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
HttpSession session = request.getSession();
if(session.isNew()){
pw.println("New session is jutst created");
}else{
pw.println("This is old session");
}
}
2)request.getSession(false); + if(session == null)
–从“ request.getSession(false);”检索会话,该函数将返回一个会话(如果存在),否则将返回空值。
–稍后您可以使用会话对象进行“空”检查,null表示不存在可用的会话。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
HttpSession session = request.getSession(false);
if(session ==null){
pw.println("No session available");
}else{
pw.println("This is old session");
}
}
翻译自: https://mkyong.com/servlet/how-to-check-whether-the-session-is-existed/