有没有办法调用表单操作并传递会话的用户名?

时间:2016-07-14 16:51:30

标签: session servlets java-ee web-development-server

登录后,用户名将传递给包含以下表单的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>");

1 个答案:

答案 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");