我有一个应用程序,其中 Servlet 有一个名为Update(ReqIn, ReqOut)
. 我从doGet
&调用它doPost
并传递 Request 和 Response 变量,然后Update(...)
填写以下静态变量:
...
public class Server extends HttpServlet {
public static HttpServletRequest In = null;
public static HttpServletResponse Out = null;
public static boolean isDebug = true;
public static boolean isPost = false;
public static String URL = "";
public static String IP = "0.0.0.0";
public static Cookie[] Cookies = null;
public static UserClass User = null;
public static boolean isLoggedIn = false;
...
}
基本上抽象出最常用的东西并根据每个请求对其进行更新。这也允许我从网站的任何地方访问 IP 地址和当前用户数据,只需Server.User.getUsername();
在每次加载页面时编写一个新的 Class 实例并使用更长的访问代码:Server.getUser().getUsername();
现在的问题是:在多用户环境(AppEngine 上的 Jetty)中,这会带来什么问题吗?例如,一些线程/竞赛问题使用户看到不正确的 IP 地址,或者在极端情况下突然以不同的用户身份登录?
或者我应该重写代码并将其更改为,Public UserClass User
而不是Public static UserClass User
等?