gpt4 book ai didi

Java servlet 未接收请求属性

转载 作者:行者123 更新时间:2023-12-02 09:33:38 25 4
gpt4 key购买 nike

我目前正在开发一个网络应用程序,我想在其中向用户更新操作是否成功。我尝试通过设置请求属性并从一个 servlet 转发到下一个 servlet 来实现这一目标。但是,该属性在接收 Controller 中始终为空。

设置属性的代码块:

try {
updateXRef(request, response, cmds);
} catch (Exception e) {
request.setAttribute("results", "Error encountered. Contact system administrator.");
push(request, response);
}
request.setAttribute("results", "Update Successful");
push(request, response);
}

else {
push(request, response);
}

发送到其他 servlet 的方法:

private void push(HttpServletRequest request, HttpServletResponse response) {
String url = "/PushServer";

try {
request.getServletContext().getRequestDispatcher(url).forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}

以及处理请求的servlet:

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


if(FileFactory.getFileOperationsObject() == null || request.getParameterValues("input") == null) {

initiliaze(request, response);

String url = "/Display.jsp";
request.setAttribute("xRefFile", FileFactory.getXRefFileObjects());
request.setAttribute("platforms",FileFactory.getUniqueSortedPlatforms());
request.setAttribute("showModal", 0);

if(request.getParameter("results") == null) {
request.setAttribute("results", "Update Pending");
}

request.getServletContext().getRequestDispatcher(url).forward(request, response);

}

我唯一的猜测是正在以某种方式生成新请求。如果确实发生了这种情况 - 我该如何避免它?

最佳答案

问题是方法选择。

request.getParameter("yourAttributeName")仅适用于检索表单数据 ( <form></form> ) - 也称为 .jsp 页面中的数据 - 以及查询参数。

如果希望将信息从一个 Java servlet 发送到另一个 Java servlet,如上面的代码所示,必须使用:

request.getAttribute("myAttributeName");

关于Java servlet 未接收请求属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57734062/

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