0
我有一个Java应用程序。我想知道两个不同的用户是否登录到应用程序,然后是他们将得到的JSP。这是否是同一个JSP的两个不同实例? 如果不是,请解释。做两个不同的会话得到两个不同的JSP实例
我有一个Java应用程序。我想知道两个不同的用户是否登录到应用程序,然后是他们将得到的JSP。这是否是同一个JSP的两个不同实例? 如果不是,请解释。做两个不同的会话得到两个不同的JSP实例
servletcontainer 为每个请求重用相同的servlet实例。因此,即使跨多个会话,也只有一个servlet实例可以重复用于来自多个客户端的多个请求。即使您注销并重新登录,它也会使用相同的实例。
这就是为什么以安全的方式编写servlet代码很重要 - 基本上意味着使用方法局部变量而不是实例变量,因为它们将被重用于多个请求。我希望这有帮助。
如果在不同用户间只有一个实例,那么表示线程被启动以满足请求,并且数据的干扰可以在不同用户之间存在。 –
正确。这就是为什么我们必须通过不让它们共享实例变量来保持servlet线程安全。 – Piyush
我不知道这是一个很好的问题,但在JSP页面中,我们不建议使用'isThreadSafe'指令,因为一次只有一个用户可以查看该页面,并且其他人必须等待,直到该页面已经完成请求。那么,有什么办法可以让页面线程安全吗? –