如何避免在单例中跨不同用户共享变量 Class

How to avoid share of variable across different user in singleton Class

  public class CompanyServlet extends HttpServlet
    {

private static final long serialVersionUID = 1L;

private static org.apache.log4j.Logger  log = Logger.getLogger(Company.class);

/**
 * This string holds the filename of the file.
 */
String fileName = null;
Details detailsById = null;

    Page page = null;
String date = null;
HttpServletRequest request = null;

/**
 * This holds the bytes of the file to be written .
 */
Workbook wb = null;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    doPost(request, response);
}

public HttpServletRequest getRequest() {
    return request;
}

public void setRequest(HttpServletRequest request) {
    this.request = request;
}


public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{

    }

classCompanyServlet 是单例的,所以成员字段请求是在用户之间共享的。结果是一个用户可以看到另一个用户的数据。如何避免这个问题。

不要将状态保存在 servlet 中,如果需要将它们存储在会话中,请将它们保存在会话中。