如何将属性从servlet传递到HTML页面,然后传递给另一个servlet?

时间:2018-01-26 17:35:58

标签: java html servlets attributes

第一个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=...>

究竟应该是什么价值?

2 个答案:

答案 0 :(得分:-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");

    }
}

答案 1 :(得分:-1)

您不能在普通的html页面中使用JSP scriptlet标记。 你需要一个.jsp。

您可以将值从servlet传递到JSP页面,如下所示:

SERVLET:

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

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

JSP LOGIN PAGE WITH SCRIPTLET:

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

使用EL的JSP LOGIN PAGE:

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