gpt4 book ai didi

servlets - request.getParameter() 无法使用 request.setAttribute() 传递的值

转载 作者:行者123 更新时间:2023-12-04 16:46:06 25 4
gpt4 key购买 nike

我在代码的正常执行中给一个字符串变量一个值,但是如果发生异常我会给它另一个值,问题是在catch block 中这个值仍然和我首先分配的一样 .

这是我的代码,首先我在try block 中分配页面值“addUser”,然后在catch中给它“ErrorPage”值,我将http请求中的页面值发送到forword方法并在其中打印值页。我在执行代码时导致错误,我希望它通过 catch block ,并且确实如此,但是当它将页面值发送到 forword 函数时,页面的值是“addUser”而不是“ErrorPage”虽然我分配它到“ErrorPage”!!

String page = "addUser";

try {
// ...

request.setAttribute("page", page);
forward(request, response);
} catch (SQLException e) {
page = "ErrorPage";
request.setAttribute("page", page);
forward(request, response);
}

这里是前导函数

String page = request.getParameter("page");
System.out.println("page is " + page); // each time it prints addUSer

有人可以帮忙吗?并提前谢谢。

最佳答案

您正在调用 request.getParameter() 而不是 request.getAttribute() 来获取值。既然你已经把它设置为请求属性,你也应该把它作为请求属性。

所以:

request.setAttribute("foo", foo);

仅适用于

Object foo = request.getAttribute("foo"); // NOT getParameter().

getParameter() 仅用于 HTTP 请求参数,您可以在请求 URL 或 HTML 表单的输入字段中指定。

关于servlets - request.getParameter() 无法使用 request.setAttribute() 传递的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4348676/

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