是否可以实现以下方法来将数据存储在 DTO 中并从应用程序中的任何位置访问它,而不是获取上下文?
请提供建议!!!
public class DummyDTO {
private String name = null;
private String age = null;
// getters and setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
public class MyServletClass extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DummyDTO dummyDTO = new DummyDTO();
dummyDTO.setName(request.getParameter("name"));
dummyDTO.setAge(request.getParameter("age"));
AnotherClass.setValues(dummyDTO);
}
public class AnotherClass {
String name = "";
String age = "";
public static void setValues(DummyDTO dummyDTO) {
name = dummyDTO.getName();
age = dummyDTO.getAge();
}
}
}
最佳答案
不,不能。静态字段对于整个类加载器来说是全局的。因此,如果您的 servlet 有多个并发请求,则第二个请求将覆盖第一个请求在静态字段中存储的数据(并且另外以线程不安全的方式)。
如果数据是请求的本地数据,则应将其存储在请求属性中。这就是他们的目的。
旁注:您的字段不是静态的,但编译代码的唯一方法就是使它们静态。
关于java - 将数据存储在 servlet 的 DTO 中...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573574/