第一个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=...>
究竟应该是什么价值?
答案 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>