【问题标题】:How to pass an attribute from servlet to HTML page, then to another servlet?如何将属性从 servlet 传递到 HTML 页面,然后再传递到另一个 servlet?
【发布时间】:2026-01-22 06:50:01
【问题描述】:

第一个 servlet 具有以下内容:

    request.setAttribute("registereduser",registereduser);
    request.setAttribute("password",password);

    RequestDispatcher  rd=request.getRequestDispatcher("login.html");
    rd.include(request,response); 

页面 login.html 有一个表单:

<form action="LoginServlet" method="get">
    ...
</form>

但 login.html 中并没有实际使用注册用户和密码。如何将它们传递给 LoginServlet?澄清一下——LoginServlet 应该有:

    String registereduser=request.getParameter("registereduser");
    String password=request.getParameter("password");

Tsolakp 建议使用隐藏输入字段。因此,如果我在 login.html 中输入表单:

 <input type="hidden" id="registereduser" name="registereduser" value=...>

值究竟应该是多少?

【问题讨论】:

  • 您可以将它们放入会话中,也可以将值作为隐藏输入嵌入到表单中,然后作为请求参数传递给 servlet。
  • 你的问题不清楚

标签: java html servlets attributes


【解决方案1】:

您不会将数据从 servlet 传递到 HTML,而是 JSP。

 request.setAttribute("registereduser",registereduser);
    request.setAttribute("password",password);
    RequestDispatcher  rd=request.getRequestDispatcher("login.jsp");
    rd.forward(request,response); 

在 login.jsp 中

 <form action="LoginServlet" method="get">
  <input type="text" name="user" value=<%=request.getAttribute("registereduser")%>">
    </form>

在 LoginServlet 中

public class LoginServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String userName = request.getParameter("user");

    }
}

【讨论】:

  • 您的答案没有显示如何将 registereduserpassword 从 HTML 表单传递回 servlet。
【解决方案2】:

您不能在纯 html 页面中使用 JSP scriptlet 标签。 为此您需要一个 .jsp。

您可以像这样将值从 servlet 传递到 JSP 页面:

伺服器:

request.setAttribute("registereduser",registereduser);
request.setAttribute("password",password);

RequestDispatcher  rd=request.getRequestDispatcher("login.jsp");
rd.include(request,response);

带有脚本的 JSP 登录页面:

 <form action="LoginServlet" method="get">
 <input type="text" name="user" value="<%=request.getAttribute("registereduser")%>">
</form>

带有 EL 的 JSP 登录页面:

 <form action="LoginServlet" method="get">
 <input type="text" name="user" value="${registereduser}">
</form>

【讨论】:

    最近更新 更多