2013-10-13 3 views
-1

В следующем коде я пытаюсь получить имя от клиента и установить в сессии, но там getAtrribute («УНМ») возвращая нулевое значение ...Почему getAtrribute() возвращает значение null в сервлет?

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>"); 

пожалуйста, помогите мне ...

ответ

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()

+0

Это работает .. но как обычно значение getParameter не устанавливается как сеанс. –

0

Проблема у Вас есть то, что вы получаете атрибут сеанса, который не был set.So вы должны получить параметр, в котором имя из клиент вводится, тогда вы можете установить атрибут сеанса на основе параметра, который извлекается. В кодовых терминах, чтобы получить параметр, вы используете метод 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>"); 

Вы можете прочитать ссылку, Рамеш K добавлен, чтобы лучше понять разницу между GetAttribute() и getParameter().

Смежные вопросы