-1

在下面的代码中,我试图从客户端获取名称并在会话中设置,但是 getAtrribute("unm") 返回空值...

    res.setContentType("text/html");
    PrintWriter op=res.getWriter();
    HttpSession ss=req.getSession(true);

    String sunm=(String)req.getAttribute("unm");

    System.out.println(sunm);
    ss.setAttribute("UserName", sunm);  
    op.println("<br><center>The user for this session is :"+sunm+"</center>");

请帮我...

4

2 回答 2

0

使用getParameter()method 而不是getAttribute(),getAttribute()仅适用于服务器端。

res.setContentType("text/html");
PrintWriter op=res.getWriter();
HttpSession ss=req.getSession(true);

String sunm=(String)req.getParameter("unm");

System.out.println(sunm);
ss.setAttribute("UserName", sunm);  
op.println("<br><center>The user for this session is :"+sunm+"</center>");

供参考: getAttribute() 和 getParameter() 之间的区别

于 2013-10-13T08:58:56.480 回答
0

您遇到的问题是您正在获取尚未设置的会话属性。因此您必须获取输入客户端名称的参数,然后您可以根据参数设置会话属性正在检索。在代码方面,为了获取参数,您使用 getParameter() 方法。

 res.setContentType("text/html");
  PrintWriter op = res.getWriter();
  HttpSession ss= req.getSession(true);

  String sunm = (String)req.getParameter("unm");
  System.out.println(sunm);

然后根据变量 sunm 设置会话属性

ss.setAttribute("Username",sunm);
op.println("<br><center>The user for this session is:"+sunm+"</center>");

您可以阅读 Ramesh K 添加的参考资料,以更好地了解 getAttribute() 和 getParameter() 之间的区别。

于 2013-10-15T19:41:46.697 回答