登录后,用户名将传递给包含以下表单的servlet,并显示为登录用户。但是在提交此表单后,由于表单操作在提交时发生,我无法找到将用户名传递到下一个servlet的方法。因此,RequestDispatcher没用。在提交此表单后,有人可以帮助我如何将用户名传递给下一个servlet,以便我可以在登录后在每个页面上使用用户名吗?
pw.print("<Form action=BusSearch method=doGet>");
pw.print("<input type=text name=from placeholder=From class=textbox><br>");
pw.print("<input type=text name=to placeholder=To class=textbox>");
pw.print("<br>");
pw.print("<input type=text name=DOJ placeholder=Date of Journey class=textbox</br>");
pw.print("<button type=submit value=Search class=button>");
pw.print("</Form>");
答案 0 :(得分:0)
无论如何,使用PrintWriter并不是一个好主意,要保持用户特定的状态,您可以使用会话 要使用会话,首先使用BusSearch servlet中的HttpServletRequest方法getSession()创建一个会话:
HttpSession session = request.getSession();
创建会话后,使用提供的方法检查并设置其属性。例如,要设置用户名,您可以执行以下操作:
String username = "Username";
session.setAttribute("User", username);
现在,您可以从所有其他servlet中创建的会话中检索用户名:
HttpSession session = request.getSession();
String Username = (String) session.getAttribute("User");