Java 我们可以在servlet中设置多个属性吗
通过使用Java 我们可以在servlet中设置多个属性吗,java,servlets,Java,Servlets,通过使用getAttributeNames(),我们可以获得多个属性, 但是我不能使用setAttribute()设置多个属性。我会尽量喜欢这个代码,但它不工作。请检查此项,是否有可能设置多个属性 public class First extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) { try{ Http
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);
下面的行将在循环中执行,一个“cnr”不能存储多个值。您必须动态更改名称,以便创建多个会话来存储多个值,或者必须使用任何其他方式,如使用request.setAttribute(如果发送请求时需要值) 希望它能帮助你解决你的问题
session.setAttribute("cnr", param);
问题是,
key
需要是唯一的,因此此行session.setAttribute(“cnr”,param)
将使用keycnr
覆盖以前的属性(如果有)
相反,您使用:
session.setAttribute(str, param);//`str` must be unique
您需要动态构造属性名。每次用新值覆盖属性名cnr时 您需要执行以下操作
int i = 0;
while(en.hasMoreElements()){
session.setAttribute("cnr"+i, param);
i++;
}
我认为最好的方法是session.setAttribute(param
,param) 您可以存储多个属性,但我在这里看到的是,您正在尝试在会话变量中设置它,您确定需要通过会话,您还可以使用request.setAttribute(attrName,attrValue)设置属性吗但是如果你在下一个请求中需要它。它运行良好。感谢你提供了宝贵的信息。现在运行良好。感谢你提供了宝贵的信息。嗨,Deviledy,你是否应用了我的建议。如果是,请给我一些分数。