我有一个servlet代码,我在一个帮助器类中检查用户名和密码,检查后它返回到servlet并列出用户。用户名和用户列表必须显示在jsp中。如何发送这两个值?这是我尝试过的代码。它什么都没显示 String outp = t.Welcome(name,pwd);
String Users=t.List_Of_Users();
String User[]=Users.trim().split(" ");
request.setAttribute("name", User);
response.sendRedirect("Welcome_User.jsp?Users="+User+"&outp="+outp);
答案 0 :(得分:3)
response.sendRedirect()
将清除缓冲区,这显然意味着以前设置的任何请求属性都不会被保留。
在您的情况下,我相信,在请求对象中设置所需的属性后,最好使用RequestDispatcher.forward()
。
注意:按照惯例,您必须以小写字母开头定义变量名称。例如,String user;
,而不是String User;
。其次,方法名称不应使用下划线。此外,我建议使用不言自明的名字。下面是您的代码片段,稍加重命名。
String userNamesStr =t.userNamesSpaceDelimited();
String[] userNameArr = userNamesStr.trim().split(" "); // Or userNames, but we usually follow this for List
答案 1 :(得分:2)
request.getRequestDispatcher("welcome_user.jsp").forward()
) - 只需添加其他request.setAttribute("attrName", value);
Welcome_User.jsp?Users="+User+"&outp="+outp + "&another=" + another;
(并删除request.setAttribute(..)
)为了将数组表示为字符串,您有多个选项。其中一个是Arrays.toString(array)
(请注意,将密码作为get参数发送是一个安全问题。)
答案 2 :(得分:2)
您可以根据需要设置任意数量的属性,也应该优化。 ,
request.setAttribute("key1", Object1);
request.setAttribute("key2", Object2);
request.setAttribute("key3", Object3);
.
.
.
request.setAttribute("keyn", Objectn);
然后
String destination = "/WEB-INF/pages/result.jsp";
RequestDispatcher rd = getServletContext().getRequestDispatcher(destination);
rd.forward(request, response);
答案 3 :(得分:0)
String[] values = getParameterValues(“Input Parameter”);
试试这个。阅读有关此方法的更多信息