Java 如何在会话结束后重置servlet数据?

Java 如何在会话结束后重置servlet数据?,java,servlets,Java,Servlets,假设我有以下代码片段: public class ApplyOfferCalculation extends HttpServlet { private RequestDispatcher rd; static int totaldiscount = 0; StringBuilder totalofferids = new StringBuilder(); Map map = new HashMap();

假设我有以下代码片段:

    public class ApplyOfferCalculation extends HttpServlet {

        private RequestDispatcher rd;
        static int totaldiscount = 0;
        StringBuilder totalofferids = new StringBuilder();
        Map map = new HashMap();
        static int count = 0;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
}
}
现在我想在会话结束后重置类级变量。
如何做?

让servlet容器完成它的工作,不要试图在servlet中存储状态。使用非最终静态变量是非常不可取的


如果您需要会话级别的变量,那么就使用会话,但要保持servlet不存在有状态行为,因为根据定义它们是无状态的。

由于多线程问题,您应该避免在servlet级别定义非
final
字段。为什么要在重置类级别变量时保留它们?只需将它们保持在本地,并将它们传递给其他必要的方法。如果必须具有特定于会话的状态,则使用HttpSession,不要为此使用servlet变量。