gpt4 book ai didi

java - 将数据存储在 servlet 的 DTO 中...?

转载 作者:行者123 更新时间:2023-12-02 07:41:06 25 4
gpt4 key购买 nike

是否可以实现以下方法来将数据存储在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com