我们可以在servlet中设置多个属性

时间:2015-08-12 10:23:43

标签: java servlets

我们可以使用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);

4 个答案:

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