gpt4 book ai didi

java - 如何从servlet向jsp页面发送参数

转载 作者:行者123 更新时间:2023-12-01 19:57:11 25 4
gpt4 key购买 nike

我想将参数从servlet传递到jsp页面。这就是为什么我在 servlet 中编写了以下代码:

request.setAttribute("errorMessage", dbMessage);
response.sendRedirect(redirectURL + "index.jsp");

在index.jsp中我编写了以下代码:

<%
String error_msg = (String)request.getAttribute("errorMessage");
out.println(error_msg);
if (error_msg != null) {%>
<div class="alert alert-danger">
<%=error_msg%>
</div>
<% } %>

但是我在index.jsp页面中没有errorMessage的值。是什么原因 ?请帮我 。需要注意的一点:错误消息不为空。

最佳答案

使用 request.sendRedirect 时无法传递隐藏参数。您可以使用以下选项将参数从 servlet 传递到 JSP。

  1. 将 URL 本身的请求参数设置为

response.sendRedirect(redirectURL + "index.jsp?errorMessage=", dbMessage);

然后在JSP中将代码更改为

字符串 errorMsg = request.getParameter("errorMessage")

错误消息将在浏览器端的 URL 中可见。

  • 使用 Jaydip 的回答中提到的服务器端转发,如下所示。
  • request.setAttribute("errorMessage", dbMessage);
    RequestDispatcher 调度程序 =serveltContext().getRequestDispatcher("/index.jsp");
    调度程序.forward(请求,响应);

  • 使用 session

    request.getSession().setAttribute("errorMessage", dbMessage);

    在 JSP 上,将代码更改为

    String error_msg=(String)request.getSession().getAttribute("errorMessage");

  • 使用cookie

    Cookie errorCookie = new Cookie("errorMessage", dbMessage);
    errorCookie.setPath(request.getContextPath());
    response.addCookie(errorCookie);

  • 在浏览器端,您可以通过js或请求本身读取cookie

    String error_msg = null;
    Cookie [] cookies = request.getCookies();
    for (Cookie cookie : cookies) {
    if ("errorMessage".equals(cookie.getName())) {
    error_msg = cookie.getValue();
    }
    }

    关于java - 如何从servlet向jsp页面发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49228234/

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