为什么getAtrribute()在servlet中返回null值?

时间:2013-10-13 08:49:10

标签: jsp servlets

在下面的代码中,我试图从客户端获取名称并在会话中设置但是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>");

请帮帮我......

2 个答案:

答案 0 :(得分:0)

使用getParameter()方法代替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>");

供参考: Difference between getAttribute() and getParameter()

答案 1 :(得分: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()之间的区别。