我们可以使用getAttributeNames()
获取多个属性,
但我无法使用setAttribute()
设置多个属性。我会尝试喜欢这段代码,但它不起作用。请检查一下,是否有可能设置多个属性?
public class First extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) {
try{
HttpSession session=request.getSession();
ServletContext context=request.getServletContext();
response.setContentType("text/html");
PrintWriter out=response.getWriter();
Enumeration en=request.getParameterNames();
while(en.hasMoreElements()){
String str=(String)en.nextElement();
String param=request.getParameter(str);
System.out.println("names...."+str+".......values...."+param);
session.setAttribute("cnr", param);
答案 0 :(得分:1)
您需要动态构建属性名称。每次用新值覆盖属性名称cnr时。
您需要执行以下内容
int i = 0;
while(en.hasMoreElements()){
session.setAttribute("cnr"+i, param);
i++;
}
答案 1 :(得分:0)
下面的行将在循环中执行,并且一个" cnr"无法存储多个值。您必须动态更改名称,以便创建多个会话以存储多个值,或者您必须使用任何其他方式,例如使用request.setAttribute(如果您在发送请求时需要值)。
希望,它可以帮助您解决问题。
session.setAttribute("cnr", param);
答案 2 :(得分:0)
问题key
必须是唯一的,因此该行session.setAttribute("cnr", param)
会覆盖以前的键cnr
属性,如果有的话。
相反,您使用:
session.setAttribute(str, param);//`str` must be unique
答案 3 :(得分:-1)
我认为最好是session.setAttribute(param ,param);