gpt4 book ai didi

java - 如何将对象的当前状态保存到 Servlet 的上下文路径或从 Servlet 的上下文路径获取对象的当前状态

转载 作者:行者123 更新时间:2023-11-30 07:08:39 25 4
gpt4 key购买 nike

我是 Java Servlet 新手,对于我当前正在开发的应用程序(某种不带转发或重定向类的代理),我想将对象保存到应用程序的上下文路径中。

我知道有类似的问题,但我无法让它发挥作用,或者我只是不明白。

我必须在 web.xml 中指定上下文路径吗?我需要上下文监听器吗?

这是代码片段,但保存的对象中的对象为空;如何将对象的当前状态保存到上下文路径?

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {

if(this.getServletContext().getAttribute("oldConnector")==null){
Connector connection = new Connector();
connection.sendRequest(request);
this.getServletContext().setAttribute("oldConnector", connection);
}else{
((Connector)this.getServletContext().getAttribute("oldConnector")).sendResponse(response);
this.getServletContext().removeAttribute("oldConnector");
}

最佳答案

HttpServletResponse 的响应对象永远不会为 null,因为它是在向您的 servlet 发出第一个请求时由 Web 容器创建的。

因此,属性“oldConnector”未设置,因此您得到的值为 null。

建议:通过删除 if(response==null) 条件来设置上下文属性“oldConnector”。并在另一个 servlet 或相同的 servlet 中检索该属性,然后根据需要将其删除。

下面的代码可能会帮助您解决评论中的疑问。

        if(getServletContext().getAttribute("oldConnector") == null){
getServletContext().setAttribute("oldConnector", "old value");//dummy value added, replace it with your connection object.
System.out.println("oldConnector attribute has be set.");
}else{
getServletContext().removeAttribute("oldConnector");
System.out.println("oldConnector attribute has be removed");
}

关于java - 如何将对象的当前状态保存到 Servlet 的上下文路径或从 Servlet 的上下文路径获取对象的当前状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596555/

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